com.ibm.itim.apps.search
Class SearchMO

java.lang.Object
  |
  +--com.ibm.itim.apps.search.SearchMO
All Implemented Interfaces:
java.io.Serializable

public class SearchMO
extends java.lang.Object
implements java.io.Serializable

Class that configures and executes a search.

See Also:
Serialized Form

Field Summary
static int ASCENDING_SORT
          Constant identifying a low to high sort order.
static int DESCENDING_SORT
          Constant identifying a high to low sort order.
static int ONELEVEL_SCOPE
          Constant identifying a single level search scope.
static int SUBTREE_SCOPE
          Constant identifying a subtree level search scope.
 
Constructor Summary
SearchMO(PlatformContext platform, javax.security.auth.Subject subject)
          Constructs the the managed object with a platform context and a subject.
 
Method Summary
 SearchResultsMO execute()
          Executes the search using the configured parameters.
 void execute(SearchResultsMO resultsMO)
          Executes the search using the configured parameters.
 java.lang.String[] getAttributes()
          Returns the set of attributes that will be retrieved for every result returned.
 java.lang.String getCategory()
          Returns the ObjectProfileCategory for the search.
 CompoundDN getContext()
          Gets the logicalContext for the search.
 java.lang.String getFilter()
          Returns the Ldap filter for the search.
 java.util.Locale getLocale()
          Returns the user's Locale.
 int getMaxSize()
          Returns the maximum number of results to be returned from the search.
 OrganizationalContainerMO getOrgContext()
          Returns the context (base) for the search.
 int getPageSize()
          Returns the pageSize property.
 java.lang.String getProfileName()
          Returns the ObjectProfile name for the search.
 int getScope()
          Returns the scope of the search.
 java.lang.String getSortAttribute()
          Returns the name of the attribute to sort by.
 int getSortOrder()
          Returns the sort order for the result set.
 boolean isPaging()
          Returns true if the result set should be paginated.
 void mapToSearchMO(com.ibm.itim.apps.ejb.search.SearchRequest searchRequest)
          Copies the parameters in the given SearchRequest into this object.
static com.ibm.itim.apps.ejb.search.SearchRequest mapToSearchRequest(SearchMO searchMO)
          Copies the parameters in the given SearchMO into a new SearchRequest.
 void setAttributes(java.lang.String[] attributes)
          Sets the attributes to retrieve for each result returned.
 void setCategory(java.lang.String category)
          Sets the ObjectProfileCategory for the search.
 void setContext(CompoundDN logicalContext)
          Sets the logicalContext for the search.
 void setContext(OrganizationalContainerMO containerMO)
          Sets the context (base) for the search.
 void setFilter(java.lang.String filter)
          Sets the Ldap filter for the search.
 void setLocale(java.util.Locale locale)
          Sets the user's Locale.
 void setMaxSize(int max)
          Sets the maximum number of results to return from the search.
 void setPageSize(int pageSize)
          Sets the number of DirectoryObjects to return in SearchResultsMO.getPage().
 void setPaging(boolean toggle)
          Toggles pagination on/off for the request.
 void setProfileName(java.lang.String objProfileName)
          Sets the ObjectProfile name for the search.
 void setScope(int scope)
          Sets the scope of the search.
 void setSortAttribute(java.lang.String sortAttribute)
          Sets the name of the attribute to sort by.
 void setSortOrder(int sortOrder)
          Sets the sort order for the result set.
 java.lang.String toString()
          Overrides Object implementation.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

ASCENDING_SORT

public static int ASCENDING_SORT
Constant identifying a low to high sort order.

DESCENDING_SORT

public static int DESCENDING_SORT
Constant identifying a high to low sort order.

ONELEVEL_SCOPE

public static int ONELEVEL_SCOPE
Constant identifying a single level search scope.

SUBTREE_SCOPE

public static int SUBTREE_SCOPE
Constant identifying a subtree level search scope.
Constructor Detail

SearchMO

public SearchMO(PlatformContext platform,
                javax.security.auth.Subject subject)
Constructs the the managed object with a platform context and a subject.
Parameters:
platform - PlatformContext holding platform connection information.
subject - Subject representing the authenticated caller.
Method Detail

execute

public SearchResultsMO execute()
                        throws java.rmi.RemoteException,
                               ApplicationException
Executes the search using the configured parameters. Note, not all objects that meet the search parameters will be accessible by the client. Those objects will not placed in the result set and no AuthorizationException will be thrown.
Returns:
SearchResultsMO holding the results of the search.
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
ApplicationException - Thrown if unable to execute the search. This is most likely caused by an invalid parameter in the SearchRequest.

execute

public void execute(SearchResultsMO resultsMO)
             throws java.rmi.RemoteException,
                    ApplicationException
Executes the search using the configured parameters. Note, not all objects that meet the search parameters will be accessible by the client. Those objects will not placed in the result set and no AuthorizationException will be thrown.
Parameters:
results - SearchResultsMO to hold the results of the search. Note, if the SearchResultsMO object was constructed using a different user context, that context will be changed to match the context of this object.
Throws:
java.rmi.RemoteException - Thrown if unable to communicate with platform.
ApplicationException - Thrown if unable to execute the search. This is most likely caused by an invalid parameter in the SearchRequest.

setContext

public void setContext(CompoundDN logicalContext)
Sets the logicalContext for the search.
Parameters:
logicalContext - a CompoundDN containing at least one element.

setContext

public void setContext(OrganizationalContainerMO containerMO)
Sets the context (base) for the search.
Parameters:
containerMO - an OrganizationalContainerMO.

getOrgContext

public OrganizationalContainerMO getOrgContext()
Returns the context (base) for the search.
Returns:
containerMO an OrganizationalContainerMO, if any.

getContext

public CompoundDN getContext()
Gets the logicalContext for the search.
Returns:
The logicalContext of the search.

setLocale

public void setLocale(java.util.Locale locale)
Sets the user's Locale.
Parameters:
locale - the user's Locale.

getLocale

public java.util.Locale getLocale()
Returns the user's Locale.
Returns:
locale the user's Locale.

setCategory

public void setCategory(java.lang.String category)
Sets the ObjectProfileCategory for the search.
Parameters:
category - ObjectProfileCategory for the objects to search for.

getCategory

public java.lang.String getCategory()
Returns the ObjectProfileCategory for the search.
Returns:
category ObjectProfileCategory for the objects to search for.

setFilter

public void setFilter(java.lang.String filter)
Sets the Ldap filter for the search. The filter must be in the format specified in RFC2254.
Parameters:
filter - Ldap filter in RFC2254 format for the search.

getFilter

public java.lang.String getFilter()
Returns the Ldap filter for the search.
Returns:
filter Ldap filter for the search.

setProfileName

public void setProfileName(java.lang.String objProfileName)
Sets the ObjectProfile name for the search.
Parameters:
objProfileName - ObjectProfile name for the objects to search for.

getProfileName

public java.lang.String getProfileName()
Returns the ObjectProfile name for the search.
Returns:
objProfileName ObjectProfile name for the objects to search for.

setSortAttribute

public void setSortAttribute(java.lang.String sortAttribute)
Sets the name of the attribute to sort by.
Parameters:
sortAttribute - The name of the attribute to sort by.

getSortAttribute

public java.lang.String getSortAttribute()
Returns the name of the attribute to sort by.
Returns:
sortAttribute name of the attribute to sort by; null if it is not set.

setScope

public void setScope(int scope)
Sets the scope of the search.
Parameters:
scope - Enumeration representing scope. Value may be ONELEVEL_SCOPE or SUBTREE_SCOPE.

getScope

public int getScope()
Returns the scope of the search.
Returns:
Enumeration representing scope. Value may be ONELEVEL_SCOPE or SUBTREE_SCOPE.

setMaxSize

public void setMaxSize(int max)
Sets the maximum number of results to return from the search.
Parameters:
max - Maximum number of results.

getMaxSize

public int getMaxSize()
Returns the maximum number of results to be returned from the search.
Returns:
Maximum number of results.

setPaging

public void setPaging(boolean toggle)
Toggles pagination on/off for the request. Default is true. Used to override the default and obtain an entire result set with this request.
Parameters:
toggle - true/false option to paginate the result set.

isPaging

public boolean isPaging()
Returns true if the result set should be paginated.
Returns:
true if the result set should be paginated.

getSortOrder

public int getSortOrder()
Returns the sort order for the result set. One of: ASCENDING_SORT or DESCENDING_SORT
Returns:
result set sort order.

setSortOrder

public void setSortOrder(int sortOrder)
Sets the sort order for the result set. Must be one of: ASCENDING_SORT or DESCENDING_SORT
Parameters:
sortOrder - result set sort order.

setAttributes

public void setAttributes(java.lang.String[] attributes)
Sets the attributes to retrieve for each result returned.
Parameters:
attributes - String[] holding the names of attributes to return with each result. Passing null will be interpreted as all attributes should be returned.

getAttributes

public java.lang.String[] getAttributes()
Returns the set of attributes that will be retrieved for every result returned.
Returns:
String[] array holding the names of attributes to be returned, null if all will be returned.

setPageSize

public void setPageSize(int pageSize)
Sets the number of DirectoryObjects to return in SearchResultsMO.getPage().
Parameters:
int - the number of DirectoryObjects to return in SearchResultsMO.getPage().

getPageSize

public int getPageSize()
Returns the pageSize property.
Returns:
int the number of DirectoryObjects to return in SearchResultsMO.getPage().

mapToSearchRequest

public static com.ibm.itim.apps.ejb.search.SearchRequest mapToSearchRequest(SearchMO searchMO)
Copies the parameters in the given SearchMO into a new SearchRequest.

mapToSearchMO

public void mapToSearchMO(com.ibm.itim.apps.ejb.search.SearchRequest searchRequest)
Copies the parameters in the given SearchRequest into this object.

toString

public java.lang.String toString()
Overrides Object implementation.
Overrides:
toString in class java.lang.Object