From 180f9a3fdb817a42b8c63e471e7ab7fd4b22209b Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 12 Sep 2014 07:32:10 +0000
Subject: [PATCH] OperationWrapper.java, AbstractOperation.java, Operation.java, PluginOperation.java: In getAttachment(), removeAttachment() and setAttachment(), changed the return type to a generic type. This simplifies client code by removing the need to cast the returned value.
---
opends/src/server/org/opends/server/types/operation/PluginOperation.java | 61 +++---
opends/src/server/org/opends/server/core/OperationWrapper.java | 239 ++++++++---------------------
opends/src/server/org/opends/server/types/AbstractOperation.java | 31 ++-
opends/src/server/org/opends/server/types/Operation.java | 123 +++++++--------
4 files changed, 177 insertions(+), 277 deletions(-)
diff --git a/opends/src/server/org/opends/server/core/OperationWrapper.java b/opends/src/server/org/opends/server/core/OperationWrapper.java
index f0fbd50..72dd1a6 100644
--- a/opends/src/server/org/opends/server/core/OperationWrapper.java
+++ b/opends/src/server/org/opends/server/core/OperationWrapper.java
@@ -22,7 +22,7 @@
*
*
* Copyright 2006-2008 Sun Microsystems, Inc.
- * Portions Copyright 2011-2013 ForgeRock AS
+ * Portions Copyright 2011-2014 ForgeRock AS
*/
package org.opends.server.core;
@@ -33,7 +33,18 @@
import org.opends.messages.MessageBuilder;
import org.opends.server.api.ClientConnection;
import org.opends.server.controls.ControlDecoder;
-import org.opends.server.types.*;
+import org.opends.server.types.AdditionalLogItem;
+import org.opends.server.types.CancelRequest;
+import org.opends.server.types.CancelResult;
+import org.opends.server.types.CanceledOperationException;
+import org.opends.server.types.Control;
+import org.opends.server.types.DN;
+import org.opends.server.types.DirectoryException;
+import org.opends.server.types.DisconnectReason;
+import org.opends.server.types.Entry;
+import org.opends.server.types.Operation;
+import org.opends.server.types.OperationType;
+import org.opends.server.types.ResultCode;
/**
* This abstract class is a generic operation wrapper intended to be subclassed
@@ -58,27 +69,21 @@
this.operation = operation;
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void addRequestControl(Control control)
{
operation.addRequestControl(control);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void addResponseControl(Control control)
{
operation.addResponseControl(control);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void appendErrorMessage(Message message)
{
@@ -92,27 +97,21 @@
operation.appendMaskedErrorMessage(maskedMessage);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public CancelResult cancel(CancelRequest cancelRequest)
{
return operation.cancel(cancelRequest);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void abort(CancelRequest cancelRequest)
{
operation.abort(cancelRequest);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void disconnectClient(
DisconnectReason disconnectReason,
@@ -124,90 +123,70 @@
disconnectReason, sendNotification, message);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public boolean dontSynchronize()
{
return operation.dontSynchronize();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
- public Object getAttachment(String name)
+ public <T> T getAttachment(String name)
{
return operation.getAttachment(name);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public Map<String, Object> getAttachments()
{
return operation.getAttachments();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public DN getAuthorizationDN()
{
return operation.getAuthorizationDN();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public Entry getAuthorizationEntry()
{
return operation.getAuthorizationEntry();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public CancelRequest getCancelRequest()
{
return operation.getCancelRequest();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public CancelResult getCancelResult()
{
return operation.getCancelResult();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public ClientConnection getClientConnection()
{
return operation.getClientConnection();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public long getConnectionID()
{
return operation.getConnectionID();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public MessageBuilder getErrorMessage()
{
@@ -228,18 +207,14 @@
return operation.getMaskedResultCode();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public DN getMatchedDN()
{
return operation.getMatchedDN();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public int getMessageID()
{
@@ -256,81 +231,63 @@
return operation;
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public long getOperationID()
{
return operation.getOperationID();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public OperationType getOperationType()
{
return operation.getOperationType();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public long getProcessingStartTime()
{
return operation.getProcessingStartTime();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public long getProcessingStopTime()
{
return operation.getProcessingStopTime();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public long getProcessingTime()
{
return operation.getProcessingTime();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public long getProcessingNanoTime()
{
return operation.getProcessingNanoTime();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public List<String> getReferralURLs()
{
return operation.getReferralURLs();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public List<Control> getRequestControls()
{
return operation.getRequestControls();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public <T extends Control> T getRequestControl(
ControlDecoder<T> d)throws DirectoryException
@@ -338,135 +295,105 @@
return operation.getRequestControl(d);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public List<Control> getResponseControls()
{
return operation.getResponseControls();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public ResultCode getResultCode()
{
return operation.getResultCode();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public boolean isInnerOperation()
{
return operation.isInnerOperation();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public boolean isInternalOperation()
{
return operation.isInternalOperation();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public boolean isSynchronizationOperation()
{
return operation.isSynchronizationOperation();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void operationCompleted()
{
operation.operationCompleted();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
- public Object removeAttachment(String name)
+ public <T> T removeAttachment(String name)
{
return operation.removeAttachment(name);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void removeResponseControl(Control control)
{
operation.removeResponseControl(control);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
- public Object setAttachment(String name, Object value)
+ public <T> T setAttachment(String name, Object value)
{
return operation.setAttachment(name, value);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void setAttachments(Map<String, Object> attachments)
{
operation.setAttachments(attachments);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void setAuthorizationEntry(Entry authorizationEntry)
{
operation.setAuthorizationEntry(authorizationEntry);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void setDontSynchronize(boolean dontSynchronize)
{
operation.setDontSynchronize(dontSynchronize);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void setErrorMessage(MessageBuilder errorMessage)
{
operation.setErrorMessage(errorMessage);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void setInnerOperation(boolean isInnerOperation)
{
operation.setInnerOperation(isInnerOperation);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void setInternalOperation(boolean isInternalOperation)
{
@@ -487,63 +414,49 @@
operation.setMaskedResultCode(maskedResultCode);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void setMatchedDN(DN matchedDN)
{
operation.setMatchedDN(matchedDN);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void setReferralURLs(List<String> referralURLs)
{
operation.setReferralURLs(referralURLs);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void setResponseData(DirectoryException directoryException)
{
operation.setResponseData(directoryException);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void setResultCode(ResultCode resultCode)
{
operation.setResultCode(resultCode);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void setSynchronizationOperation(boolean isSynchronizationOperation)
{
operation.setSynchronizationOperation(isSynchronizationOperation);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public final int hashCode()
{
return getClientConnection().hashCode() * (int) getOperationID();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public final boolean equals(Object obj)
{
@@ -568,30 +481,24 @@
@Override
public String toString()
{
- return "Wrapped " + operation.toString();
+ return "Wrapped " + operation;
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void toString(StringBuilder buffer)
{
operation.toString(buffer);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public synchronized final void checkIfCanceled(boolean signalTooLate)
throws CanceledOperationException {
operation.checkIfCanceled(signalTooLate);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void registerPostResponseCallback(Runnable callback)
{
@@ -605,18 +512,14 @@
operation.run();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public List<AdditionalLogItem> getAdditionalLogItems()
{
return operation.getAdditionalLogItems();
}
- /**
- *{@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public void addAdditionalLogItem(AdditionalLogItem item)
{
diff --git a/opends/src/server/org/opends/server/types/AbstractOperation.java b/opends/src/server/org/opends/server/types/AbstractOperation.java
index 8e85ffc..7a2768d 100644
--- a/opends/src/server/org/opends/server/types/AbstractOperation.java
+++ b/opends/src/server/org/opends/server/types/AbstractOperation.java
@@ -22,11 +22,16 @@
*
*
* Copyright 2006-2010 Sun Microsystems, Inc.
- * Portions Copyright 2011-2013 ForgeRock AS
+ * Portions Copyright 2011-2014 ForgeRock AS
*/
package org.opends.server.types;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
import org.opends.messages.Message;
import org.opends.messages.MessageBuilder;
@@ -179,7 +184,7 @@
private long processingStopNanoTime;
/** The callbacks to be invoked once a response has been sent. */
- private List<Runnable> postResponseCallbacks = null;
+ private List<Runnable> postResponseCallbacks;
/**
* Creates a new operation with the provided information.
@@ -560,23 +565,26 @@
/** {@inheritDoc} */
@Override
- public final Object getAttachment(String name)
+ @SuppressWarnings("unchecked")
+ public final <T> T getAttachment(String name)
{
- return attachments.get(name);
+ return (T) attachments.get(name);
}
/** {@inheritDoc} */
@Override
- public final Object removeAttachment(String name)
+ @SuppressWarnings("unchecked")
+ public final <T> T removeAttachment(String name)
{
- return attachments.remove(name);
+ return (T) attachments.remove(name);
}
/** {@inheritDoc} */
@Override
- public final Object setAttachment(String name, Object value)
+ @SuppressWarnings("unchecked")
+ public final <T> T setAttachment(String name, Object value)
{
- return attachments.put(name, value);
+ return (T) attachments.put(name, value);
}
/** {@inheritDoc} */
@@ -595,8 +603,7 @@
abort(cancelRequest);
long stopWaitingTime = System.currentTimeMillis() + 5000;
- while ((cancelResult == null) &&
- (System.currentTimeMillis() < stopWaitingTime))
+ while (cancelResult == null && System.currentTimeMillis() < stopWaitingTime)
{
try
{
@@ -635,7 +642,7 @@
/** {@inheritDoc} */
@Override
- final synchronized public void checkIfCanceled(boolean signalTooLate)
+ public final synchronized void checkIfCanceled(boolean signalTooLate)
throws CanceledOperationException
{
if(cancelRequest != null)
diff --git a/opends/src/server/org/opends/server/types/Operation.java b/opends/src/server/org/opends/server/types/Operation.java
index 9253358..0aac16b 100644
--- a/opends/src/server/org/opends/server/types/Operation.java
+++ b/opends/src/server/org/opends/server/types/Operation.java
@@ -22,7 +22,7 @@
*
*
* Copyright 2006-2009 Sun Microsystems, Inc.
- * Portions copyright 2011-2013 ForgeRock AS.
+ * Portions copyright 2011-2014 ForgeRock AS.
*/
package org.opends.server.types;
@@ -34,7 +34,6 @@
import org.opends.server.api.ClientConnection;
import org.opends.server.controls.ControlDecoder;
-
/**
* This interface defines a generic operation that may be processed by
* the Directory Server. Specific subclasses should implement
@@ -56,15 +55,14 @@
* Identifier used to get the local operation [if any] in the
* attachments.
*/
- public static final String LOCALBACKENDOPERATIONS =
- "LocalBackendOperations";
+ String LOCALBACKENDOPERATIONS = "LocalBackendOperations";
/**
* Retrieves the operation type for this operation.
*
* @return The operation type for this operation.
*/
- public abstract OperationType getOperationType();
+ OperationType getOperationType();
/**
* Terminates the client connection being used to process this
@@ -82,10 +80,7 @@
* may be {@code null} if no notification
* is to be sent.
*/
- public abstract void disconnectClient(
- DisconnectReason disconnectReason,
- boolean sendNotification, Message message
- );
+ void disconnectClient(DisconnectReason disconnectReason, boolean sendNotification, Message message);
/**
* Retrieves the client connection with which this operation is
@@ -94,7 +89,7 @@
* @return The client connection with which this operation is
* associated.
*/
- public abstract ClientConnection getClientConnection();
+ ClientConnection getClientConnection();
/**
* Retrieves the unique identifier that is assigned to the client
@@ -103,21 +98,21 @@
* @return The unique identifier that is assigned to the client
* connection that submitted this operation.
*/
- public abstract long getConnectionID();
+ long getConnectionID();
/**
* Retrieves the operation ID for this operation.
*
* @return The operation ID for this operation.
*/
- public abstract long getOperationID();
+ long getOperationID();
/**
* Retrieves the message ID assigned to this operation.
*
* @return The message ID assigned to this operation.
*/
- public abstract int getMessageID();
+ int getMessageID();
/**
* Retrieves the set of controls included in the request from the
@@ -126,7 +121,7 @@
* @return The set of controls included in the request from the
* client.
*/
- public abstract List<Control> getRequestControls();
+ List<Control> getRequestControls();
/**
* Retrieves a control included in the request from the client.
@@ -141,8 +136,7 @@
* @throws DirectoryException
* if an error occurs while decoding the control.
*/
- public abstract <T extends Control> T getRequestControl(
- ControlDecoder<T> d) throws DirectoryException;
+ <T extends Control> T getRequestControl(ControlDecoder<T> d) throws DirectoryException;
/**
* Adds the provided control to the set of request controls for this
@@ -151,7 +145,7 @@
* @param control The control to add to the set of request
* controls for this operation.
*/
- public abstract void addRequestControl(Control control);
+ void addRequestControl(Control control);
/**
* Retrieves the set of controls to include in the response to the
@@ -160,7 +154,7 @@
* @return The set of controls to include in the response to the
* client.
*/
- public abstract List<Control> getResponseControls();
+ List<Control> getResponseControls();
/**
* Adds the provided control to the set of controls to include in
@@ -170,7 +164,7 @@
* @param control The control to add to the set of controls to
* include in the response to the client.
*/
- public abstract void addResponseControl(Control control);
+ void addResponseControl(Control control);
/**
* Removes the provided control from the set of controls to include
@@ -180,7 +174,7 @@
* @param control The control to remove from the set of controls
* to include in the response to the client.
*/
- public abstract void removeResponseControl(Control control);
+ void removeResponseControl(Control control);
/**
* Retrieves the result code for this operation.
@@ -189,7 +183,7 @@
* {@code UNDEFINED} if the operation has not yet
* completed.
*/
- public abstract ResultCode getResultCode();
+ ResultCode getResultCode();
/**
* Specifies the result code for this operation. This method may
@@ -197,7 +191,7 @@
*
* @param resultCode The result code for this operation.
*/
- public abstract void setResultCode(ResultCode resultCode);
+ void setResultCode(ResultCode resultCode);
/**
* Retrieves the real, masked result code for this operation.
@@ -223,7 +217,7 @@
*
* @return The error message for this operation.
*/
- public abstract MessageBuilder getErrorMessage();
+ MessageBuilder getErrorMessage();
/**
* Specifies the error message for this operation. This method may
@@ -231,7 +225,7 @@
*
* @param errorMessage The error message for this operation.
*/
- public abstract void setErrorMessage(MessageBuilder errorMessage);
+ void setErrorMessage(MessageBuilder errorMessage);
/**
* Appends the provided message to the error message buffer. If the
@@ -241,7 +235,7 @@
*
* @param message The message to append to the error message
*/
- public abstract void appendErrorMessage(Message message);
+ void appendErrorMessage(Message message);
/**
* Retrieves the real, masked error message for this operation. Its contents
@@ -280,7 +274,7 @@
* @return An unmodifiable list containing the additional log items for this
* operation.
*/
- public abstract List<AdditionalLogItem> getAdditionalLogItems();
+ List<AdditionalLogItem> getAdditionalLogItems();
/**
* Adds an additional log item to this operation, which should be written to
@@ -290,7 +284,7 @@
* @param item
* The additional log item for this operation.
*/
- public abstract void addAdditionalLogItem(AdditionalLogItem item);
+ void addAdditionalLogItem(AdditionalLogItem item);
/**
* Retrieves the matched DN for this operation.
@@ -299,7 +293,7 @@
* the operation has not yet completed or does not have a
* matched DN.
*/
- public abstract DN getMatchedDN();
+ DN getMatchedDN();
/**
* Specifies the matched DN for this operation. This may not be
@@ -307,7 +301,7 @@
*
* @param matchedDN The matched DN for this operation.
*/
- public abstract void setMatchedDN(DN matchedDN);
+ void setMatchedDN(DN matchedDN);
/**
* Retrieves the set of referral URLs for this operation. Its
@@ -317,7 +311,7 @@
* {@code null} if the operation is not yet complete or
* does not have a set of referral URLs.
*/
- public abstract List<String> getReferralURLs();
+ List<String> getReferralURLs();
/**
* Specifies the set of referral URLs for this operation. This may
@@ -326,7 +320,7 @@
* @param referralURLs The set of referral URLs for this
* operation.
*/
- public abstract void setReferralURLs(List<String> referralURLs);
+ void setReferralURLs(List<String> referralURLs);
/**
* Sets the response elements for this operation based on the
@@ -337,8 +331,7 @@
* information to use for the response
* elements.
*/
- public abstract void setResponseData(
- DirectoryException directoryException);
+ void setResponseData(DirectoryException directoryException);
/**
* Indicates whether this is an internal operation rather than one
@@ -347,7 +340,7 @@
* @return {@code true} if this is an internal operation, or
* {@code false} if it is not.
*/
- public abstract boolean isInternalOperation();
+ boolean isInternalOperation();
/**
* Specifies whether this is an internal operation rather than one
@@ -359,8 +352,7 @@
* that was requested by an external
* client.
*/
- public abstract void setInternalOperation(boolean
- isInternalOperation);
+ void setInternalOperation(boolean isInternalOperation);
/**
* Indicates whether this is an inner operation rather than one that was
@@ -394,7 +386,7 @@
* @return {@code true} if this is a data synchronization
* operation, or {@code false} if it is not.
*/
- public abstract boolean isSynchronizationOperation();
+ boolean isSynchronizationOperation();
/**
* Specifies whether this is a synchronization operation rather than
@@ -407,8 +399,7 @@
* requested by an external
* client.
*/
- public abstract void setSynchronizationOperation(
- boolean isSynchronizationOperation);
+ void setSynchronizationOperation(boolean isSynchronizationOperation);
/**
* Specifies whether this operation must be synchronized to other
@@ -418,7 +409,7 @@
* synchronized to other copies
* of the data.
*/
- public abstract void setDontSynchronize(boolean dontSynchronize);
+ void setDontSynchronize(boolean dontSynchronize);
/**
* Retrieves the entry for the user that should be considered the
@@ -436,7 +427,7 @@
* {@code null} if the authorization identity should be the
* unauthenticated user.
*/
- public abstract Entry getAuthorizationEntry();
+ Entry getAuthorizationEntry();
/**
* Provides the entry for the user that should be considered the
@@ -449,8 +440,7 @@
* if it should be the unauthenticated
* user.
*/
- public abstract void setAuthorizationEntry(Entry
- authorizationEntry);
+ void setAuthorizationEntry(Entry authorizationEntry);
/**
* Retrieves the authorization DN for this operation. In many
@@ -465,7 +455,7 @@
* @return The authorization DN for this operation, or the null DN
* if it should be the unauthenticated user..
*/
- public abstract DN getAuthorizationDN();
+ DN getAuthorizationDN();
/**
* Retrieves the set of attachments defined for this operation, as a
@@ -473,35 +463,38 @@
*
* @return The set of attachments defined for this operation.
*/
- public abstract Map<String, Object> getAttachments();
+ Map<String, Object> getAttachments();
/**
* Retrieves the attachment with the specified name.
*
+ * @param <T> the type of the attached object
* @param name The name for the attachment to retrieve. It will
* be treated in a case-sensitive manner.
*
* @return The requested attachment object, or {@code null} if it
* does not exist.
*/
- public abstract Object getAttachment(String name);
+ <T> T getAttachment(String name);
/**
* Removes the attachment with the specified name.
*
+ * @param <T> the type of the attached object
* @param name The name for the attachment to remove. It will be
* treated in a case-sensitive manner.
*
* @return The attachment that was removed, or {@code null} if it
* does not exist.
*/
- public abstract Object removeAttachment(String name);
+ <T> T removeAttachment(String name);
/**
* Sets the value of the specified attachment. If an attachment
* already exists with the same name, it will be replaced.
* Otherwise, a new attachment will be added.
*
+ * @param <T> the type of the attached object
* @param name The name to use for the attachment.
* @param value The value to use for the attachment.
*
@@ -509,14 +502,14 @@
* name, or {@code null} if there was previously no such
* attachment.
*/
- public abstract Object setAttachment(String name, Object value);
+ <T> T setAttachment(String name, Object value);
/**
* Retrieves the time that processing started for this operation.
*
* @return The time that processing started for this operation.
*/
- public abstract long getProcessingStartTime();
+ long getProcessingStartTime();
/**
* Retrieves the time that processing stopped for this operation.
@@ -525,7 +518,7 @@
*
* @return The time that processing stopped for this operation.
*/
- public abstract long getProcessingStopTime();
+ long getProcessingStopTime();
/**
* Retrieves the length of time in milliseconds that the server
@@ -535,7 +528,7 @@
* @return The length of time in milliseconds that the server spent
* processing this operation.
*/
- public abstract long getProcessingTime();
+ long getProcessingTime();
/**
* Retrieves the length of time in nanoseconds that
@@ -547,14 +540,14 @@
* spent processing this operation or -1 if its not
* available.
*/
- public abstract long getProcessingNanoTime();
+ long getProcessingNanoTime();
/**
* Indicates that processing on this operation has completed
* successfully and that the client should perform any associated
* cleanup work.
*/
- public abstract void operationCompleted();
+ void operationCompleted();
/**
* Attempts to cancel this operation before processing has
@@ -566,7 +559,7 @@
* @return A code providing information on the result of the
* cancellation.
*/
- public abstract CancelResult cancel(CancelRequest cancelRequest);
+ CancelResult cancel(CancelRequest cancelRequest);
/**
* Attempts to abort this operation before processing has
@@ -575,8 +568,7 @@
* @param cancelRequest Information about the way in which the
* operation should be canceled.
*/
- public abstract void abort(CancelRequest cancelRequest);
-
+ void abort(CancelRequest cancelRequest);
/**
* Retrieves the cancel request that has been issued for this
@@ -587,7 +579,7 @@
* operation, or {@code null} if there has not been any
* request to cancel.
*/
- public abstract CancelRequest getCancelRequest();
+ CancelRequest getCancelRequest();
/**
* Retrieves the cancel result for this operation.
@@ -596,15 +588,14 @@
* {@code null} if the operation has not seen and reacted
* to a cancel request.
*/
- public abstract CancelResult getCancelResult();
+ CancelResult getCancelResult();
/**
* Retrieves a string representation of this operation.
*
* @return A string representation of this operation.
*/
- @Override
- public abstract String toString();
+ @Override String toString();
/**
* Appends a string representation of this operation to the provided
@@ -613,7 +604,7 @@
* @param buffer The buffer into which a string representation of
* this operation should be appended.
*/
- public abstract void toString(StringBuilder buffer);
+ void toString(StringBuilder buffer);
/**
* Indicates whether this operation needs to be synchronized to
@@ -623,7 +614,7 @@
* synchronized, or {@code false} if it should be
* synchronized.
*/
- public abstract boolean dontSynchronize();
+ boolean dontSynchronize();
/**
* Set the attachments to the operation.
@@ -631,8 +622,7 @@
* @param attachments - Attachments to register within the
* operation
*/
- public abstract void setAttachments(Map<String,
- Object> attachments);
+ void setAttachments(Map<String, Object> attachments);
/**
* Checks to see if this operation requested to cancel in which case
@@ -646,8 +636,7 @@
* @throws CanceledOperationException if this operation should
* be cancelled.
*/
- public void checkIfCanceled(boolean signalTooLate)
- throws CanceledOperationException;
+ void checkIfCanceled(boolean signalTooLate) throws CanceledOperationException;
/**
* Registers a callback which should be run once this operation has
@@ -657,7 +646,7 @@
* The callback to be run once this operation has completed
* and the response sent back to the client.
*/
- public void registerPostResponseCallback(Runnable callback);
+ void registerPostResponseCallback(Runnable callback);
/**
* Performs the work of actually processing this operation. This should
diff --git a/opends/src/server/org/opends/server/types/operation/PluginOperation.java b/opends/src/server/org/opends/server/types/operation/PluginOperation.java
index 27db12b..d1f3d64 100644
--- a/opends/src/server/org/opends/server/types/operation/PluginOperation.java
+++ b/opends/src/server/org/opends/server/types/operation/PluginOperation.java
@@ -22,19 +22,20 @@
*
*
* Copyright 2006-2008 Sun Microsystems, Inc.
+ * Portions copyright 2014 ForgeRock AS
*/
package org.opends.server.types.operation;
-import org.opends.messages.Message;
-
-
-
import java.util.List;
import java.util.Map;
+import org.opends.messages.Message;
import org.opends.server.api.ClientConnection;
-import org.opends.server.types.*;
import org.opends.server.controls.ControlDecoder;
-
+import org.opends.server.types.CanceledOperationException;
+import org.opends.server.types.Control;
+import org.opends.server.types.DirectoryException;
+import org.opends.server.types.DisconnectReason;
+import org.opends.server.types.OperationType;
/**
* This class defines a set of methods that are available for use by
@@ -56,7 +57,7 @@
*
* @return The operation type for this operation.
*/
- public OperationType getOperationType();
+ OperationType getOperationType();
@@ -67,14 +68,14 @@
* @return The client connection with which this operation is
* associated.
*/
- public ClientConnection getClientConnection();
+ ClientConnection getClientConnection();
/**
* Terminates the client connection being used to process this
* operation. The plugin must return a result indicating that the
- * client connection has been teriminated.
+ * client connection has been terminated.
*
* @param disconnectReason The disconnect reason that provides the
* generic cause for the disconnect.
@@ -85,9 +86,7 @@
* may be <CODE>null</CODE> if no
* notification is to be sent.
*/
- public void disconnectClient(DisconnectReason disconnectReason,
- boolean sendNotification,
- Message message);
+ void disconnectClient(DisconnectReason disconnectReason, boolean sendNotification, Message message);
@@ -98,7 +97,7 @@
* @return The unique identifier that is assigned to the client
* connection that submitted this operation.
*/
- public long getConnectionID();
+ long getConnectionID();
@@ -107,7 +106,7 @@
*
* @return The operation ID for this operation.
*/
- public long getOperationID();
+ long getOperationID();
@@ -116,7 +115,7 @@
*
* @return The message ID assigned to this operation.
*/
- public int getMessageID();
+ int getMessageID();
@@ -127,7 +126,7 @@
* @return The set of controls included in the request from the
* client.
*/
- public List<Control> getRequestControls();
+ List<Control> getRequestControls();
@@ -144,8 +143,7 @@
* @throws DirectoryException
* if an error occurs while decoding the control.
*/
- public <T extends Control> T getRequestControl(ControlDecoder<T> d)
- throws DirectoryException;
+ <T extends Control> T getRequestControl(ControlDecoder<T> d) throws DirectoryException;
@@ -156,7 +154,7 @@
* @return The set of controls to include in the response to the
* client.
*/
- public List<Control> getResponseControls();
+ List<Control> getResponseControls();
@@ -167,7 +165,7 @@
* @return <CODE>true</CODE> if this is an internal operation, or
* <CODE>false</CODE> if it is not.
*/
- public boolean isInternalOperation();
+ boolean isInternalOperation();
@@ -178,7 +176,7 @@
* @return <CODE>true</CODE> if this is a data synchronization
* operation, or <CODE>false</CODE> if it is not.
*/
- public boolean isSynchronizationOperation();
+ boolean isSynchronizationOperation();
@@ -188,33 +186,35 @@
*
* @return The set of attachments defined for this operation.
*/
- public Map<String,Object> getAttachments();
+ Map<String,Object> getAttachments();
/**
* Retrieves the attachment with the specified name.
*
+ * @param <T> the type of the attached object
* @param name The name for the attachment to retrieve. It will
* be treated in a case-sensitive manner.
*
* @return The requested attachment object, or <CODE>null</CODE> if
* it does not exist.
*/
- public Object getAttachment(String name);
+ <T> T getAttachment(String name);
/**
* Removes the attachment with the specified name.
*
+ * @param <T> the type of the attached object
* @param name The name for the attachment to remove. It will be
* treated in a case-sensitive manner.
*
* @return The attachment that was removed, or <CODE>null</CODE> if
* it does not exist.
*/
- public Object removeAttachment(String name);
+ <T> T removeAttachment(String name);
@@ -223,6 +223,7 @@
* already exists with the same name, it will be replaced.
* Otherwise, a new attachment will be added.
*
+ * @param <T> the type of the attached object
* @param name The name to use for the attachment.
* @param value The value to use for the attachment.
*
@@ -230,7 +231,7 @@
* name, or <CODE>null</CODE> if there was previously no
* such attachment.
*/
- public Object setAttachment(String name, Object value);
+ <T> T setAttachment(String name, Object value);
@@ -239,7 +240,7 @@
*
* @return The time that processing started for this operation.
*/
- public long getProcessingStartTime();
+ long getProcessingStartTime();
@@ -248,7 +249,8 @@
*
* @return A string representation of this operation.
*/
- public String toString();
+ @Override
+ String toString();
@@ -259,7 +261,7 @@
* @param buffer The buffer into which a string representation of
* this operation should be appended.
*/
- public void toString(StringBuilder buffer);
+ void toString(StringBuilder buffer);
@@ -275,7 +277,6 @@
* @throws CanceledOperationException if this operation should
* be cancelled.
*/
- public void checkIfCanceled(boolean signalTooLate)
- throws CanceledOperationException;
+ void checkIfCanceled(boolean signalTooLate) throws CanceledOperationException;
}
--
Gitblit v1.10.0