org.opends.server.protocols.internal
Class InternalClientConnection

java.lang.Object
  extended by org.opends.server.api.ClientConnection
      extended by org.opends.server.protocols.internal.InternalClientConnection

@PublicAPI(stability=UNCOMMITTED,
           mayInstantiate=true,
           mayExtend=false,
           mayInvoke=true)
public final class InternalClientConnection
extends ClientConnection

This class defines a pseudo-connection object that can be used for performing internal operations.


Field Summary
static java.lang.String PROTOCOL_VERSION
          The protocol verison string that will be used for internal bind operations.
 
Constructor Summary
InternalClientConnection(AuthenticationInfo authInfo)
          Creates a new internal client connection that will be authenticated as the specified user.
InternalClientConnection(DN userDN)
          Creates a new internal client connection that will be authenticated as the specified user.
 
Method Summary
 boolean bindInProgress()
          Indicates whether a bind operation is in progress on this client connection.
 void cancelAllOperations(CancelRequest cancelRequest)
          Attempts to cancel all operations in progress on this connection.
 void cancelAllOperationsExcept(CancelRequest cancelRequest, int messageID)
          Attempts to cancel all operations in progress on this connection except the operation with the specified message ID.
 CancelResult cancelOperation(int messageID, CancelRequest cancelRequest)
          Attempts to cancel the specified operation.
 void disconnect(DisconnectReason disconnectReason, boolean sendNotification, Message message)
          Closes the connection to the client, optionally sending it a message indicating the reason for the closure.
 AuthenticationInfo getAuthenticationInfo()
          Retrieves information about the authentication that has been performed for this connection.
 java.lang.String getClientAddress()
          Retrieves a string representation of the address of the client.
 ConnectionHandler getConnectionHandler()
          Retrieves the connection handler that accepted this client connection.
 long getConnectionID()
          Retrieves the unique identifier that has been assigned to this connection.
 ConnectionSecurityProvider getConnectionSecurityProvider()
          Retrieves the connection security provider for this client connection.
 java.net.InetAddress getLocalAddress()
          Retrieves the java.net.InetAddress for the Directory Server system to which the client has established the connection.
 java.lang.String getMonitorSummary()
          Retrieves a one-line summary of this client connection in a form that is suitable for including in the monitor entry for the associated connection handler.
 AbstractOperation getOperationInProgress(int messageID)
          Retrieves the operation in progress with the specified message ID.
 java.util.Collection<AbstractOperation> getOperationsInProgress()
          Retrieves the set of operations in progress for this client connection.
 java.lang.String getProtocol()
          Retrieves the protocol that the client is using to communicate with the Directory Server.
 java.net.InetAddress getRemoteAddress()
          Retrieves the java.net.InetAddress associated with the remote client system.
static InternalClientConnection getRootConnection()
          Retrieves a shared internal client connection that is authenticated as a root user.
 java.lang.String getSecurityMechanism()
          Retrieves the human-readable name of the security mechanism that is used to protect communication with this client.
 java.lang.String getServerAddress()
          Retrieves a string representation of the address on the server to which the client connected.
 boolean isSecure()
          Indicates whether this client connection is currently using a secure mechanism to communicate with the server.
static int nextMessageID()
          Retrieves the message ID that should be used for the next internal operation.
static long nextOperationID()
          Retrieves the operation ID that should be used for the next internal operation.
 AddOperation processAdd(AddChangeRecordEntry addRecord)
          Processes an internal add operation based on the provided add change record entry.
 AddOperation processAdd(ByteString rawEntryDN, java.util.List<RawAttribute> rawAttributes)
          Processes an internal add operation with the provided information.
 AddOperation processAdd(ByteString rawEntryDN, java.util.List<RawAttribute> rawAttributes, java.util.List<Control> controls)
          Processes an internal add operation with the provided information.
 AddOperation processAdd(DN entryDN, java.util.Map<ObjectClass,java.lang.String> objectClasses, java.util.Map<AttributeType,java.util.List<Attribute>> userAttributes, java.util.Map<AttributeType,java.util.List<Attribute>> operationalAttributes)
          Processes an internal add operation with the provided information.
 AddOperation processAdd(DN entryDN, java.util.Map<ObjectClass,java.lang.String> objectClasses, java.util.Map<AttributeType,java.util.List<Attribute>> userAttributes, java.util.Map<AttributeType,java.util.List<Attribute>> operationalAttributes, java.util.List<Control> controls)
          Processes an internal add operation with the provided information.
 AddOperation processAdd(Entry entry)
          Processes an internal add operation with the provided information.
 AddOperation processAdd(Entry entry, java.util.List<Control> controls)
          Processes an internal add operation with the provided information.
 AddOperation processAdd(java.lang.String rawEntryDN, java.util.List<RawAttribute> rawAttributes)
          Processes an internal add operation with the provided information.
 CompareOperation processCompare(ByteString rawEntryDN, java.lang.String attributeType, ByteString assertionValue)
          Processes an internal compare operation with the provided information.
 CompareOperation processCompare(ByteString rawEntryDN, java.lang.String attributeType, ByteString assertionValue, java.util.List<Control> controls)
          Processes an internal compare operation with the provided information.
 CompareOperation processCompare(DN entryDN, AttributeType attributeType, ByteString assertionValue)
          Processes an internal compare operation with the provided information.
 CompareOperation processCompare(DN entryDN, AttributeType attributeType, ByteString assertionValue, java.util.List<Control> controls)
          Processes an internal compare operation with the provided information.
 CompareOperation processCompare(java.lang.String rawEntryDN, java.lang.String attributeType, java.lang.String assertionValue)
          Processes an internal compare operation with the provided information.
 CompareOperation processCompare(java.lang.String rawEntryDN, java.lang.String attributeType, java.lang.String assertionValue, java.util.List<Control> controls)
          Processes an internal compare operation with the provided information.
 boolean processDataRead(java.nio.ByteBuffer buffer)
          Indicates that the data in the provided buffer has been read from the client and should be processed.
 DeleteOperation processDelete(ByteString rawEntryDN)
          Processes an internal delete operation with the provided information.
 DeleteOperation processDelete(ByteString rawEntryDN, java.util.List<Control> controls)
          Processes an internal delete operation with the provided information.
 DeleteOperation processDelete(DeleteChangeRecordEntry deleteRecord)
          Processes an internal delete operation with the provided information.
 DeleteOperation processDelete(DN entryDN)
          Processes an internal delete operation with the provided information.
 DeleteOperation processDelete(DN entryDN, java.util.List<Control> controls)
          Processes an internal delete operation with the provided information.
 DeleteOperation processDelete(java.lang.String rawEntryDN)
          Processes an internal delete operation with the provided information.
 DeleteOperation processDelete(java.lang.String rawEntryDN, java.util.List<Control> controls)
          Processes an internal delete operation with the provided information.
 ExtendedOperation processExtendedOperation(java.lang.String requestOID, ASN1OctetString requestValue)
          Processes an internal extended operation with the provided information.
 ExtendedOperation processExtendedOperation(java.lang.String requestOID, ASN1OctetString requestValue, java.util.List<Control> controls)
          Processes an internal extended operation with the provided information.
 ModifyOperation processModify(ByteString rawEntryDN, java.util.List<RawModification> rawModifications)
          Processes an internal modify operation with the provided information.
 ModifyOperation processModify(ByteString rawEntryDN, java.util.List<RawModification> rawModifications, java.util.List<Control> controls)
          Processes an internal modify operation with the provided information.
 ModifyOperation processModify(DN entryDN, java.util.List<Modification> modifications)
          Processes an internal modify operation with the provided information.
 ModifyOperation processModify(DN entryDN, java.util.List<Modification> modifications, java.util.List<Control> controls)
          Processes an internal modify operation with the provided information.
 ModifyOperation processModify(ModifyChangeRecordEntry modifyRecord)
          Processes an internal modify operation with the provided information.
 ModifyOperation processModify(java.lang.String rawEntryDN, java.util.List<RawModification> rawModifications)
          Processes an internal modify operation with the provided information.
 ModifyOperation processModify(java.lang.String rawEntryDN, java.util.List<RawModification> rawModifications, java.util.List<Control> controls)
          Processes an internal modify operation with the provided information.
 ModifyDNOperation processModifyDN(ByteString rawEntryDN, ByteString rawNewRDN, boolean deleteOldRDN)
          Processes an internal modify DN operation with the provided information.
 ModifyDNOperation processModifyDN(ByteString rawEntryDN, ByteString rawNewRDN, boolean deleteOldRDN, ByteString rawNewSuperior)
          Processes an internal modify DN operation with the provided information.
 ModifyDNOperation processModifyDN(ByteString rawEntryDN, ByteString rawNewRDN, boolean deleteOldRDN, ByteString rawNewSuperior, java.util.List<Control> controls)
          Processes an internal modify DN operation with the provided information.
 ModifyDNOperation processModifyDN(DN entryDN, RDN newRDN, boolean deleteOldRDN)
          Processes an internal modify DN operation with the provided information.
 ModifyDNOperation processModifyDN(DN entryDN, RDN newRDN, boolean deleteOldRDN, DN newSuperior)
          Processes an internal modify DN operation with the provided information.
 ModifyDNOperation processModifyDN(DN entryDN, RDN newRDN, boolean deleteOldRDN, DN newSuperior, java.util.List<Control> controls)
          Processes an internal modify DN operation with the provided information.
 ModifyDNOperation processModifyDN(ModifyDNChangeRecordEntry modifyDNRecord)
          Processes an internal modify DN operation with the provided information.
 ModifyDNOperation processModifyDN(java.lang.String rawEntryDN, java.lang.String rawNewRDN, boolean deleteOldRDN)
          Processes an internal modify DN operation with the provided information.
 ModifyDNOperation processModifyDN(java.lang.String rawEntryDN, java.lang.String rawNewRDN, boolean deleteOldRDN, java.util.List<Control> controls)
          Processes an internal modify DN operation with the provided information.
 ModifyDNOperation processModifyDN(java.lang.String rawEntryDN, java.lang.String rawNewRDN, boolean deleteOldRDN, java.lang.String rawNewSuperior)
          Processes an internal modify DN operation with the provided information.
 ModifyDNOperation processModifyDN(java.lang.String rawEntryDN, java.lang.String rawNewRDN, boolean deleteOldRDN, java.lang.String rawNewSuperior, java.util.List<Control> controls)
          Processes an internal modify DN operation with the provided information.
 BindOperation processSASLBind(ByteString rawBindDN, java.lang.String saslMechanism, ASN1OctetString saslCredentials)
          Processes an internal bind operation with the provided information.
 BindOperation processSASLBind(ByteString rawBindDN, java.lang.String saslMechanism, ASN1OctetString saslCredentials, java.util.List<Control> controls)
          Processes an internal bind operation with the provided information.
 BindOperation processSASLBind(DN bindDN, java.lang.String saslMechanism, ASN1OctetString saslCredentials)
          Processes an internal bind operation with the provided information.
 BindOperation processSASLBind(DN bindDN, java.lang.String saslMechanism, ASN1OctetString saslCredentials, java.util.List<Control> controls)
          Processes an internal bind operation with the provided information.
 InternalSearchOperation processSearch(ByteString rawBaseDN, SearchScope scope, DereferencePolicy derefPolicy, int sizeLimit, int timeLimit, boolean typesOnly, RawFilter filter, java.util.LinkedHashSet<java.lang.String> attributes)
          Processes an internal search operation with the provided information.
 InternalSearchOperation processSearch(ByteString rawBaseDN, SearchScope scope, DereferencePolicy derefPolicy, int sizeLimit, int timeLimit, boolean typesOnly, RawFilter filter, java.util.LinkedHashSet<java.lang.String> attributes, InternalSearchListener searchListener)
          Processes an internal search operation with the provided information.
 InternalSearchOperation processSearch(ByteString rawBaseDN, SearchScope scope, DereferencePolicy derefPolicy, int sizeLimit, int timeLimit, boolean typesOnly, RawFilter filter, java.util.LinkedHashSet<java.lang.String> attributes, java.util.List<Control> controls, InternalSearchListener searchListener)
          Processes an internal search operation with the provided information.
 InternalSearchOperation processSearch(ByteString rawBaseDN, SearchScope scope, RawFilter filter)
          Processes an internal search operation with the provided information.
 InternalSearchOperation processSearch(DN baseDN, SearchScope scope, DereferencePolicy derefPolicy, int sizeLimit, int timeLimit, boolean typesOnly, SearchFilter filter, java.util.LinkedHashSet<java.lang.String> attributes)
          Processes an internal search operation with the provided information.
 InternalSearchOperation processSearch(DN baseDN, SearchScope scope, DereferencePolicy derefPolicy, int sizeLimit, int timeLimit, boolean typesOnly, SearchFilter filter, java.util.LinkedHashSet<java.lang.String> attributes, InternalSearchListener searchListener)
          Processes an internal search operation with the provided information.
 InternalSearchOperation processSearch(DN baseDN, SearchScope scope, DereferencePolicy derefPolicy, int sizeLimit, int timeLimit, boolean typesOnly, SearchFilter filter, java.util.LinkedHashSet<java.lang.String> attributes, java.util.List<Control> controls, InternalSearchListener searchListener)
          Processes an internal search operation with the provided information.
 InternalSearchOperation processSearch(DN baseDN, SearchScope scope, SearchFilter filter)
          Processes an internal search operation with the provided information.
 InternalSearchOperation processSearch(java.lang.String rawBaseDN, SearchScope scope, DereferencePolicy derefPolicy, int sizeLimit, int timeLimit, boolean typesOnly, java.lang.String filterString, java.util.LinkedHashSet<java.lang.String> attributes)
          Processes an internal search operation with the provided information.
 InternalSearchOperation processSearch(java.lang.String rawBaseDN, SearchScope scope, DereferencePolicy derefPolicy, int sizeLimit, int timeLimit, boolean typesOnly, java.lang.String filterString, java.util.LinkedHashSet<java.lang.String> attributes, InternalSearchListener searchListener)
          Processes an internal search operation with the provided information.
 InternalSearchOperation processSearch(java.lang.String rawBaseDN, SearchScope scope, DereferencePolicy derefPolicy, int sizeLimit, int timeLimit, boolean typesOnly, java.lang.String filterString, java.util.LinkedHashSet<java.lang.String> attributes, java.util.List<Control> controls, InternalSearchListener searchListener)
          Processes an internal search operation with the provided information.
 InternalSearchOperation processSearch(java.lang.String rawBaseDN, SearchScope scope, java.lang.String filterString)
          Processes an internal search operation with the provided information.
 BindOperation processSimpleBind(ByteString rawBindDN, ByteString password)
          Processes an internal bind operation with the provided information.
 BindOperation processSimpleBind(ByteString rawBindDN, ByteString password, java.util.List<Control> controls)
          Processes an internal bind operation with the provided information.
 BindOperation processSimpleBind(DN bindDN, ByteString password)
          Processes an internal bind operation with the provided information.
 BindOperation processSimpleBind(DN bindDN, ByteString password, java.util.List<Control> controls)
          Processes an internal bind operation with the provided information.
 BindOperation processSimpleBind(java.lang.String rawBindDN, java.lang.String password)
          Processes an internal bind operation with the provided information.
 BindOperation processSimpleBind(java.lang.String rawBindDN, java.lang.String password, java.util.List<Control> controls)
          Processes an internal bind operation with the provided information.
 boolean removeOperationInProgress(int messageID)
          Removes the provided operation from the set of operations in progress for this client connection.
protected  boolean sendIntermediateResponseMessage(IntermediateResponse intermediateResponse)
          Sends the provided intermediate response message to the client.
 void sendResponse(Operation operation)
          Sends a response to the client based on the information in the provided operation.
 void sendSearchEntry(SearchOperation searchOperation, SearchResultEntry searchEntry)
          Sends the provided search result entry to the client.
 boolean sendSearchReference(SearchOperation searchOperation, SearchResultReference searchReference)
          Sends the provided search result reference to the client.
 void setAuthenticationInfo(AuthenticationInfo authenticationInfo)
          This method has no effect, as the authentication info for internal client connections is set when the connection is created and cannot be changed after the fact.
 void setBindInProgress(boolean bindInProgress)
          Specifies whether a bind operation is in progress on this client connection.
 void setConnectionSecurityProvider(ConnectionSecurityProvider securityProvider)
          Specifies the connection security provider for this client connection.
 void setIdleTimeLimit(long idleTimeLimit)
          Specifies the maximum length of time in milliseconds that this client connection will be allowed to remain idle before it should be disconnected.
 void setLookthroughLimit(int lookthroughLimit)
          Specifies the default maximum number of entries that should be checked for matches during a search.
 void setSizeLimit(int sizeLimit)
          Specifies the size limit that will be enforced for searches performed using this client connection.
 void setTimeLimit(int timeLimit)
          Specifies the time limit that will be enforced for searches performed using this client connection.
 void setUnauthenticated()
          This method has no effect, as the authentication info for internal client connections is set when the connection is created and cannot be changed after the fact.
 void toString(java.lang.StringBuilder buffer)
          Appends a string representation of this client connection to the provided buffer.
 
Methods inherited from class org.opends.server.api.ClientConnection
deregisterPersistentSearch, finalize, finalizeClientConnection, finalizeConnectionInternal, getCertificateAlias, getConnectTime, getConnectTimeString, getGroups, getIdleTime, getIdleTimeLimit, getKeyManagerProviderDN, getLookthroughLimit, getMaxBlockedWriteTimeLimit, getNetworkGroup, getPersistentSearches, getSASLAuthStateInfo, getSizeLimit, getTimeLimit, getTrustManagerProviderDN, getWriteSelector, hasAllPrivileges, hasPrivilege, isMemberOf, mustChangePassword, registerPersistentSearch, sendIntermediateResponse, setMustChangePassword, setNetworkGroup, setSASLAuthStateInfo, toString, updateAuthenticationInfo
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

PROTOCOL_VERSION

public static final java.lang.String PROTOCOL_VERSION
The protocol verison string that will be used for internal bind operations. Since this is modeled after LDAPv3 binds, it will use a version number string of "3".

See Also:
Constant Field Values
Constructor Detail

InternalClientConnection

public InternalClientConnection(AuthenticationInfo authInfo)
Creates a new internal client connection that will be authenticated as the specified user.

Parameters:
authInfo - The authentication information to use for the connection.

InternalClientConnection

public InternalClientConnection(DN userDN)
                         throws DirectoryException
Creates a new internal client connection that will be authenticated as the specified user.

Parameters:
userDN - The DN of the entry to use as the authentication and authorization identity.
Throws:
DirectoryException - If a problem occurs while trying to get the entry for the provided user DN.
Method Detail

getRootConnection

public static InternalClientConnection getRootConnection()
Retrieves a shared internal client connection that is authenticated as a root user.

Returns:
A shared internal client connection that is authenticated as a root user.

nextOperationID

public static long nextOperationID()
Retrieves the operation ID that should be used for the next internal operation.

Returns:
The operation ID that should be used for the next internal operation.

nextMessageID

public static int nextMessageID()
Retrieves the message ID that should be used for the next internal operation.

Returns:
The message ID that should be used for the next internal operation.

getConnectionID

public long getConnectionID()
Retrieves the unique identifier that has been assigned to this connection.

Specified by:
getConnectionID in class ClientConnection
Returns:
The unique identifier that has been assigned to this connection.

getConnectionHandler

@PublicAPI(stability=PRIVATE,
           mayInstantiate=false,
           mayExtend=false,
           mayInvoke=false)
public ConnectionHandler getConnectionHandler()
Retrieves the connection handler that accepted this client connection.

Specified by:
getConnectionHandler in class ClientConnection
Returns:
The connection handler that accepted this client connection.

getProtocol

public java.lang.String getProtocol()
Retrieves the protocol that the client is using to communicate with the Directory Server.

Specified by:
getProtocol in class ClientConnection
Returns:
The protocol that the client is using to communicate with the Directory Server.

getClientAddress

public java.lang.String getClientAddress()
Retrieves a string representation of the address of the client.

Specified by:
getClientAddress in class ClientConnection
Returns:
A string representation of the address of the client.

getServerAddress

public java.lang.String getServerAddress()
Retrieves a string representation of the address on the server to which the client connected.

Specified by:
getServerAddress in class ClientConnection
Returns:
A string representation of the address on the server to which the client connected.

getRemoteAddress

public java.net.InetAddress getRemoteAddress()
Retrieves the java.net.InetAddress associated with the remote client system.

Specified by:
getRemoteAddress in class ClientConnection
Returns:
The java.net.InetAddress associated with the remote client system. It may be null if the client is not connected over an IP-based connection.

getLocalAddress

public java.net.InetAddress getLocalAddress()
Retrieves the java.net.InetAddress for the Directory Server system to which the client has established the connection.

Specified by:
getLocalAddress in class ClientConnection
Returns:
The java.net.InetAddress for the Directory Server system to which the client has established the connection. It may be null if the client is not connected over an IP-based connection.

setSizeLimit

public void setSizeLimit(int sizeLimit)
Specifies the size limit that will be enforced for searches performed using this client connection. This method does nothing because connection-level size limits will never be enforced for internal client connections.

Overrides:
setSizeLimit in class ClientConnection
Parameters:
sizeLimit - The size limit that will be enforced for searches performed using this client connection.

setLookthroughLimit

public void setLookthroughLimit(int lookthroughLimit)
Specifies the default maximum number of entries that should be checked for matches during a search. This method does nothing because connection-level lookthrough limits will never be enforced for internal client connections

Overrides:
setLookthroughLimit in class ClientConnection
Parameters:
lookthroughLimit - The default maximum number of entries that should be check for matches during a search.

setIdleTimeLimit

public void setIdleTimeLimit(long idleTimeLimit)
Specifies the maximum length of time in milliseconds that this client connection will be allowed to remain idle before it should be disconnected. This method does nothing because internal client connections will not be terminated due to an idle time limit.

Overrides:
setIdleTimeLimit in class ClientConnection
Parameters:
idleTimeLimit - The maximum length of time in milliseconds that this client connection will be allowed to remain idle before it should be disconnected.

setTimeLimit

public void setTimeLimit(int timeLimit)
Specifies the time limit that will be enforced for searches performed using this client connection. This method does nothing because connection-level tim elimits will never be enforced for internal client connections.

Overrides:
setTimeLimit in class ClientConnection
Parameters:
timeLimit - The time limit that will be enforced for searches performed using this client connection.

isSecure

public boolean isSecure()
Indicates whether this client connection is currently using a secure mechanism to communicate with the server. Note that this may change over time based on operations performed by the client or server (e.g., it may go from false to true if the client uses the StartTLS extended operation).

Specified by:
isSecure in class ClientConnection
Returns:
true if the client connection is currently using a secure mechanism to communicate with the server, or false if not.

getConnectionSecurityProvider

public ConnectionSecurityProvider getConnectionSecurityProvider()
Retrieves the connection security provider for this client connection.

Specified by:
getConnectionSecurityProvider in class ClientConnection
Returns:
The connection security provider for this client connection.

setConnectionSecurityProvider

@PublicAPI(stability=PRIVATE,
           mayInstantiate=false,
           mayExtend=false,
           mayInvoke=false)
public void setConnectionSecurityProvider(ConnectionSecurityProvider securityProvider)
Specifies the connection security provider for this client connection.

Specified by:
setConnectionSecurityProvider in class ClientConnection
Parameters:
securityProvider - The connection security provider to use for communication on this client connection.

getSecurityMechanism

public java.lang.String getSecurityMechanism()
Retrieves the human-readable name of the security mechanism that is used to protect communication with this client.

Specified by:
getSecurityMechanism in class ClientConnection
Returns:
The human-readable name of the security mechanism that is used to protect communication with this client, or null if no security is in place.

processDataRead

@PublicAPI(stability=PRIVATE,
           mayInstantiate=false,
           mayExtend=false,
           mayInvoke=false)
public boolean processDataRead(java.nio.ByteBuffer buffer)
Indicates that the data in the provided buffer has been read from the client and should be processed. The contents of the provided buffer will be in clear-text (the data may have been passed through a connection security provider to obtain the clear-text version), and may contain part or all of one or more client requests.

Specified by:
processDataRead in class ClientConnection
Parameters:
buffer - The byte buffer containing the data available for reading.
Returns:
true if all the data in the provided buffer was processed and the client connection can remain established, or false if a decoding error occurred and requests from this client should no longer be processed. Note that if this method does return false, then it must have already disconnected the client.

sendResponse

@PublicAPI(stability=PRIVATE,
           mayInstantiate=false,
           mayExtend=false,
           mayInvoke=false)
public void sendResponse(Operation operation)
Sends a response to the client based on the information in the provided operation.

Specified by:
sendResponse in class ClientConnection
Parameters:
operation - The operation for which to send the response.

getAuthenticationInfo

public AuthenticationInfo getAuthenticationInfo()
Retrieves information about the authentication that has been performed for this connection.

Overrides:
getAuthenticationInfo in class ClientConnection
Returns:
Information about the user that is currently authenticated on this connection.

setAuthenticationInfo

@PublicAPI(stability=PRIVATE,
           mayInstantiate=false,
           mayExtend=false,
           mayInvoke=false)
public void setAuthenticationInfo(AuthenticationInfo authenticationInfo)
This method has no effect, as the authentication info for internal client connections is set when the connection is created and cannot be changed after the fact.

Overrides:
setAuthenticationInfo in class ClientConnection
Parameters:
authenticationInfo - Information about the authentication that has been performed for this connection. It should not be null.

setUnauthenticated

@PublicAPI(stability=PRIVATE,
           mayInstantiate=false,
           mayExtend=false,
           mayInvoke=false)
public void setUnauthenticated()
This method has no effect, as the authentication info for internal client connections is set when the connection is created and cannot be changed after the fact.

Overrides:
setUnauthenticated in class ClientConnection

processAdd

public AddOperation processAdd(java.lang.String rawEntryDN,
                               java.util.List<RawAttribute> rawAttributes)
Processes an internal add operation with the provided information.

Parameters:
rawEntryDN - The DN to use for the entry to add.
rawAttributes - The set of attributes to include in the entry to add.
Returns:
A reference to the add operation that was processed and contains information about the result of the processing.

processAdd

public AddOperation processAdd(ByteString rawEntryDN,
                               java.util.List<RawAttribute> rawAttributes)
Processes an internal add operation with the provided information.

Parameters:
rawEntryDN - The DN to use for the entry to add.
rawAttributes - The set of attributes to include in the entry to add.
Returns:
A reference to the add operation that was processed and contains information about the result of the processing.

processAdd

public AddOperation processAdd(ByteString rawEntryDN,
                               java.util.List<RawAttribute> rawAttributes,
                               java.util.List<Control> controls)
Processes an internal add operation with the provided information.

Parameters:
rawEntryDN - The DN to use for the entry to add.
rawAttributes - The set of attributes to include in the entry to add.
controls - The set of controls to include in the request.
Returns:
A reference to the add operation that was processed and contains information about the result of the processing.

processAdd

public AddOperation processAdd(DN entryDN,
                               java.util.Map<ObjectClass,java.lang.String> objectClasses,
                               java.util.Map<AttributeType,java.util.List<Attribute>> userAttributes,
                               java.util.Map<AttributeType,java.util.List<Attribute>> operationalAttributes)
Processes an internal add operation with the provided information.

Parameters:
entryDN - The entry DN for the add operation.
objectClasses - The set of objectclasses for the add operation.
userAttributes - The set of user attributes for the add operation.
operationalAttributes - The set of operational attributes for the add operation.
Returns:
A reference to the add operation that was processed and contains information about the result of the processing.

processAdd

public AddOperation processAdd(DN entryDN,
                               java.util.Map<ObjectClass,java.lang.String> objectClasses,
                               java.util.Map<AttributeType,java.util.List<Attribute>> userAttributes,
                               java.util.Map<AttributeType,java.util.List<Attribute>> operationalAttributes,
                               java.util.List<Control> controls)
Processes an internal add operation with the provided information.

Parameters:
entryDN - The entry DN for the add operation.
objectClasses - The set of objectclasses for the add operation.
userAttributes - The set of user attributes for the add operation.
operationalAttributes - The set of operational attributes for the add operation.
controls - The set of controls to include in the request.
Returns:
A reference to the add operation that was processed and contains information about the result of the processing.

processAdd

public AddOperation processAdd(Entry entry)
Processes an internal add operation with the provided information.

Parameters:
entry - The entry to be added.
Returns:
A reference to the add operation that was processed and contains information about the result of the processing.

processAdd

public AddOperation processAdd(Entry entry,
                               java.util.List<Control> controls)
Processes an internal add operation with the provided information.

Parameters:
entry - The entry to be added.
controls - The set of controls to include in the request.
Returns:
A reference to the add operation that was processed and contains information about the result of the processing.

processAdd

public AddOperation processAdd(AddChangeRecordEntry addRecord)
Processes an internal add operation based on the provided add change record entry.

Parameters:
addRecord - The add change record entry to be processed.
Returns:
A reference to the add operation that was processed and contains information about the result of the processing.

processSimpleBind

public BindOperation processSimpleBind(java.lang.String rawBindDN,
                                       java.lang.String password)
Processes an internal bind operation with the provided information. Note that regardless of whether the bind is successful, the authentication state for this internal connection will not be altered in any way.

Parameters:
rawBindDN - The bind DN for the operation.
password - The bind password for the operation.
Returns:
A reference to the bind operation that was processed and contains information about the result of the processing.

processSimpleBind

public BindOperation processSimpleBind(java.lang.String rawBindDN,
                                       java.lang.String password,
                                       java.util.List<Control> controls)
Processes an internal bind operation with the provided information. Note that regardless of whether the bind is successful, the authentication state for this internal connection will not be altered in any way.

Parameters:
rawBindDN - The bind DN for the operation.
password - The bind password for the operation.
controls - The set of controls to include in the request.
Returns:
A reference to the bind operation that was processed and contains information about the result of the processing.

processSimpleBind

public BindOperation processSimpleBind(ByteString rawBindDN,
                                       ByteString password)
Processes an internal bind operation with the provided information. Note that regardless of whether the bind is successful, the authentication state for this internal connection will not be altered in any way.

Parameters:
rawBindDN - The bind DN for the operation.
password - The bind password for the operation.
Returns:
A reference to the bind operation that was processed and contains information about the result of the processing.

processSimpleBind

public BindOperation processSimpleBind(ByteString rawBindDN,
                                       ByteString password,
                                       java.util.List<Control> controls)
Processes an internal bind operation with the provided information. Note that regardless of whether the bind is successful, the authentication state for this internal connection will not be altered in any way.

Parameters:
rawBindDN - The bind DN for the operation.
password - The bind password for the operation.
controls - The set of controls to include in the request.
Returns:
A reference to the bind operation that was processed and contains information about the result of the processing.

processSimpleBind

public BindOperation processSimpleBind(DN bindDN,
                                       ByteString password)
Processes an internal bind operation with the provided information. Note that regardless of whether the bind is successful, the authentication state for this internal connection will not be altered in any way.

Parameters:
bindDN - The bind DN for the operation.
password - The bind password for the operation.
Returns:
A reference to the bind operation that was processed and contains information about the result of the processing.

processSimpleBind

public BindOperation processSimpleBind(DN bindDN,
                                       ByteString password,
                                       java.util.List<Control> controls)
Processes an internal bind operation with the provided information. Note that regardless of whether the bind is successful, the authentication state for this internal connection will not be altered in any way.

Parameters:
bindDN - The bind DN for the operation.
password - The bind password for the operation.
controls - The set of controls to include in the request.
Returns:
A reference to the bind operation that was processed and contains information about the result of the processing.

processSASLBind

public BindOperation processSASLBind(ByteString rawBindDN,
                                     java.lang.String saslMechanism,
                                     ASN1OctetString saslCredentials)
Processes an internal bind operation with the provided information. Note that regardless of whether the bind is successful, the authentication state for this internal connection will not be altered in any way.

Parameters:
rawBindDN - The bind DN for the operation.
saslMechanism - The SASL mechanism for the operation.
saslCredentials - The SASL credentials for the operation.
Returns:
A reference to the bind operation that was processed and contains information about the result of the processing.

processSASLBind

public BindOperation processSASLBind(ByteString rawBindDN,
                                     java.lang.String saslMechanism,
                                     ASN1OctetString saslCredentials,
                                     java.util.List<Control> controls)
Processes an internal bind operation with the provided information. Note that regardless of whether the bind is successful, the authentication state for this internal connection will not be altered in any way.

Parameters:
rawBindDN - The bind DN for the operation.
saslMechanism - The SASL mechanism for the operation.
saslCredentials - The SASL credentials for the operation.
controls - The set of controls to include in the request.
Returns:
A reference to the bind operation that was processed and contains information about the result of the processing.

processSASLBind

public BindOperation processSASLBind(DN bindDN,
                                     java.lang.String saslMechanism,
                                     ASN1OctetString saslCredentials)
Processes an internal bind operation with the provided information. Note that regardless of whether the bind is successful, the authentication state for this internal connection will not be altered in any way.

Parameters:
bindDN - The bind DN for the operation.
saslMechanism - The SASL mechanism for the operation.
saslCredentials - The SASL credentials for the operation.
Returns:
A reference to the bind operation that was processed and contains information about the result of the processing.

processSASLBind

public BindOperation processSASLBind(DN bindDN,
                                     java.lang.String saslMechanism,
                                     ASN1OctetString saslCredentials,
                                     java.util.List<Control> controls)
Processes an internal bind operation with the provided information. Note that regardless of whether the bind is successful, the authentication state for this internal connection will not be altered in any way.

Parameters:
bindDN - The bind DN for the operation.
saslMechanism - The SASL mechanism for the operation.
saslCredentials - The SASL credentials for the operation.
controls - The set of controls to include in the request.
Returns:
A reference to the bind operation that was processed and contains information about the result of the processing.

processCompare

public CompareOperation processCompare(java.lang.String rawEntryDN,
                                       java.lang.String attributeType,
                                       java.lang.String assertionValue)
Processes an internal compare operation with the provided information.

Parameters:
rawEntryDN - The entry DN for the compare operation.
attributeType - The attribute type for the compare operation.
assertionValue - The assertion value for the compare operation.
Returns:
A reference to the compare operation that was processed and contains information about the result of the processing.

processCompare

public CompareOperation processCompare(java.lang.String rawEntryDN,
                                       java.lang.String attributeType,
                                       java.lang.String assertionValue,
                                       java.util.List<Control> controls)
Processes an internal compare operation with the provided information.

Parameters:
rawEntryDN - The entry DN for the compare operation.
attributeType - The attribute type for the compare operation.
assertionValue - The assertion value for the compare operation.
controls - The set of controls to include in the request.
Returns:
A reference to the compare operation that was processed and contains information about the result of the processing.

processCompare

public CompareOperation processCompare(ByteString rawEntryDN,
                                       java.lang.String attributeType,
                                       ByteString assertionValue)
Processes an internal compare operation with the provided information.

Parameters:
rawEntryDN - The entry DN for the compare operation.
attributeType - The attribute type for the compare operation.
assertionValue - The assertion value for the compare operation.
Returns:
A reference to the compare operation that was processed and contains information about the result of the processing.

processCompare

public CompareOperation processCompare(ByteString rawEntryDN,
                                       java.lang.String attributeType,
                                       ByteString assertionValue,
                                       java.util.List<Control> controls)
Processes an internal compare operation with the provided information.

Parameters:
rawEntryDN - The entry DN for the compare operation.
attributeType - The attribute type for the compare operation.
assertionValue - The assertion value for the compare operation.
controls - The set of controls to include in the request.
Returns:
A reference to the compare operation that was processed and contains information about the result of the processing.

processCompare

public CompareOperation processCompare(DN entryDN,
                                       AttributeType attributeType,
                                       ByteString assertionValue)
Processes an internal compare operation with the provided information.

Parameters:
entryDN - The entry DN for the compare operation.
attributeType - The attribute type for the compare operation.
assertionValue - The assertion value for the compare operation.
Returns:
A reference to the compare operation that was processed and contains information about the result of the processing.

processCompare

public CompareOperation processCompare(DN entryDN,
                                       AttributeType attributeType,
                                       ByteString assertionValue,
                                       java.util.List<Control> controls)
Processes an internal compare operation with the provided information.

Parameters:
entryDN - The entry DN for the compare operation.
attributeType - The attribute type for the compare operation.
assertionValue - The assertion value for the compare operation.
controls - The set of controls to include in the request.
Returns:
A reference to the compare operation that was processed and contains information about the result of the processing.

processDelete

public DeleteOperation processDelete(java.lang.String rawEntryDN)
Processes an internal delete operation with the provided information.

Parameters:
rawEntryDN - The entry DN for the delete operation.
Returns:
A reference to the delete operation that was processed and contains information about the result of the processing.

processDelete

public DeleteOperation processDelete(java.lang.String rawEntryDN,
                                     java.util.List<Control> controls)
Processes an internal delete operation with the provided information.

Parameters:
rawEntryDN - The entry DN for the delete operation.
controls - The set of controls to include in the request.
Returns:
A reference to the delete operation that was processed and contains information about the result of the processing.

processDelete

public DeleteOperation processDelete(ByteString rawEntryDN)
Processes an internal delete operation with the provided information.

Parameters:
rawEntryDN - The entry DN for the delete operation.
Returns:
A reference to the delete operation that was processed and contains information about the result of the processing.

processDelete

public DeleteOperation processDelete(ByteString rawEntryDN,
                                     java.util.List<Control> controls)
Processes an internal delete operation with the provided information.

Parameters:
rawEntryDN - The entry DN for the delete operation.
controls - The set of controls to include in the request.
Returns:
A reference to the delete operation that was processed and contains information about the result of the processing.

processDelete

public DeleteOperation processDelete(DN entryDN)
Processes an internal delete operation with the provided information.

Parameters:
entryDN - The entry DN for the delete operation.
Returns:
A reference to the delete operation that was processed and contains information about the result of the processing.

processDelete

public DeleteOperation processDelete(DN entryDN,
                                     java.util.List<Control> controls)
Processes an internal delete operation with the provided information.

Parameters:
entryDN - The entry DN for the delete operation.
controls - The set of controls to include in the request.
Returns:
A reference to the delete operation that was processed and contains information about the result of the processing.

processDelete

public DeleteOperation processDelete(DeleteChangeRecordEntry deleteRecord)
Processes an internal delete operation with the provided information.

Parameters:
deleteRecord - The delete change record entry to be processed.
Returns:
A reference to the delete operation that was processed and contains information about the result of the processing.

processExtendedOperation

public ExtendedOperation processExtendedOperation(java.lang.String requestOID,
                                                  ASN1OctetString requestValue)
Processes an internal extended operation with the provided information.

Parameters:
requestOID - The OID for the extended request.
requestValue - The encoded value for the extended operation, or null if there is no value.
Returns:
A reference to the extended operation that was processed and contains information about the result of the processing.

processExtendedOperation

public ExtendedOperation processExtendedOperation(java.lang.String requestOID,
                                                  ASN1OctetString requestValue,
                                                  java.util.List<Control> controls)
Processes an internal extended operation with the provided information.

Parameters:
requestOID - The OID for the extended request.
requestValue - The encoded value for the extended operation, or null if there is no value.
controls - The set of controls to include in the request.
Returns:
A reference to the extended operation that was processed and contains information about the result of the processing.

processModify

public ModifyOperation processModify(java.lang.String rawEntryDN,
                                     java.util.List<RawModification> rawModifications)
Processes an internal modify operation with the provided information.

Parameters:
rawEntryDN - The raw entry DN for this modify operation.
rawModifications - The set of modifications for this modify operation.
Returns:
A reference to the modify operation that was processed and contains information about the result of the processing.

processModify

public ModifyOperation processModify(java.lang.String rawEntryDN,
                                     java.util.List<RawModification> rawModifications,
                                     java.util.List<Control> controls)
Processes an internal modify operation with the provided information.

Parameters:
rawEntryDN - The raw entry DN for this modify operation.
rawModifications - The set of modifications for this modify operation.
controls - The set of controls to include in the request.
Returns:
A reference to the modify operation that was processed and contains information about the result of the processing.

processModify

public ModifyOperation processModify(ByteString rawEntryDN,
                                     java.util.List<RawModification> rawModifications)
Processes an internal modify operation with the provided information.

Parameters:
rawEntryDN - The raw entry DN for this modify operation.
rawModifications - The set of modifications for this modify operation.
Returns:
A reference to the modify operation that was processed and contains information about the result of the processing.

processModify

public ModifyOperation processModify(ByteString rawEntryDN,
                                     java.util.List<RawModification> rawModifications,
                                     java.util.List<Control> controls)
Processes an internal modify operation with the provided information.

Parameters:
rawEntryDN - The raw entry DN for this modify operation.
rawModifications - The set of modifications for this modify operation.
controls - The set of controls to include in the request.
Returns:
A reference to the modify operation that was processed and contains information about the result of the processing.

processModify

public ModifyOperation processModify(DN entryDN,
                                     java.util.List<Modification> modifications)
Processes an internal modify operation with the provided information.

Parameters:
entryDN - The entry DN for this modify operation.
modifications - The set of modifications for this modify operation.
Returns:
A reference to the modify operation that was processed and contains information about the result of the processing.

processModify

public ModifyOperation processModify(DN entryDN,
                                     java.util.List<Modification> modifications,
                                     java.util.List<Control> controls)
Processes an internal modify operation with the provided information.

Parameters:
entryDN - The entry DN for this modify operation.
modifications - The set of modifications for this modify operation.
controls - The set of controls to include in the request.
Returns:
A reference to the modify operation that was processed and contains information about the result of the processing.

processModify

public ModifyOperation processModify(ModifyChangeRecordEntry modifyRecord)
Processes an internal modify operation with the provided information.

Parameters:
modifyRecord - The modify change record entry with information about the changes to perform.
Returns:
A reference to the modify operation that was processed and contains information about the result of the processing.

processModifyDN

public ModifyDNOperation processModifyDN(java.lang.String rawEntryDN,
                                         java.lang.String rawNewRDN,
                                         boolean deleteOldRDN)
Processes an internal modify DN operation with the provided information.

Parameters:
rawEntryDN - The current DN of the entry to rename.
rawNewRDN - The new RDN to use for the entry.
deleteOldRDN - The flag indicating whether the old RDN value is to be removed from the entry.
Returns:
A reference to the modify DN operation that was processed and contains information about the result of the processing.

processModifyDN

public ModifyDNOperation processModifyDN(java.lang.String rawEntryDN,
                                         java.lang.String rawNewRDN,
                                         boolean deleteOldRDN,
                                         java.util.List<Control> controls)
Processes an internal modify DN operation with the provided information.

Parameters:
rawEntryDN - The current DN of the entry to rename.
rawNewRDN - The new RDN to use for the entry.
deleteOldRDN - The flag indicating whether the old RDN value is to be removed from the entry.
controls - The set of controls to include in the request.
Returns:
A reference to the modify DN operation that was processed and contains information about the result of the processing.

processModifyDN

public ModifyDNOperation processModifyDN(ByteString rawEntryDN,
                                         ByteString rawNewRDN,
                                         boolean deleteOldRDN)
Processes an internal modify DN operation with the provided information.

Parameters:
rawEntryDN - The current DN of the entry to rename.
rawNewRDN - The new RDN to use for the entry.
deleteOldRDN - The flag indicating whether the old RDN value is to be removed from the entry.
Returns:
A reference to the modify DN operation that was processed and contains information about the result of the processing.

processModifyDN

public ModifyDNOperation processModifyDN(java.lang.String rawEntryDN,
                                         java.lang.String rawNewRDN,
                                         boolean deleteOldRDN,
                                         java.lang.String rawNewSuperior)
Processes an internal modify DN operation with the provided information.

Parameters:
rawEntryDN - The current DN of the entry to rename.
rawNewRDN - The new RDN to use for the entry.
deleteOldRDN - The flag indicating whether the old RDN value is to be removed from the entry.
rawNewSuperior - The new superior for the modify DN operation, or null if the entry will remain below the same parent.
Returns:
A reference to the modify DN operation that was processed and contains information about the result of the processing.

processModifyDN

public ModifyDNOperation processModifyDN(java.lang.String rawEntryDN,
                                         java.lang.String rawNewRDN,
                                         boolean deleteOldRDN,
                                         java.lang.String rawNewSuperior,
                                         java.util.List<Control> controls)
Processes an internal modify DN operation with the provided information.

Parameters:
rawEntryDN - The current DN of the entry to rename.
rawNewRDN - The new RDN to use for the entry.
deleteOldRDN - The flag indicating whether the old RDN value is to be removed from the entry.
rawNewSuperior - The new superior for the modify DN operation, or null if the entry will remain below the same parent.
controls - The set of controls to include in the request.
Returns:
A reference to the modify DN operation that was processed and contains information about the result of the processing.

processModifyDN

public ModifyDNOperation processModifyDN(ByteString rawEntryDN,
                                         ByteString rawNewRDN,
                                         boolean deleteOldRDN,
                                         ByteString rawNewSuperior)
Processes an internal modify DN operation with the provided information.

Parameters:
rawEntryDN - The current DN of the entry to rename.
rawNewRDN - The new RDN to use for the entry.
deleteOldRDN - The flag indicating whether the old RDN value is to be removed from the entry.
rawNewSuperior - The new superior for the modify DN operation, or null if the entry will remain below the same parent.
Returns:
A reference to the modify DN operation that was processed and contains information about the result of the processing.

processModifyDN

public ModifyDNOperation processModifyDN(ByteString rawEntryDN,
                                         ByteString rawNewRDN,
                                         boolean deleteOldRDN,
                                         ByteString rawNewSuperior,
                                         java.util.List<Control> controls)
Processes an internal modify DN operation with the provided information.

Parameters:
rawEntryDN - The current DN of the entry to rename.
rawNewRDN - The new RDN to use for the entry.
deleteOldRDN - The flag indicating whether the old RDN value is to be removed from the entry.
rawNewSuperior - The new superior for the modify DN operation, or null if the entry will remain below the same parent.
controls - The set of controls to include in the request.
Returns:
A reference to the modify DN operation that was processed and contains information about the result of the processing.

processModifyDN

public ModifyDNOperation processModifyDN(DN entryDN,
                                         RDN newRDN,
                                         boolean deleteOldRDN)
Processes an internal modify DN operation with the provided information.

Parameters:
entryDN - The current DN of the entry to rename.
newRDN - The new RDN to use for the entry.
deleteOldRDN - The flag indicating whether the old RDN value is to be removed from the entry.
Returns:
A reference to the modify DN operation that was processed and contains information about the result of the processing.

processModifyDN

public ModifyDNOperation processModifyDN(DN entryDN,
                                         RDN newRDN,
                                         boolean deleteOldRDN,
                                         DN newSuperior)
Processes an internal modify DN operation with the provided information.

Parameters:
entryDN - The current DN of the entry to rename.
newRDN - The new RDN to use for the entry.
deleteOldRDN - The flag indicating whether the old RDN value is to be removed from the entry.
newSuperior - The new superior for the modify DN operation, or null if the entry will remain below the same parent.
Returns:
A reference to the modify DN operation that was processed and contains information about the result of the processing.

processModifyDN

public ModifyDNOperation processModifyDN(DN entryDN,
                                         RDN newRDN,
                                         boolean deleteOldRDN,
                                         DN newSuperior,
                                         java.util.List<Control> controls)
Processes an internal modify DN operation with the provided information.

Parameters:
entryDN - The current DN of the entry to rename.
newRDN - The new RDN to use for the entry.
deleteOldRDN - The flag indicating whether the old RDN value is to be removed from the entry.
newSuperior - The new superior for the modify DN operation, or null if the entry will remain below the same parent.
controls - The set of controls to include in the request.
Returns:
A reference to the modify DN operation that was processed and contains information about the result of the processing.

processModifyDN

public ModifyDNOperation processModifyDN(ModifyDNChangeRecordEntry modifyDNRecord)
Processes an internal modify DN operation with the provided information.

Parameters:
modifyDNRecord - The modify DN change record entry with information about the processing to perform.
Returns:
A reference to the modify DN operation that was processed and contains information about the result of the processing.

processSearch

public InternalSearchOperation processSearch(java.lang.String rawBaseDN,
                                             SearchScope scope,
                                             java.lang.String filterString)
                                      throws DirectoryException
Processes an internal search operation with the provided information. It will not dereference any aliases, will not request a size or time limit, and will retrieve all user attributes.

Parameters:
rawBaseDN - The base DN for the search.
scope - The scope for the search.
filterString - The string representation of the filter for the search.
Returns:
A reference to the internal search operation that was processed and contains information about the result of the processing as well as lists of the matching entries and search references.
Throws:
DirectoryException - If the provided filter string cannot be decoded as a search filter.

processSearch

public InternalSearchOperation processSearch(java.lang.String rawBaseDN,
                                             SearchScope scope,
                                             DereferencePolicy derefPolicy,
                                             int sizeLimit,
                                             int timeLimit,
                                             boolean typesOnly,
                                             java.lang.String filterString,
                                             java.util.LinkedHashSet<java.lang.String> attributes)
                                      throws DirectoryException
Processes an internal search operation with the provided information.

Parameters:
rawBaseDN - The base DN for the search.
scope - The scope for the search.
derefPolicy - The alias dereferencing policy for the search.
sizeLimit - The size limit for the search.
timeLimit - The time limit for the search.
typesOnly - The typesOnly flag for the search.
filterString - The string representation of the filter for the search.
attributes - The set of requested attributes for the search.
Returns:
A reference to the internal search operation that was processed and contains information about the result of the processing as well as lists of the matching entries and search references.
Throws:
DirectoryException - If the provided filter string cannot be decoded as a search filter.

processSearch

public InternalSearchOperation processSearch(java.lang.String rawBaseDN,
                                             SearchScope scope,
                                             DereferencePolicy derefPolicy,
                                             int sizeLimit,
                                             int timeLimit,
                                             boolean typesOnly,
                                             java.lang.String filterString,
                                             java.util.LinkedHashSet<java.lang.String> attributes,
                                             InternalSearchListener searchListener)
                                      throws DirectoryException
Processes an internal search operation with the provided information.

Parameters:
rawBaseDN - The base DN for the search.
scope - The scope for the search.
derefPolicy - The alias dereferencing policy for the search.
sizeLimit - The size limit for the search.
timeLimit - The time limit for the search.
typesOnly - The typesOnly flag for the search.
filterString - The string representation of the filter for the search.
attributes - The set of requested attributes for the search.
searchListener - The internal search listener that should be used to handle the matching entries and references.
Returns:
A reference to the internal search operation that was processed and contains information about the result of the processing as well as lists of the matching entries and search references.
Throws:
DirectoryException - If the provided filter string cannot be decoded as a search filter.

processSearch

public InternalSearchOperation processSearch(java.lang.String rawBaseDN,
                                             SearchScope scope,
                                             DereferencePolicy derefPolicy,
                                             int sizeLimit,
                                             int timeLimit,
                                             boolean typesOnly,
                                             java.lang.String filterString,
                                             java.util.LinkedHashSet<java.lang.String> attributes,
                                             java.util.List<Control> controls,
                                             InternalSearchListener searchListener)
                                      throws DirectoryException
Processes an internal search operation with the provided information.

Parameters:
rawBaseDN - The base DN for the search.
scope - The scope for the search.
derefPolicy - The alias dereferencing policy for the search.
sizeLimit - The size limit for the search.
timeLimit - The time limit for the search.
typesOnly - The typesOnly flag for the search.
filterString - The string representation of the filter for the search.
attributes - The set of requested attributes for the search.
controls - The set of controls to include in the request.
searchListener - The internal search listener that should be used to handle the matching entries and references.
Returns:
A reference to the internal search operation that was processed and contains information about the result of the processing as well as lists of the matching entries and search references.
Throws:
DirectoryException - If the provided filter string cannot be decoded as a search filter.

processSearch

public InternalSearchOperation processSearch(ByteString rawBaseDN,
                                             SearchScope scope,
                                             RawFilter filter)
Processes an internal search operation with the provided information. It will not dereference any aliases, will not request a size or time limit, and will retrieve all user attributes.

Parameters:
rawBaseDN - The base DN for the search.
scope - The scope for the search.
filter - The filter for the search.
Returns:
A reference to the internal search operation that was processed and contains information about the result of the processing as well as lists of the matching entries and search references.

processSearch

public InternalSearchOperation processSearch(ByteString rawBaseDN,
                                             SearchScope scope,
                                             DereferencePolicy derefPolicy,
                                             int sizeLimit,
                                             int timeLimit,
                                             boolean typesOnly,
                                             RawFilter filter,
                                             java.util.LinkedHashSet<java.lang.String> attributes)
Processes an internal search operation with the provided information.

Parameters:
rawBaseDN - The base DN for the search.
scope - The scope for the search.
derefPolicy - The alias dereferencing policy for the search.
sizeLimit - The size limit for the search.
timeLimit - The time limit for the search.
typesOnly - The typesOnly flag for the search.
filter - The filter for the search.
attributes - The set of requested attributes for the search.
Returns:
A reference to the internal search operation that was processed and contains information about the result of the processing as well as lists of the matching entries and search references.

processSearch

public InternalSearchOperation processSearch(ByteString rawBaseDN,
                                             SearchScope scope,
                                             DereferencePolicy derefPolicy,
                                             int sizeLimit,
                                             int timeLimit,
                                             boolean typesOnly,
                                             RawFilter filter,
                                             java.util.LinkedHashSet<java.lang.String> attributes,
                                             InternalSearchListener searchListener)
Processes an internal search operation with the provided information.

Parameters:
rawBaseDN - The base DN for the search.
scope - The scope for the search.
derefPolicy - The alias dereferencing policy for the search.
sizeLimit - The size limit for the search.
timeLimit - The time limit for the search.
typesOnly - The typesOnly flag for the search.
filter - The filter for the search.
attributes - The set of requested attributes for the search.
searchListener - The internal search listener that should be used to handle the matching entries and references.
Returns:
A reference to the internal search operation that was processed and contains information about the result of the processing.

processSearch

public InternalSearchOperation processSearch(ByteString rawBaseDN,
                                             SearchScope scope,
                                             DereferencePolicy derefPolicy,
                                             int sizeLimit,
                                             int timeLimit,
                                             boolean typesOnly,
                                             RawFilter filter,
                                             java.util.LinkedHashSet<java.lang.String> attributes,
                                             java.util.List<Control> controls,
                                             InternalSearchListener searchListener)
Processes an internal search operation with the provided information.

Parameters:
rawBaseDN - The base DN for the search.
scope - The scope for the search.
derefPolicy - The alias dereferencing policy for the search.
sizeLimit - The size limit for the search.
timeLimit - The time limit for the search.
typesOnly - The typesOnly flag for the search.
filter - The filter for the search.
attributes - The set of requested attributes for the search.
controls - The set of controls to include in the request.
searchListener - The internal search listener that should be used to handle the matching entries and references.
Returns:
A reference to the internal search operation that was processed and contains information about the result of the processing.

processSearch

public InternalSearchOperation processSearch(DN baseDN,
                                             SearchScope scope,
                                             SearchFilter filter)
Processes an internal search operation with the provided information. It will not dereference any aliases, will not request a size or time limit, and will retrieve all user attributes.

Parameters:
baseDN - The base DN for the search.
scope - The scope for the search.
filter - The filter for the search.
Returns:
A reference to the internal search operation that was processed and contains information about the result of the processing as well as lists of the matching entries and search references.

processSearch

public InternalSearchOperation processSearch(DN baseDN,
                                             SearchScope scope,
                                             DereferencePolicy derefPolicy,
                                             int sizeLimit,
                                             int timeLimit,
                                             boolean typesOnly,
                                             SearchFilter filter,
                                             java.util.LinkedHashSet<java.lang.String> attributes)
Processes an internal search operation with the provided information.

Parameters:
baseDN - The base DN for the search.
scope - The scope for the search.
derefPolicy - The alias dereferencing policy for the search.
sizeLimit - The size limit for the search.
timeLimit - The time limit for the search.
typesOnly - The typesOnly flag for the search.
filter - The filter for the search.
attributes - The set of requested attributes for the search.
Returns:
A reference to the internal search operation that was processed and contains information about the result of the processing as well as lists of the matching entries and search references.

processSearch

public InternalSearchOperation processSearch(DN baseDN,
                                             SearchScope scope,
                                             DereferencePolicy derefPolicy,
                                             int sizeLimit,
                                             int timeLimit,
                                             boolean typesOnly,
                                             SearchFilter filter,
                                             java.util.LinkedHashSet<java.lang.String> attributes,
                                             InternalSearchListener searchListener)
Processes an internal search operation with the provided information.

Parameters:
baseDN - The base DN for the search.
scope - The scope for the search.
derefPolicy - The alias dereferencing policy for the search.
sizeLimit - The size limit for the search.
timeLimit - The time limit for the search.
typesOnly - The typesOnly flag for the search.
filter - The filter for the search.
attributes - The set of requested attributes for the search.
searchListener - The internal search listener that should be used to handle the matching entries and references.
Returns:
A reference to the internal search operation that was processed and contains information about the result of the processing.

processSearch

public InternalSearchOperation processSearch(DN baseDN,
                                             SearchScope scope,
                                             DereferencePolicy derefPolicy,
                                             int sizeLimit,
                                             int timeLimit,
                                             boolean typesOnly,
                                             SearchFilter filter,
                                             java.util.LinkedHashSet<java.lang.String> attributes,
                                             java.util.List<Control> controls,
                                             InternalSearchListener searchListener)
Processes an internal search operation with the provided information.

Parameters:
baseDN - The base DN for the search.
scope - The scope for the search.
derefPolicy - The alias dereferencing policy for the search.
sizeLimit - The size limit for the search.
timeLimit - The time limit for the search.
typesOnly - The typesOnly flag for the search.
filter - The filter for the search.
attributes - The set of requested attributes for the search.
controls - The set of controls to include in the request.
searchListener - The internal search listener that should be used to handle the matching entries and references.
Returns:
A reference to the internal search operation that was processed and contains information about the result of the processing.

sendSearchEntry

@PublicAPI(stability=PRIVATE,
           mayInstantiate=false,
           mayExtend=false,
           mayInvoke=false)
public void sendSearchEntry(SearchOperation searchOperation,
                                                                                      SearchResultEntry searchEntry)
                     throws DirectoryException
Sends the provided search result entry to the client.

Specified by:
sendSearchEntry in class ClientConnection
Parameters:
searchOperation - The search operation with which the entry is associated.
searchEntry - The search result entry to be sent to the client.
Throws:
DirectoryException - If a problem occurs while processing the entry and the search should be terminated.

sendSearchReference

@PublicAPI(stability=PRIVATE,
           mayInstantiate=false,
           mayExtend=false,
           mayInvoke=false)
public boolean sendSearchReference(SearchOperation searchOperation,
                                                                                             SearchResultReference searchReference)
                            throws DirectoryException
Sends the provided search result reference to the client.

Specified by:
sendSearchReference in class ClientConnection
Parameters:
searchOperation - The search operation with which the reference is associated.
searchReference - 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 processing the entry and the search should be terminated.

sendIntermediateResponseMessage

@PublicAPI(stability=PRIVATE,
           mayInstantiate=false,
           mayExtend=false,
           mayInvoke=false)
protected boolean sendIntermediateResponseMessage(IntermediateResponse intermediateResponse)
Sends the provided intermediate response message to the client.

Specified by:
sendIntermediateResponseMessage in class ClientConnection
Parameters:
intermediateResponse - The intermediate response message to be sent.
Returns:
true if processing on the associated operation should continue, or false if not.

disconnect

@PublicAPI(stability=PRIVATE,
           mayInstantiate=false,
           mayExtend=false,
           mayInvoke=false)
public void disconnect(DisconnectReason disconnectReason,
                                                                                 boolean sendNotification,
                                                                                 Message message)
Closes the connection to the client, optionally sending it a message indicating the reason for the closure. Note that the ability to send a notice of disconnection may not be available for all protocols or under all circumstances.

Specified by:
disconnect in class ClientConnection
Parameters:
disconnectReason - The disconnect reason that provides the generic cause for the disconnect.
sendNotification - Indicates whether to try to provide notification to the client that the connection will be closed.
message - The message to send to the client. It may be null if no notification is to be sent.

bindInProgress

public boolean bindInProgress()
Indicates whether a bind operation is in progress on this client connection. If so, then no new operations should be allowed until the bind has completed.

Overrides:
bindInProgress in class ClientConnection
Returns:
true if a bind operation is in progress on this connection, or false if not.

setBindInProgress

@PublicAPI(stability=PRIVATE,
           mayInstantiate=false,
           mayExtend=false,
           mayInvoke=false)
public void setBindInProgress(boolean bindInProgress)
Specifies whether a bind operation is in progress on this client connection. If so, then no new operations should be allowed until the bind has completed.

Overrides:
setBindInProgress in class ClientConnection
Parameters:
bindInProgress - Specifies whether a bind operation is in progress on this client connection.

getOperationsInProgress

@PublicAPI(stability=PRIVATE,
           mayInstantiate=false,
           mayExtend=false,
           mayInvoke=false)
public java.util.Collection<AbstractOperation> getOperationsInProgress()
Retrieves the set of operations in progress for this client connection. This list must not be altered by any caller.

Specified by:
getOperationsInProgress in class ClientConnection
Returns:
The set of operations in progress for this client connection.

getOperationInProgress

@PublicAPI(stability=PRIVATE,
           mayInstantiate=false,
           mayExtend=false,
           mayInvoke=false)
public AbstractOperation getOperationInProgress(int messageID)
Retrieves the operation in progress with the specified message ID.

Specified by:
getOperationInProgress in class ClientConnection
Parameters:
messageID - The message ID of the operation to retrieve.
Returns:
The operation in progress with the specified message ID, or null if no such operation could be found.

removeOperationInProgress

@PublicAPI(stability=PRIVATE,
           mayInstantiate=false,
           mayExtend=false,
           mayInvoke=false)
public boolean removeOperationInProgress(int messageID)
Removes the provided operation from the set of operations in progress for this client connection. Note that this does not make any attempt to cancel any processing that may already be in progress for the operation.

Specified by:
removeOperationInProgress in class ClientConnection
Parameters:
messageID - The message ID of the operation to remove from the set of operations in progress.
Returns:
true if the operation was found and removed from the set of operations in progress, or false if not.

cancelOperation

@PublicAPI(stability=PRIVATE,
           mayInstantiate=false,
           mayExtend=false,
           mayInvoke=false)
public CancelResult cancelOperation(int messageID,
                                                                                              CancelRequest cancelRequest)
Attempts to cancel the specified operation.

Specified by:
cancelOperation in class ClientConnection
Parameters:
messageID - The message ID of the operation to cancel.
cancelRequest - An object providing additional information about how the cancel should be processed.
Returns:
A cancel result that either indicates that the cancel was successful or provides a reason that it was not.

cancelAllOperations

@PublicAPI(stability=PRIVATE,
           mayInstantiate=false,
           mayExtend=false,
           mayInvoke=false)
public void cancelAllOperations(CancelRequest cancelRequest)
Attempts to cancel all operations in progress on this connection.

Specified by:
cancelAllOperations in class ClientConnection
Parameters:
cancelRequest - An object providing additional information about how the cancel should be processed.

cancelAllOperationsExcept

@PublicAPI(stability=PRIVATE,
           mayInstantiate=false,
           mayExtend=false,
           mayInvoke=false)
public void cancelAllOperationsExcept(CancelRequest cancelRequest,
                                                                                                int messageID)
Attempts to cancel all operations in progress on this connection except the operation with the specified message ID.

Specified by:
cancelAllOperationsExcept in class ClientConnection
Parameters:
cancelRequest - An object providing additional information about how the cancel should be processed.
messageID - The message ID of the operation that should not be canceled.

getMonitorSummary

public java.lang.String getMonitorSummary()
Retrieves a one-line summary of this client connection in a form that is suitable for including in the monitor entry for the associated connection handler. It should be in a format that is both humand readable and machine parseable (e.g., a space-delimited name-value list, with quotes around the values).

Specified by:
getMonitorSummary in class ClientConnection
Returns:
A one-line summary of this client connection in a form that is suitable for including in the monitor entry for the associated connection handler.

toString

public void toString(java.lang.StringBuilder buffer)
Appends a string representation of this client connection to the provided buffer.

Specified by:
toString in class ClientConnection
Parameters:
buffer - The buffer to which the information should be appended.