org.opends.server.core
Class ModifyDNOperationWrapper

java.lang.Object
  extended by org.opends.server.core.OperationWrapper
      extended by org.opends.server.core.ModifyDNOperationWrapper
All Implemented Interfaces:
ModifyDNOperation, Operation, InProgressOperation, PluginOperation, SubordinateModifyDNOperation
Direct Known Subclasses:
LocalBackendModifyDNOperation

public abstract class ModifyDNOperationWrapper
extends OperationWrapper
implements ModifyDNOperation

This abstract class wraps/decorates a given moddn operation. This class will be extended by sub-classes to enhance the functionnality of the ModifyDNOperationBasis.


Field Summary
 
Fields inherited from interface org.opends.server.types.Operation
LOCALBACKENDOPERATIONS
 
Constructor Summary
ModifyDNOperationWrapper(ModifyDNOperation modifyDN)
          Creates a new moddn operation based on the provided moddn operation.
 
Method Summary
 void addModification(Modification modification)
          Adds the provided modification to the set of modifications to be applied as part of the update.
 boolean deleteOldRDN()
          Indicates whether the current RDN value should be removed from the entry.
 long getChangeNumber()
          Retrieves the change number that has been assigned to this operation.
 DN getEntryDN()
          Retrieves the DN of the entry to rename.
 java.util.List<Modification> getModifications()
          Retrieves the set of modifications applied to attributes of the target entry in the course of processing this modify DN operation.
 DN getNewDN()
          Retrieves the new DN for the entry.
 RDN getNewRDN()
          Retrieves the new RDN to use for the entry.
 DN getNewSuperior()
          Retrieves the newSuperior DN for the entry.
 Entry getOriginalEntry()
          Retrieves the current entry, before it is renamed.
 DN getProxiedAuthorizationDN()
          Retrieves the proxied authorization DN for this operation if proxied authorization has been requested.
 ByteString getRawEntryDN()
          Retrieves the raw, unprocessed entry DN as included in the client request.
 ByteString getRawNewRDN()
          Retrieves the raw, unprocessed newRDN as included in the request from the client.
 ByteString getRawNewSuperior()
          Retrieves the raw, unprocessed newSuperior from the client request.
 Entry getUpdatedEntry()
          Retrieves the new entry, as it will appear after it is renamed.
 void setChangeNumber(long changeNumber)
          Specifies the change number that has been assigned to this operation by the synchronization mechanism.
 void setDeleteOldRDN(boolean deleteOldRDN)
          Specifies whether the current RDN value should be removed from the entry.
 void setProxiedAuthorizationDN(DN dn)
          Sets the proxied authorization DN for this operation if proxied authorization has been requested.
 void setRawEntryDN(ByteString rawEntryDN)
          Specifies the raw, unprocessed entry DN as included in the client request.
 void setRawNewRDN(ByteString rawNewRDN)
          Specifies the raw, unprocessed newRDN as included in the request from the client.
 void setRawNewSuperior(ByteString rawNewSuperior)
          Specifies the raw, unprocessed newSuperior for this modify DN operation, as provided in the request from the client.
 
Methods inherited from class org.opends.server.core.OperationWrapper
abort, addRequestControl, addResponseControl, appendAdditionalLogMessage, appendErrorMessage, cancel, checkIfCanceled, disconnectClient, dontSynchronize, getAdditionalLogMessage, getAttachment, getAttachments, getAuthorizationDN, getAuthorizationEntry, getCancelRequest, getCancelResult, getClientConnection, getCommonLogElements, getConnectionID, getErrorMessage, getMatchedDN, getMessageID, getOperationID, getOperationType, getProcessingNanoTime, getProcessingStartTime, getProcessingStopTime, getProcessingTime, getReferralURLs, getRequestControls, getRequestLogElements, getResponseControls, getResponseLogElements, getResultCode, isInternalOperation, isSynchronizationOperation, operationCompleted, removeAttachment, removeRequestControl, removeResponseControl, setAdditionalLogMessage, setAttachment, setAttachments, setAuthorizationEntry, setDontSynchronize, setErrorMessage, setInternalOperation, setMatchedDN, setReferralURLs, setResponseData, setResultCode, setSynchronizationOperation, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.opends.server.types.Operation
abort, addRequestControl, addResponseControl, appendAdditionalLogMessage, appendErrorMessage, cancel, checkIfCanceled, disconnectClient, dontSynchronize, getAdditionalLogMessage, getAttachment, getAttachments, getAuthorizationDN, getAuthorizationEntry, getCancelRequest, getCancelResult, getClientConnection, getCommonLogElements, getConnectionID, getErrorMessage, getMatchedDN, getMessageID, getOperationID, getOperationType, getProcessingNanoTime, getProcessingStartTime, getProcessingStopTime, getProcessingTime, getReferralURLs, getRequestControls, getRequestLogElements, getResponseControls, getResponseLogElements, getResultCode, isInternalOperation, isSynchronizationOperation, operationCompleted, removeAttachment, removeRequestControl, removeResponseControl, setAdditionalLogMessage, setAttachment, setAttachments, setAuthorizationEntry, setDontSynchronize, setErrorMessage, setInternalOperation, setMatchedDN, setReferralURLs, setResponseData, setResultCode, setSynchronizationOperation, toString, toString
 
Methods inherited from interface org.opends.server.types.operation.InProgressOperation
addResponseControl, appendAdditionalLogMessage, appendErrorMessage, getAdditionalLogMessage, getAuthorizationDN, getErrorMessage, getMatchedDN, getReferralURLs, getResultCode, removeResponseControl, setAdditionalLogMessage, setErrorMessage, setMatchedDN, setReferralURLs, setResponseData, setResultCode
 
Methods inherited from interface org.opends.server.types.operation.PluginOperation
checkIfCanceled, disconnectClient, getAttachment, getAttachments, getClientConnection, getConnectionID, getMessageID, getOperationID, getOperationType, getProcessingStartTime, getRequestControls, getResponseControls, isInternalOperation, isSynchronizationOperation, removeAttachment, setAttachment, toString, toString
 

Constructor Detail

ModifyDNOperationWrapper

public ModifyDNOperationWrapper(ModifyDNOperation modifyDN)
Creates a new moddn operation based on the provided moddn operation.

Parameters:
modifyDN - The moddn operation to wrap
Method Detail

addModification

public void addModification(Modification modification)
Adds the provided modification to the set of modifications to be applied as part of the update. This should only be called by pre-operation plugins.

Specified by:
addModification in interface ModifyDNOperation
Parameters:
modification - The modification to add to the set of modifications to apply to the entry.

deleteOldRDN

public boolean deleteOldRDN()
Indicates whether the current RDN value should be removed from the entry.

Specified by:
deleteOldRDN in interface ModifyDNOperation
Specified by:
deleteOldRDN in interface SubordinateModifyDNOperation
Returns:
true if the current RDN value should be removed from the entry, or false if not.

getChangeNumber

public long getChangeNumber()
Retrieves the change number that has been assigned to this operation.

Specified by:
getChangeNumber in interface ModifyDNOperation
Returns:
The change number that has been assigned to this operation, or -1 if none has been assigned yet or if there is no applicable synchronization mechanism in place that uses change numbers.

getEntryDN

public DN getEntryDN()
Retrieves the DN of the entry to rename. This should not be called by pre-parse plugins because the processed DN will not be available yet. Instead, they should call the getRawEntryDN method.

Specified by:
getEntryDN in interface ModifyDNOperation
Specified by:
getEntryDN in interface SubordinateModifyDNOperation
Returns:
The DN of the entry to rename, or null if the raw entry DN has not yet been processed.

getModifications

public java.util.List<Modification> getModifications()
Retrieves the set of modifications applied to attributes of the target entry in the course of processing this modify DN operation. This will include attribute-level changes from the modify DN itself (e.g., removing old RDN values if deleteOldRDN is set, or adding new RDN values that don't already exist), but it may also be used by pre-operation plugins to cause additional changes in the entry. In this case, those plugins may add modifications to this list (they may not remove existing modifications) if any changes should be processed in addition to the core modify DN processing. Backends may read this list to identify which attribute-level changes were applied in order to more easily apply updates to attribute indexes.

Specified by:
getModifications in interface ModifyDNOperation
Returns:
The set of modifications applied to attributes during the course of the modify DN processing, or null if that information is not yet available (e.g., during pre-parse plugins).

getNewRDN

public RDN getNewRDN()
Retrieves the new RDN to use for the entry. This should not be called by pre-parse plugins, because the processed newRDN will not yet be available. Pre-parse plugins should instead use the getRawNewRDN method.

Specified by:
getNewRDN in interface ModifyDNOperation
Specified by:
getNewRDN in interface SubordinateModifyDNOperation
Returns:
The new RDN to use for the entry, or null if the raw newRDN has not yet been processed.

getNewSuperior

public DN getNewSuperior()
Retrieves the newSuperior DN for the entry. This should not be called by pre-parse plugins, because the processed DN will not yet be available at that time. Instead, they should use the getRawNewSuperior method.

Specified by:
getNewSuperior in interface ModifyDNOperation
Specified by:
getNewSuperior in interface SubordinateModifyDNOperation
Returns:
The newSuperior DN for the entry, or null if there is no newSuperior DN for this request or if the raw newSuperior has not yet been processed.

getOriginalEntry

public Entry getOriginalEntry()
Retrieves the current entry, before it is renamed. This will not be available to pre-parse plugins or during the conflict resolution portion of the synchronization processing.

Specified by:
getOriginalEntry in interface ModifyDNOperation
Specified by:
getOriginalEntry in interface SubordinateModifyDNOperation
Returns:
The current entry, or null if it is not yet available.

getProxiedAuthorizationDN

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

Specified by:
getProxiedAuthorizationDN in interface ModifyDNOperation
Returns:
The proxied authorization DN for this operation if proxied authorization has been requested, or null if proxied authorization has not been requested.

getRawEntryDN

public ByteString getRawEntryDN()
Retrieves the raw, unprocessed entry DN as included in the client request. The DN that is returned may or may not be a valid DN, since no validation will have been performed upon it.

Specified by:
getRawEntryDN in interface ModifyDNOperation
Specified by:
getRawEntryDN in interface SubordinateModifyDNOperation
Returns:
The raw, unprocessed entry DN as included in the client request.

getRawNewRDN

public ByteString getRawNewRDN()
Retrieves the raw, unprocessed newRDN as included in the request from the client. This may or may not contain a valid RDN, as no validation will have been performed on it.

Specified by:
getRawNewRDN in interface ModifyDNOperation
Specified by:
getRawNewRDN in interface SubordinateModifyDNOperation
Returns:
The raw, unprocessed newRDN as included in the request from the client.

getRawNewSuperior

public ByteString getRawNewSuperior()
Retrieves the raw, unprocessed newSuperior from the client request. This may or may not contain a valid DN, as no validation will have been performed on it.

Specified by:
getRawNewSuperior in interface ModifyDNOperation
Specified by:
getRawNewSuperior in interface SubordinateModifyDNOperation
Returns:
The raw, unprocessed newSuperior from the client request, or null if there is none.

getUpdatedEntry

public Entry getUpdatedEntry()
Retrieves the new entry, as it will appear after it is renamed. This will not be available to pre-parse plugins or during the conflict resolution portion of the synchronization processing.

Specified by:
getUpdatedEntry in interface ModifyDNOperation
Specified by:
getUpdatedEntry in interface SubordinateModifyDNOperation
Returns:
The updated entry, or null if it is not yet available.

setChangeNumber

public void setChangeNumber(long changeNumber)
Specifies the change number that has been assigned to this operation by the synchronization mechanism.

Specified by:
setChangeNumber in interface ModifyDNOperation
Parameters:
changeNumber - The change number that has been assigned to this operation by the synchronization mechanism.

setDeleteOldRDN

public void setDeleteOldRDN(boolean deleteOldRDN)
Specifies whether the current RDN value should be removed from the entry.

Specified by:
setDeleteOldRDN in interface ModifyDNOperation
Parameters:
deleteOldRDN - Specifies whether the current RDN value should be removed from the entry.

setRawEntryDN

public void setRawEntryDN(ByteString rawEntryDN)
Specifies the raw, unprocessed entry DN as included in the client request. This should only be called by pre-parse plugins.

Specified by:
setRawEntryDN in interface ModifyDNOperation
Parameters:
rawEntryDN - The raw, unprocessed entry DN as included in the client request.

setRawNewRDN

public void setRawNewRDN(ByteString rawNewRDN)
Specifies the raw, unprocessed newRDN as included in the request from the client. This should only be called by pre-parse plugins and should not be used in later stages of processing.

Specified by:
setRawNewRDN in interface ModifyDNOperation
Parameters:
rawNewRDN - The raw, unprocessed newRDN as included in the request from the client.

setRawNewSuperior

public void setRawNewSuperior(ByteString rawNewSuperior)
Specifies the raw, unprocessed newSuperior for this modify DN operation, as provided in the request from the client. This method should only be called by pre-parse plugins.

Specified by:
setRawNewSuperior in interface ModifyDNOperation
Parameters:
rawNewSuperior - The raw, unprocessed newSuperior as provided in the request from the client.

setProxiedAuthorizationDN

public void setProxiedAuthorizationDN(DN dn)
Sets the proxied authorization DN for this operation if proxied authorization has been requested.

Specified by:
setProxiedAuthorizationDN in interface ModifyDNOperation
Parameters:
dn - The proxied authorization DN for this operation if proxied authorization has been requested, or null if proxied authorization has not been requested.

getNewDN

public DN getNewDN()
Retrieves the new DN for the entry.

Specified by:
getNewDN in interface ModifyDNOperation
Returns:
The new DN for the entry, or null if there is neither newRDN, nor entryDN for this request.