org.opends.server.core
Class AbandonOperationBasis

java.lang.Object
  extended by org.opends.server.types.AbstractOperation
      extended by org.opends.server.core.AbandonOperationBasis
All Implemented Interfaces:
java.lang.Runnable, AbandonOperation, Operation, PluginOperation, PostOperationAbandonOperation, PostOperationOperation, PostResponseOperation, PreParseAbandonOperation, PreParseOperation

public class AbandonOperationBasis
extends AbstractOperation
implements java.lang.Runnable, AbandonOperation, PreParseAbandonOperation, PostOperationAbandonOperation

This class defines an operation that may be used to abandon an operation that may already be in progress in the Directory Server.


Field Summary
 
Fields inherited from class org.opends.server.types.AbstractOperation
clientConnection, messageID, NO_RESPONSE_CONTROLS, operationID, useNanoTime
 
Fields inherited from interface org.opends.server.types.Operation
LOCALBACKENDOPERATIONS
 
Constructor Summary
AbandonOperationBasis(ClientConnection clientConnection, long operationID, int messageID, java.util.List<Control> requestControls, int idToAbandon)
          Creates a new abandon operation with the provided information.
 
Method Summary
 void addResponseControl(Control control)
          Adds the provided control to the set of controls to include in the response to the client.
 CancelResult cancel(CancelRequest cancelRequest)
          Attempts to cancel this operation before processing has completed.
 void disconnectClient(DisconnectReason disconnectReason, boolean sendNotification, Message message)
          Terminates the client connection being used to process this operation.
 CancelRequest getCancelRequest()
          Retrieves the cancel request that has been issued for this operation, if there is one.
 int getIDToAbandon()
          Retrieves the message ID of the operation that should be abandoned.
 OperationType getOperationType()
          Retrieves the operation type for this operation.
 java.lang.String[][] getRequestLogElements()
          Retrieves a standard set of elements that should be logged in requests for this type of operation.
 java.util.List<Control> getResponseControls()
          Retrieves the set of controls to include in the response to the client.
 java.lang.String[][] getResponseLogElements()
          Retrieves a standard set of elements that should be logged in responses for this type of operation.
 void removeResponseControl(Control control)
          Removes the provided control from the set of controls to include in the response to the client.
 void run()
          Performs the work of actually processing this operation.
 boolean setCancelRequest(CancelRequest cancelRequest)
          Sets the cancel request for this operation, if applicable.
 void toString(java.lang.StringBuilder buffer)
          Appends a string representation of this operation to the provided buffer.
 
Methods inherited from class org.opends.server.types.AbstractOperation
addRequestControl, appendAdditionalLogMessage, appendErrorMessage, dontSynchronize, getAdditionalLogMessage, getAttachment, getAttachments, getAuthorizationDN, getAuthorizationEntry, getCancelResult, getClientConnection, getCommonLogElements, getConnectionID, getErrorMessage, getMatchedDN, getMessageID, getOperationID, getProcessingNanoTime, getProcessingStartTime, getProcessingStopTime, getProcessingTime, getReferralURLs, getRequestControls, getResultCode, indicateCancelled, isInternalOperation, isSynchronizationOperation, operationCompleted, removeAttachment, removeRequestControl, setAdditionalLogMessage, setAttachment, setAttachments, setAuthorizationEntry, setCancelResult, setDontSynchronize, setErrorMessage, setInternalOperation, setMatchedDN, setProcessingStartTime, setProcessingStopTime, setReferralURLs, setResponseData, setResultCode, setSynchronizationOperation, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.opends.server.types.Operation
addRequestControl, appendAdditionalLogMessage, appendErrorMessage, dontSynchronize, getAdditionalLogMessage, getAttachment, getAttachments, getAuthorizationDN, getAuthorizationEntry, getCancelResult, getClientConnection, getCommonLogElements, getConnectionID, getErrorMessage, getMatchedDN, getMessageID, getOperationID, getProcessingNanoTime, getProcessingStartTime, getProcessingStopTime, getProcessingTime, getReferralURLs, getRequestControls, getResultCode, indicateCancelled, isInternalOperation, isSynchronizationOperation, operationCompleted, removeAttachment, removeRequestControl, setAdditionalLogMessage, setAttachment, setAttachments, setAuthorizationEntry, setCancelResult, setDontSynchronize, setErrorMessage, setInternalOperation, setMatchedDN, setProcessingStartTime, setProcessingStopTime, setReferralURLs, setResponseData, setResultCode, setSynchronizationOperation, toString
 
Methods inherited from interface org.opends.server.types.operation.PreParseOperation
addRequestControl, appendAdditionalLogMessage, appendErrorMessage, getAdditionalLogMessage, getErrorMessage, getMatchedDN, getReferralURLs, getResultCode, removeRequestControl, setAdditionalLogMessage, setErrorMessage, setMatchedDN, setReferralURLs, setResponseData, setResultCode
 
Methods inherited from interface org.opends.server.types.operation.PluginOperation
getAttachment, getAttachments, getClientConnection, getConnectionID, getMessageID, getOperationID, getProcessingStartTime, getRequestControls, isInternalOperation, isSynchronizationOperation, removeAttachment, setAttachment, toString
 
Methods inherited from interface org.opends.server.types.operation.PostOperationOperation
appendAdditionalLogMessage, appendErrorMessage, getAdditionalLogMessage, getAuthorizationDN, getErrorMessage, getMatchedDN, getReferralURLs, getResultCode, setAdditionalLogMessage, setErrorMessage, setMatchedDN, setReferralURLs, setResponseData, setResultCode
 
Methods inherited from interface org.opends.server.types.operation.PluginOperation
getAttachment, getAttachments, getClientConnection, getConnectionID, getMessageID, getOperationID, getProcessingStartTime, getRequestControls, isInternalOperation, isSynchronizationOperation, removeAttachment, setAttachment, toString
 

Constructor Detail

AbandonOperationBasis

public AbandonOperationBasis(ClientConnection clientConnection,
                             long operationID,
                             int messageID,
                             java.util.List<Control> requestControls,
                             int idToAbandon)
Creates a new abandon operation with the provided information.

Parameters:
clientConnection - The client connection with which this operation is associated.
operationID - The operation ID for this operation.
messageID - The message ID of the request with which this operation is associated.
requestControls - The set of controls included in the request.
idToAbandon - The message ID of the operation that should be abandoned.
Method Detail

getIDToAbandon

public final int getIDToAbandon()
Retrieves the message ID of the operation that should be abandoned.

Specified by:
getIDToAbandon in interface AbandonOperation
Specified by:
getIDToAbandon in interface PostOperationAbandonOperation
Specified by:
getIDToAbandon in interface PreParseAbandonOperation
Returns:
The message ID of the operation that should be abandoned.

getOperationType

public final OperationType getOperationType()
Retrieves the operation type for this operation.

Specified by:
getOperationType in interface Operation
Specified by:
getOperationType in interface PluginOperation
Specified by:
getOperationType in class AbstractOperation
Returns:
The operation type for this operation.

disconnectClient

public final void disconnectClient(DisconnectReason disconnectReason,
                                   boolean sendNotification,
                                   Message message)
Terminates the client connection being used to process this operation. If this is called by a plugin, then that plugin must return a result indicating that the client connection has been teriminated.

Specified by:
disconnectClient in interface Operation
Specified by:
disconnectClient in interface PluginOperation
Specified by:
disconnectClient in class AbstractOperation
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.

getRequestLogElements

public final java.lang.String[][] getRequestLogElements()
Retrieves a standard set of elements that should be logged in requests for this type of operation. Each element in the array will itself be a two-element array in which the first element is the name of the field and the second is a string representation of the value, or null if there is no value for that field.

Specified by:
getRequestLogElements in interface Operation
Specified by:
getRequestLogElements in class AbstractOperation
Returns:
A standard set of elements that should be logged in requests for this type of operation.

getResponseLogElements

public final java.lang.String[][] getResponseLogElements()
Retrieves a standard set of elements that should be logged in responses for this type of operation. Each element in the array will itself be a two-element array in which the first element is the name of the field and the second is a string representation of the value, or null if there is no value for that field.

Specified by:
getResponseLogElements in interface Operation
Specified by:
getResponseLogElements in class AbstractOperation
Returns:
A standard set of elements that should be logged in responses for this type of operation.

getResponseControls

public final java.util.List<Control> getResponseControls()
Retrieves the set of controls to include in the response to the client. The contents of this list must not be altered.

Specified by:
getResponseControls in interface Operation
Specified by:
getResponseControls in interface PluginOperation
Specified by:
getResponseControls in class AbstractOperation
Returns:
The set of controls to include in the response to the client.

addResponseControl

public final void addResponseControl(Control control)
Adds the provided control to the set of controls to include in the response to the client. This method may not be called by post-response plugins.

Specified by:
addResponseControl in interface Operation
Specified by:
addResponseControl in interface PostOperationOperation
Specified by:
addResponseControl in interface PreParseOperation
Specified by:
addResponseControl in class AbstractOperation
Parameters:
control - The control to add to the set of controls to include in the response to the client.

removeResponseControl

public final void removeResponseControl(Control control)
Removes the provided control from the set of controls to include in the response to the client. This method may not be called by post-response plugins.

Specified by:
removeResponseControl in interface Operation
Specified by:
removeResponseControl in interface PostOperationOperation
Specified by:
removeResponseControl in interface PreParseOperation
Specified by:
removeResponseControl in class AbstractOperation
Parameters:
control - The control to remove from the set of controls to include in the response to the client.

run

public final void run()
Performs the work of actually processing this operation. This should include all processing for the operation, including invoking plugins, logging messages, performing access control, managing synchronization, and any other work that might need to be done in the course of processing.

Specified by:
run in interface java.lang.Runnable
Specified by:
run in class AbstractOperation

cancel

public final CancelResult cancel(CancelRequest cancelRequest)
Attempts to cancel this operation before processing has completed.

Specified by:
cancel in interface Operation
Specified by:
cancel in class AbstractOperation
Parameters:
cancelRequest - Information about the way in which the operation should be canceled.
Returns:
A code providing information on the result of the cancellation.

getCancelRequest

public final CancelRequest getCancelRequest()
Retrieves the cancel request that has been issued for this operation, if there is one. This method should not be called by post-operation or post-response plugins.

Specified by:
getCancelRequest in interface Operation
Specified by:
getCancelRequest in interface PluginOperation
Specified by:
getCancelRequest in class AbstractOperation
Returns:
The cancel request that has been issued for this operation, or null if there has not been any request to cancel.

setCancelRequest

public boolean setCancelRequest(CancelRequest cancelRequest)
Sets the cancel request for this operation, if applicable. This should only be used for testing purposes (e.g., for ensuring a cancel request is submitted before processing begins on an operation, or to allow for cancelling an internal operation). It must not be used for any other purpose.

Specified by:
setCancelRequest in interface Operation
Specified by:
setCancelRequest in class AbstractOperation
Parameters:
cancelRequest - The cancel request to set for this operation.
Returns:
true if the cancel request was set, or false if it was not for some reason (e.g., the specified operation cannot be cancelled).

toString

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

Specified by:
toString in interface Operation
Specified by:
toString in interface PluginOperation
Specified by:
toString in class AbstractOperation
Parameters:
buffer - The buffer into which a string representation of this operation should be appended.