/**
* {@inheritDoc}
*/
public ListAccess<User> findUsersByQuery(Query q, UserStatus status) throws Exception
{
ObjectQuery oq = new ObjectQuery(UserImpl.class);
if (q.getUserName() != null)
{
oq.addLIKE("UPPER(userName)", addAsterisk(q.getUserName().toUpperCase()));
}
if (q.getFirstName() != null)
{
oq.addLIKE("UPPER(firstName)", q.getFirstName().toUpperCase());
}
if (q.getLastName() != null)
{
oq.addLIKE("UPPER(lastName)", q.getLastName().toUpperCase());
}
oq.addLIKE("email", q.getEmail());
oq.addGT("lastLoginTime", q.getFromLoginDate());
oq.addLT("lastLoginTime", q.getToLoginDate());
if (status != UserStatus.BOTH)
{
oq.addEQ("enabled", status.acceptsEnabled());
}
return new HibernateListAccess<User>(service_, oq.getHibernateQueryWithBinding(),
oq.getHibernateCountQueryWithBinding(), oq.getBindingFields());
}