* @return the found client or null if the user-agent does not match any
* defined client
*/
public ClientEntry findEntry(String useragent)
{
ClientEntry clientEntry = null;
Enumeration clients = getEntries();
if ( logger.isDebugEnabled() )
{
logger.debug( "ClientRegistry: Looking for client with useragent :" + useragent );
}
if (clients != null)
{
while (clients.hasMoreElements())
{
ClientEntry client = (ClientEntry)clients.nextElement();
if (client.getUseragentpattern() != null)
{
try
{
RE r = new RE(client.getUseragentpattern());
r.setMatchFlags(RE.MATCH_CASEINDEPENDENT);
if (r.match(useragent))
{
if ( logger.isDebugEnabled() )
{
logger.debug( "ClientRegistry: " + useragent + " matches " + client.getUseragentpattern() );
}
return client;
}
else
{
if ( logger.isDebugEnabled() )
{
logger.debug( "ClientRegistry: " + useragent + " does not match " + client.getUseragentpattern() );
}
}
}
catch (org.apache.regexp.RESyntaxException e)
{
String message = "ClientRegistryService: UserAgentPattern not valid : " + client.getUseragentpattern() + " : " + e.getMessage();
logger.error( message, e );
}
}
}
}