package com.idega.user.block.search.business; import java.rmi.RemoteException; import java.util.Collection; import com.idega.business.IBOServiceBean; import com.idega.data.IDOLookup; import com.idega.user.block.search.event.UserSearchEvent; import com.idega.user.data.User; import com.idega.user.data.UserHome; import com.idega.util.text.TextSoap; /** * <p>Title: idegaWeb</p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: idega Software</p> * @author <a href="gummi@idega.is">Gu�mundur �g�st S�mundsson</a> * @version 1.0 */ public class SearchEngineBean extends IBOServiceBean implements SearchEngine{ public SearchEngineBean() { } public Collection getResult(UserSearchEvent e) throws RemoteException { switch (e.getSearchType()) { case UserSearchEvent.SEARCHTYPE_SIMPLE : return getSimpleSearchResults(e.getSearchString()); case UserSearchEvent.SEARCHTYPE_ADVANCED : return getAdvancedSearchResults(e); default : throw new UnsupportedOperationException("SearchType not known"); } } /** * @param usersearchevent * @return the results of the search */ private Collection getAdvancedSearchResults(UserSearchEvent e) { try { UserHome userHome = (UserHome) IDOLookup.getHome(User.class); Collection entities = userHome.findUsersByConditions(e.getFirstName(),e.getMiddleName(),e.getLastName(),e.getPersonalId() ,e.getAddress(),null,e.getGenderId(),e.getStatusId() ,e.getAgeFloor(),e.getAgeCeil(),e.getGroups(),null,true, false); return entities; } // Remote and FinderException catch (Exception ex) { ex.printStackTrace(); } return null; } public Class getResultType(UserSearchEvent e) { return User.class; } public Collection getSimpleSearchResults(String searchString) throws RemoteException { return doSimpleSearch(searchString); } private Collection doSimpleSearch(String searchString) { if (searchString == null || searchString.length() <2) { return null; } try { searchString = TextSoap.removeWhiteSpaceFromBeginningAndEndOfString(searchString); UserHome userHome = (UserHome) IDOLookup.getHome(User.class); Collection entities = userHome.findUsersBySearchCondition(searchString, false); return entities; } // Remote and FinderException catch (Exception ex) { ex.printStackTrace(); } return null; } }