org.opends.server.core
Interface SearchOperation

All Superinterfaces:
Operation
All Known Implementing Classes:
InternalSearchOperation, LocalBackendSearchOperation, SearchOperationBasis, SearchOperationWrapper

public interface SearchOperation
extends Operation

This interface defines an operation used to search for entries in the Directory Server.


Field Summary
 
Fields inherited from interface org.opends.server.types.Operation
LOCALBACKENDOPERATIONS
 
Method Summary
 java.util.LinkedHashSet<java.lang.String> getAttributes()
          Retrieves the set of requested attributes for this search operation.
 DN getBaseDN()
          Retrieves the base DN for this search operation.
 DereferencePolicy getDerefPolicy()
          Retrieves the alias dereferencing policy for this search operation.
 int getEntriesSent()
          Retrieves the number of entries sent to the client for this search operation.
 SearchFilter getFilter()
          Retrieves the filter for this search operation.
 MatchedValuesControl getMatchedValuesControl()
          The matched values control associated with this search operation.
 PersistentSearch getPersistentSearch()
          Get the psearch from the search operation.
 DN getProxiedAuthorizationDN()
          Retrieves the proxied authorization DN for this operation if proxied authorization has been requested.
 ByteString getRawBaseDN()
          Retrieves the raw, unprocessed base DN as included in the request from the client.
 RawFilter getRawFilter()
          Retrieves the raw, unprocessed search filter as included in the request from the client.
 int getReferencesSent()
          Retrieves the number of search references sent to the client for this search operation.
 SearchScope getScope()
          Retrieves the scope for this search operation.
 int getSizeLimit()
          Retrieves the size limit for this search operation.
 int getTimeLimit()
          Retrieves the time limit for this search operation.
 java.lang.Long getTimeLimitExpiration()
          Get the time after which the search time limit has expired.
 boolean getTypesOnly()
          Retrieves the typesOnly flag for this search operation.
 void incrementEntriesSent()
          Increments by 1 the number of entries sent to the client for this search operation.
 void incrementReferencesSent()
          Increments by 1 the number of search references sent to the client for this search operation.
 boolean isClientAcceptsReferrals()
          Indicates whether the client is able to handle referrals.
 boolean isIncludeUsableControl()
          Indicates whether to include the account usable response control with search result entries or not.
 boolean isRealAttributesOnly()
          Returns true if only real attributes should be returned.
 boolean isReturnLDAPSubentries()
          Indicates whether LDAP subentries should be returned or not.
 boolean isSendResponse()
          Indicates wether the search result done message has to be sent to the client, or not.
 boolean isVirtualAttributesOnly()
          Returns true if only virtual attributes should be returned.
 boolean returnEntry(Entry entry, java.util.List<Control> controls)
          Used as a callback for backends to indicate that the provided entry matches the search criteria and that additional processing should be performed to potentially send it back to the client.
 boolean returnReference(DN dn, SearchResultReference reference)
          Used as a callback for backends to indicate that the provided search reference was encountered during processing and that additional processing should be performed to potentially send it back to the client.
 void sendSearchEntry(SearchResultEntry entry)
          Sends the provided search result entry to the client.
 boolean sendSearchReference(SearchResultReference reference)
          Sends the provided search result reference to the client.
 void sendSearchResultDone()
          Sends the search result done message to the client.
 void setAttributes(java.util.LinkedHashSet<java.lang.String> attributes)
          Specifies the set of requested attributes for this search operation.
 void setBaseDN(DN baseDN)
          Specifies the base DN for this search operation.
 void setClientAcceptsReferrals(boolean clientAcceptReferrals)
          Specify whether the client is able to handle referrals.
 void setDerefPolicy(DereferencePolicy derefPolicy)
          Specifies the alias dereferencing policy for this search operation.
 void setIncludeUsableControl(boolean includeUsableControl)
          Specify whether to include the account usable response control within the search result entries.
 void setMatchedValuesControl(MatchedValuesControl controls)
          Set the match values control.
 void setPersistentSearch(PersistentSearch psearch)
          Register the psearch in the search operation.
 void setProxiedAuthorizationDN(DN proxiedAuthorizationDN)
          Set the proxied authorization DN for this operation if proxied authorization has been requested.
 void setRawBaseDN(ByteString rawBaseDN)
          Specifies the raw, unprocessed base DN as included in the request from the client.
 void setRawFilter(RawFilter rawFilter)
          Specifies the raw, unprocessed search filter as included in the request from the client.
 void setRealAttributesOnly(boolean realAttributesOnly)
          Specify wether to only return real attributes.
 void setReturnLDAPSubentries(boolean returnLDAPSubentries)
          Set the flag indicating wether the LDAP subentries should be returned.
 void setScope(SearchScope scope)
          Specifies the scope for this search operation.
 void setSendResponse(boolean sendResponse)
          Specify wether the search result done message has to be sent to the client, or not.
 void setSizeLimit(int sizeLimit)
          Specifies the size limit for this search operation.
 void setTimeLimit(int timeLimit)
          Specifies the time limit for this search operation.
 void setTimeLimitExpiration(java.lang.Long timeLimitExpiration)
          Set the time after which the search time limit has expired.
 void setTypesOnly(boolean typesOnly)
          Specifies the typesOnly flag for this search operation.
 void setVirtualAttributesOnly(boolean virtualAttributesOnly)
          Specify wether to only return virtual attributes.
 
Methods inherited from interface org.opends.server.types.Operation
abort, addRequestControl, addResponseControl, appendAdditionalLogMessage, appendErrorMessage, cancel, checkIfCanceled, disconnectClient, dontSynchronize, getAdditionalLogMessage, getAttachment, getAttachments, getAuthorizationDN, getAuthorizationEntry, getCancelRequest, getCancelResult, getClientConnection, getCommonLogElements, getConnectionID, getErrorMessage, getMatchedDN, getMessageID, getOperationID, getOperationType, getProcessingNanoTime, getProcessingStartTime, getProcessingStopTime, getProcessingTime, getReferralURLs, getRequestControls, getRequestLogElements, getResponseControls, getResponseLogElements, getResultCode, isInternalOperation, isSynchronizationOperation, operationCompleted, removeAttachment, removeRequestControl, removeResponseControl, setAdditionalLogMessage, setAttachment, setAttachments, setAuthorizationEntry, setDontSynchronize, setErrorMessage, setInternalOperation, setMatchedDN, setReferralURLs, setResponseData, setResultCode, setSynchronizationOperation, toString, toString
 

Method Detail

getRawBaseDN

ByteString getRawBaseDN()
Retrieves the raw, unprocessed base DN as included in the request from the client. This may or may not contain a valid DN, as no validation will have been performed.

Returns:
The raw, unprocessed base DN as included in the request from the client.

setRawBaseDN

void setRawBaseDN(ByteString rawBaseDN)
Specifies the raw, unprocessed base DN as included in the request from the client. This method should only be called by pre-parse plugins.

Parameters:
rawBaseDN - The raw, unprocessed base DN as included in the request from the client.

getBaseDN

DN getBaseDN()
Retrieves the base DN for this search operation. This should not be called by pre-parse plugins, as the raw base DN will not yet have been processed. Instead, they should use the getRawBaseDN method.

Returns:
The base DN for this search operation, or null if the raw base DN has not yet been processed.

setBaseDN

void setBaseDN(DN baseDN)
Specifies the base DN for this search operation. This method is only intended for internal use.

Parameters:
baseDN - The base DN for this search operation.

getScope

SearchScope getScope()
Retrieves the scope for this search operation.

Returns:
The scope for this search operation.

setScope

void setScope(SearchScope scope)
Specifies the scope for this search operation. This should only be called by pre-parse plugins.

Parameters:
scope - The scope for this search operation.

getDerefPolicy

DereferencePolicy getDerefPolicy()
Retrieves the alias dereferencing policy for this search operation.

Returns:
The alias dereferencing policy for this search operation.

setDerefPolicy

void setDerefPolicy(DereferencePolicy derefPolicy)
Specifies the alias dereferencing policy for this search operation. This should only be called by pre-parse plugins.

Parameters:
derefPolicy - The alias dereferencing policy for this search operation.

getSizeLimit

int getSizeLimit()
Retrieves the size limit for this search operation.

Returns:
The size limit for this search operation.

setSizeLimit

void setSizeLimit(int sizeLimit)
Specifies the size limit for this search operation. This should only be called by pre-parse plugins.

Parameters:
sizeLimit - The size limit for this search operation.

getTimeLimit

int getTimeLimit()
Retrieves the time limit for this search operation.

Returns:
The time limit for this search operation.

getTimeLimitExpiration

java.lang.Long getTimeLimitExpiration()
Get the time after which the search time limit has expired.

Returns:
the timeLimitExpiration

setTimeLimit

void setTimeLimit(int timeLimit)
Specifies the time limit for this search operation. This should only be called by pre-parse plugins.

Parameters:
timeLimit - The time limit for this search operation.

getTypesOnly

boolean getTypesOnly()
Retrieves the typesOnly flag for this search operation.

Returns:
The typesOnly flag for this search operation.

setTypesOnly

void setTypesOnly(boolean typesOnly)
Specifies the typesOnly flag for this search operation. This should only be called by pre-parse plugins.

Parameters:
typesOnly - The typesOnly flag for this search operation.

getRawFilter

RawFilter getRawFilter()
Retrieves the raw, unprocessed search filter as included in the request from the client. It may or may not contain a valid filter (e.g., unsupported attribute types or values with an invalid syntax) because no validation will have been performed on it.

Returns:
The raw, unprocessed search filter as included in the request from the client.

setRawFilter

void setRawFilter(RawFilter rawFilter)
Specifies the raw, unprocessed search filter as included in the request from the client. This method should only be called by pre-parse plugins.

Parameters:
rawFilter - The raw, unprocessed search filter as included in the request from the client.

getFilter

SearchFilter getFilter()
Retrieves the filter for this search operation. This should not be called by pre-parse plugins, because the raw filter will not yet have been processed.

Returns:
The filter for this search operation, or null if the raw filter has not yet been processed.

getAttributes

java.util.LinkedHashSet<java.lang.String> getAttributes()
Retrieves the set of requested attributes for this search operation. Its contents should not be be altered.

Returns:
The set of requested attributes for this search operation.

setAttributes

void setAttributes(java.util.LinkedHashSet<java.lang.String> attributes)
Specifies the set of requested attributes for this search operation. It should only be called by pre-parse plugins.

Parameters:
attributes - The set of requested attributes for this search operation.

getEntriesSent

int getEntriesSent()
Retrieves the number of entries sent to the client for this search operation.

Returns:
The number of entries sent to the client for this search operation.

getReferencesSent

int getReferencesSent()
Retrieves the number of search references sent to the client for this search operation.

Returns:
The number of search references sent to the client for this search operation.

returnEntry

boolean returnEntry(Entry entry,
                    java.util.List<Control> controls)
Used as a callback for backends to indicate that the provided entry matches the search criteria and that additional processing should be performed to potentially send it back to the client.

Parameters:
entry - The entry that matches the search criteria and should be sent to the client.
controls - The set of controls to include with the entry (may be null if none are needed).
Returns:
true if the caller should continue processing the search request and sending additional entries and references, or false if not for some reason (e.g., the size limit has been reached or the search has been abandoned).

returnReference

boolean returnReference(DN dn,
                        SearchResultReference reference)
Used as a callback for backends to indicate that the provided search reference was encountered during processing and that additional processing should be performed to potentially send it back to the client.

Parameters:
reference - The search reference to send to the client.
dn - The DN related to the specified search reference.
Returns:
true if the caller should continue processing the search request and sending additional entries and references , or false if not for some reason (e.g., the size limit has been reached or the search has been abandoned).

sendSearchResultDone

void sendSearchResultDone()
Sends the search result done message to the client. Note that this method should only be called from external classes in special cases (e.g., persistent search) where they are sure that the result won't be sent by the core server. Also note that the result code and optionally the error message should have been set for this operation before this method is called.


setTimeLimitExpiration

void setTimeLimitExpiration(java.lang.Long timeLimitExpiration)
Set the time after which the search time limit has expired.

Parameters:
timeLimitExpiration - - Time after which the search has expired

isReturnLDAPSubentries

boolean isReturnLDAPSubentries()
Indicates whether LDAP subentries should be returned or not.

Returns:
true if the LDAP subentries should be returned, false otherwise

setReturnLDAPSubentries

void setReturnLDAPSubentries(boolean returnLDAPSubentries)
Set the flag indicating wether the LDAP subentries should be returned.

Parameters:
returnLDAPSubentries - - Boolean indicating wether the LDAP subentries should be returned or not

getMatchedValuesControl

MatchedValuesControl getMatchedValuesControl()
The matched values control associated with this search operation.

Returns:
the match values control

setMatchedValuesControl

void setMatchedValuesControl(MatchedValuesControl controls)
Set the match values control.

Parameters:
controls - - The matched values control

isIncludeUsableControl

boolean isIncludeUsableControl()
Indicates whether to include the account usable response control with search result entries or not.

Returns:
true if the usable control has to be part of the search result entry

setIncludeUsableControl

void setIncludeUsableControl(boolean includeUsableControl)
Specify whether to include the account usable response control within the search result entries.

Parameters:
includeUsableControl - - True if the account usable response control has to be included within the search result entries, false otherwise

setPersistentSearch

void setPersistentSearch(PersistentSearch psearch)
Register the psearch in the search operation.

Parameters:
psearch - - Persistent search associated to that operation

getPersistentSearch

PersistentSearch getPersistentSearch()
Get the psearch from the search operation.

Returns:
the psearch, or null if no psearch was registered

isClientAcceptsReferrals

boolean isClientAcceptsReferrals()
Indicates whether the client is able to handle referrals.

Returns:
true, if the client is able to handle referrals

setClientAcceptsReferrals

void setClientAcceptsReferrals(boolean clientAcceptReferrals)
Specify whether the client is able to handle referrals.

Parameters:
clientAcceptReferrals - - Boolean set to true if the client can handle referrals

incrementEntriesSent

void incrementEntriesSent()
Increments by 1 the number of entries sent to the client for this search operation.


incrementReferencesSent

void incrementReferencesSent()
Increments by 1 the number of search references sent to the client for this search operation.


isSendResponse

boolean isSendResponse()
Indicates wether the search result done message has to be sent to the client, or not.

Returns:
true if the search result done message is to be sent to the client

setSendResponse

void setSendResponse(boolean sendResponse)
Specify wether the search result done message has to be sent to the client, or not.

Parameters:
sendResponse - - boolean indicating wether the search result done message is to send to the client

isRealAttributesOnly

boolean isRealAttributesOnly()
Returns true if only real attributes should be returned.

Returns:
true if only real attributes should be returned, false otherwise

setRealAttributesOnly

void setRealAttributesOnly(boolean realAttributesOnly)
Specify wether to only return real attributes.

Parameters:
realAttributesOnly - - boolean setup to true, if only the real attributes should be returned

isVirtualAttributesOnly

boolean isVirtualAttributesOnly()
Returns true if only virtual attributes should be returned.

Returns:
true if only virtual attributes should be returned, false otherwise

setVirtualAttributesOnly

void setVirtualAttributesOnly(boolean virtualAttributesOnly)
Specify wether to only return virtual attributes.

Parameters:
virtualAttributesOnly - - boolean setup to true, if only the virtual attributes should be returned

sendSearchEntry

void sendSearchEntry(SearchResultEntry entry)
                     throws DirectoryException
Sends the provided search result entry to the client.

Parameters:
entry - The search result entry to be sent to the client.
Throws:
DirectoryException - If a problem occurs while attempting to send the entry to the client and the search should be terminated.

sendSearchReference

boolean sendSearchReference(SearchResultReference reference)
                            throws DirectoryException
Sends the provided search result reference to the client.

Parameters:
reference - The search result reference to be sent to the client.
Returns:
true if the client is able to accept referrals, or false if the client cannot handle referrals and no more attempts should be made to send them for the associated search operation.
Throws:
DirectoryException - If a problem occurs while attempting to send the reference to the client and the search should be terminated.

getProxiedAuthorizationDN

DN getProxiedAuthorizationDN()
Retrieves the proxied authorization DN for this operation if proxied authorization has been requested.

Returns:
The proxied authorization DN for this operation if proxied authorization has been requested, or null if proxied authorization has not been requested.

setProxiedAuthorizationDN

void setProxiedAuthorizationDN(DN proxiedAuthorizationDN)
Set the proxied authorization DN for this operation if proxied authorization has been requested.

Parameters:
proxiedAuthorizationDN - The proxied authorization DN for this operation if proxied authorization has been requested, or null if proxied authorization has not been requested.