* @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 (DEBUG && Log.getLogger().isDebugEnabled())
{
Log.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 (DEBUG && Log.getLogger().isDebugEnabled())
{
Log.debug("ClientRegistry: "+useragent+" matches "+client.getUseragentpattern());
}
return client;
}
else
{
if (DEBUG && Log.getLogger().isDebugEnabled())
{
Log.debug("ClientRegistry: "+useragent+" does not match "+client.getUseragentpattern());
}
}
}
catch (org.apache.regexp.RESyntaxException e)
{
String message = "ClientRegistryService: UserAgentPattern not valid : " + client.getUseragentpattern() + " : " + e.getMessage();
Log.error( message, e );
}
}
}
}