package fr.openwide.core.jpa.security.business.person.service; import java.util.List; import org.apache.lucene.search.Sort; import org.apache.lucene.search.SortField; import org.springframework.beans.factory.annotation.Autowired; import fr.openwide.core.jpa.exception.SecurityServiceException; import fr.openwide.core.jpa.exception.ServiceException; import fr.openwide.core.jpa.search.service.IHibernateSearchService; import fr.openwide.core.jpa.security.business.person.dao.IGenericUserDao; import fr.openwide.core.jpa.security.business.person.model.GenericSimpleUser; import fr.openwide.core.jpa.security.business.person.model.ISimpleUserBinding; public abstract class GenericSimpleUserServiceImpl<U extends GenericSimpleUser<U, ?>> extends GenericUserServiceImpl<U> { private static final ISimpleUserBinding BINDING = new ISimpleUserBinding(); private static final String[] SEARCH_FIELDS = new String[] { BINDING.userName().getPath(), BINDING.firstName().getPath(), BINDING.lastName().getPath() }; private static final String[] AUTOCOMPLETE_SEARCH_FIELDS = new String[] { BINDING.userName().getPath(), BINDING.firstName().getPath(), BINDING.lastName().getPath() }; private static final Sort AUTOCOMPLETE_SORT = new Sort(new SortField(GenericSimpleUser.LAST_NAME_SORT_FIELD_NAME, SortField.Type.STRING), new SortField(GenericSimpleUser.FIRST_NAME_SORT_FIELD_NAME, SortField.Type.STRING)); @Autowired private IHibernateSearchService hibernateSearchService; public GenericSimpleUserServiceImpl(IGenericUserDao<U> personDao) { super(personDao); } /** * @deprecated use the ISearchQuery pattern instead. */ @Deprecated @Override public List<U> search(String searchPattern) throws ServiceException, SecurityServiceException { return hibernateSearchService.search(getObjectClass(), SEARCH_FIELDS, searchPattern); } /** * @deprecated use the ISearchQuery pattern instead. */ @Deprecated @Override public <U2 extends U> List<U2> searchAutocomplete(Class<U2> clazz, String searchPattern, Integer limit, Integer offset) throws ServiceException, SecurityServiceException { return hibernateSearchService.searchAutocomplete(clazz, AUTOCOMPLETE_SEARCH_FIELDS, searchPattern, limit, offset, AUTOCOMPLETE_SORT); } }