mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Jean-Noel Rouvignac
16.46.2013 84c248d0cedde00d4f85f3ad60e141925658acb0
(Matthew Swift reviewed) Code cleanup.

OperationWrapper.java:
Generecized the type of the wrapped operation.
Added protected method getOperation() that returns the wrapped operation.

AddOperationWrapper.java, BindOperationWrapper.java, CompareOperationWrapper.java, DeleteOperationWrapper.java, ModifyDNOperationWrapper.java, ModifyOperationWrapper.java, SearchOperationWrapper.java:
Added the generic type to the superclass OperationWrapper.
Got rid of specific instance members to old the operation with the correct type and called getOperation() instead.
8 files modified
544 ■■■■■ changed files
opendj-sdk/opends/src/server/org/opends/server/core/AddOperationWrapper.java 64 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/core/BindOperationWrapper.java 79 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/core/CompareOperationWrapper.java 53 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/core/DeleteOperationWrapper.java 34 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/core/ModifyDNOperationWrapper.java 71 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/core/ModifyOperationWrapper.java 50 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/core/OperationWrapper.java 23 ●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/core/SearchOperationWrapper.java 170 ●●●●● patch | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/core/AddOperationWrapper.java
@@ -23,6 +23,7 @@
 *
 *
 *      Copyright 2008 Sun Microsystems, Inc.
 *      Portions Copyright 2013 ForgeRock AS
 */
package org.opends.server.core;
@@ -35,13 +36,11 @@
/**
 * This abstract class wraps/decorates a given add operation.
 * This class will be extended by sub-classes to enhance the
 * functionnality of the AddOperationBasis.
 * functionality of the AddOperationBasis.
 */
public abstract class AddOperationWrapper extends OperationWrapper
       implements AddOperation
public abstract class AddOperationWrapper extends
    OperationWrapper<AddOperation> implements AddOperation
{
  // The wrapped operation.
  private AddOperation add;
  /**
   * Creates a new add operation based on the provided add operation.
@@ -51,152 +50,169 @@
  public AddOperationWrapper(AddOperation add)
  {
    super(add);
    this.add = add;
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void addObjectClass(ObjectClass objectClass, String name)
  {
    add.addObjectClass(objectClass, name);
    getOperation().addObjectClass(objectClass, name);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void addRawAttribute(RawAttribute rawAttribute)
  {
    add.addRawAttribute(rawAttribute);
    getOperation().addRawAttribute(rawAttribute);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public long getChangeNumber()
  {
    return add.getChangeNumber();
    return getOperation().getChangeNumber();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public DN getEntryDN()
  {
    return add.getEntryDN();
    return getOperation().getEntryDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public Map<ObjectClass, String> getObjectClasses()
  {
    return add.getObjectClasses();
    return getOperation().getObjectClasses();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public Map<AttributeType, List<Attribute>> getOperationalAttributes()
  {
    return add.getOperationalAttributes();
    return getOperation().getOperationalAttributes();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public List<RawAttribute> getRawAttributes()
  {
    return add.getRawAttributes();
    return getOperation().getRawAttributes();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public ByteString getRawEntryDN()
  {
    return add.getRawEntryDN();
    return getOperation().getRawEntryDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public Map<AttributeType, List<Attribute>> getUserAttributes()
  {
    return add.getUserAttributes();
    return getOperation().getUserAttributes();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void removeAttribute(AttributeType attributeType)
  {
    add.removeAttribute(attributeType);
    getOperation().removeAttribute(attributeType);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void removeObjectClass(ObjectClass objectClass)
  {
    add.removeObjectClass(objectClass);
    getOperation().removeObjectClass(objectClass);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setAttribute(AttributeType attributeType,
      List<Attribute> attributeList)
  {
    add.setAttribute(attributeType, attributeList);
    getOperation().setAttribute(attributeType, attributeList);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setChangeNumber(long changeNumber)
  {
    add.setChangeNumber(changeNumber);
    getOperation().setChangeNumber(changeNumber);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setRawAttributes(List<RawAttribute> rawAttributes)
  {
    add.setRawAttributes(rawAttributes);
    getOperation().setRawAttributes(rawAttributes);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setRawEntryDN(ByteString rawEntryDN)
  {
    add.setRawEntryDN(rawEntryDN);
    getOperation().setRawEntryDN(rawEntryDN);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public String toString()
  {
    return add.toString();
    return getOperation().toString();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public DN getProxiedAuthorizationDN()
  {
    return add.getProxiedAuthorizationDN();
    return getOperation().getProxiedAuthorizationDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setProxiedAuthorizationDN(DN proxiedAuthorizationDN)
  {
    add.setProxiedAuthorizationDN(proxiedAuthorizationDN);
    getOperation().setProxiedAuthorizationDN(proxiedAuthorizationDN);
  }
}
opendj-sdk/opends/src/server/org/opends/server/core/BindOperationWrapper.java
@@ -23,6 +23,7 @@
 *
 *
 *      Copyright 2008 Sun Microsystems, Inc.
 *      Portions Copyright 2013 ForgeRock AS
 */
package org.opends.server.core;
import org.opends.messages.Message;
@@ -34,14 +35,11 @@
/**
 * This abstract class wraps/decorates a given bind operation.
 * This class will be extended by sub-classes to enhance the
 * functionnality of the BindOperationBasis.
 * functionality of the BindOperationBasis.
 */
public abstract class BindOperationWrapper extends OperationWrapper
       implements BindOperation
public abstract class BindOperationWrapper extends
    OperationWrapper<BindOperation> implements BindOperation
{
  // The wrapped operation.
  private BindOperation bind;
  /**
   * Creates a new bind operation based on the provided bind operation.
   *
@@ -50,190 +48,211 @@
  protected BindOperationWrapper(BindOperation bind)
  {
    super(bind);
    this.bind = bind;
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public AuthenticationInfo getAuthenticationInfo()
  {
    return bind.getAuthenticationInfo();
    return getOperation().getAuthenticationInfo();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public AuthenticationType getAuthenticationType()
  {
    return bind.getAuthenticationType();
    return getOperation().getAuthenticationType();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public Message getAuthFailureReason()
  {
    return bind.getAuthFailureReason();
    return getOperation().getAuthFailureReason();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public DN getBindDN()
  {
    return bind.getBindDN();
    return getOperation().getBindDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public ByteString getRawBindDN()
  {
    return bind.getRawBindDN();
    return getOperation().getRawBindDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public Entry getSASLAuthUserEntry()
  {
    return bind.getSASLAuthUserEntry();
    return getOperation().getSASLAuthUserEntry();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public ByteString getSASLCredentials()
  {
    return bind.getSASLCredentials();
    return getOperation().getSASLCredentials();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public String getSASLMechanism()
  {
    return bind.getSASLMechanism();
    return getOperation().getSASLMechanism();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public ByteString getServerSASLCredentials()
  {
    return bind.getServerSASLCredentials();
    return getOperation().getServerSASLCredentials();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public ByteString getSimplePassword()
  {
    return bind.getSimplePassword();
    return getOperation().getSimplePassword();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public DN getUserEntryDN()
  {
    return bind.getUserEntryDN();
    return getOperation().getUserEntryDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setAuthenticationInfo(AuthenticationInfo authInfo)
  {
    bind.setAuthenticationInfo(authInfo);
    getOperation().setAuthenticationInfo(authInfo);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setAuthFailureReason(Message reason)
  {
    if (DirectoryServer.returnBindErrorMessages())
    {
      bind.appendErrorMessage(reason);
      getOperation().appendErrorMessage(reason);
    }
    else
    {
      bind.setAuthFailureReason(reason);
      getOperation().setAuthFailureReason(reason);
    }
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setRawBindDN(ByteString rawBindDN)
  {
    bind.setRawBindDN(rawBindDN);
    getOperation().setRawBindDN(rawBindDN);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setSASLAuthUserEntry(Entry saslAuthUserEntry)
  {
    bind.setSASLAuthUserEntry(saslAuthUserEntry);
    getOperation().setSASLAuthUserEntry(saslAuthUserEntry);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setSASLCredentials(String saslMechanism,
      ByteString saslCredentials)
  {
    bind.setSASLCredentials(saslMechanism, saslCredentials);
    getOperation().setSASLCredentials(saslMechanism, saslCredentials);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setServerSASLCredentials(ByteString serverSASLCredentials)
  {
    bind.setServerSASLCredentials(serverSASLCredentials);
    getOperation().setServerSASLCredentials(serverSASLCredentials);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setSimplePassword(ByteString simplePassword)
  {
    bind.setSimplePassword(simplePassword);
    getOperation().setSimplePassword(simplePassword);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setUserEntryDN(DN userEntryDN){
    bind.setUserEntryDN(userEntryDN);
    getOperation().setUserEntryDN(userEntryDN);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public String toString()
  {
    return bind.toString();
    return getOperation().toString();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setProtocolVersion(String protocolVersion)
  {
    bind.setProtocolVersion(protocolVersion);
    getOperation().setProtocolVersion(protocolVersion);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public String getProtocolVersion()
  {
    return bind.getProtocolVersion();
    return getOperation().getProtocolVersion();
  }
}
opendj-sdk/opends/src/server/org/opends/server/core/CompareOperationWrapper.java
@@ -23,27 +23,24 @@
 *
 *
 *      Copyright 2008-2009 Sun Microsystems, Inc.
 *      Portions Copyright 2013 ForgeRock AS
 */
package org.opends.server.core;
import java.util.Set;
import org.opends.server.types.AttributeType;
import org.opends.server.types.ByteString;
import org.opends.server.types.DN;
import java.util.Set;
/**
 * This abstract class wraps/decorates a given compare operation.
 * This class will be extended by sub-classes to enhance the
 * functionnality of the CompareOperationBasis.
 * functionality of the CompareOperationBasis.
 */
public abstract class CompareOperationWrapper
  extends OperationWrapper
  implements CompareOperation
public abstract class CompareOperationWrapper extends
    OperationWrapper<CompareOperation> implements CompareOperation
{
  // The wrapped operation
  private CompareOperation compare;
  /**
   * Creates a new compare operation based on the provided compare operation.
@@ -53,124 +50,136 @@
  public CompareOperationWrapper(CompareOperation compare)
  {
    super(compare);
    this.compare = compare;
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public ByteString getRawEntryDN()
  {
    return compare.getRawEntryDN();
    return getOperation().getRawEntryDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setRawEntryDN(ByteString rawEntryDN)
  {
    compare.setRawEntryDN(rawEntryDN);
    getOperation().setRawEntryDN(rawEntryDN);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public DN getEntryDN()
  {
    return compare.getEntryDN();
    return getOperation().getEntryDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public String getRawAttributeType()
  {
    return compare.getRawAttributeType();
    return getOperation().getRawAttributeType();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setRawAttributeType(String rawAttributeType)
  {
    compare.setRawAttributeType(rawAttributeType);
    getOperation().setRawAttributeType(rawAttributeType);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public AttributeType getAttributeType()
  {
    return compare.getAttributeType();
    return getOperation().getAttributeType();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setAttributeType(AttributeType attributeType)
  {
    compare.setAttributeType(attributeType);
    getOperation().setAttributeType(attributeType);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public Set<String> getAttributeOptions()
  {
    return compare.getAttributeOptions();
    return getOperation().getAttributeOptions();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setAttributeOptions(Set<String> attributeOptions)
  {
    compare.setAttributeOptions(attributeOptions);
    getOperation().setAttributeOptions(attributeOptions);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public ByteString getAssertionValue()
  {
    return compare.getAssertionValue();
    return getOperation().getAssertionValue();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setAssertionValue(ByteString assertionValue)
  {
    compare.setAssertionValue(assertionValue);
    getOperation().setAssertionValue(assertionValue);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public DN getProxiedAuthorizationDN()
  {
    return compare.getProxiedAuthorizationDN();
    return getOperation().getProxiedAuthorizationDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setProxiedAuthorizationDN(DN proxiedAuthorizationDN)
  {
    compare.setProxiedAuthorizationDN(proxiedAuthorizationDN);
    getOperation().setProxiedAuthorizationDN(proxiedAuthorizationDN);
  }
}
opendj-sdk/opends/src/server/org/opends/server/core/DeleteOperationWrapper.java
@@ -23,6 +23,7 @@
 *
 *
 *      Copyright 2008 Sun Microsystems, Inc.
 *      Portions Copyright 2013 ForgeRock AS
 */
package org.opends.server.core;
@@ -34,13 +35,11 @@
/**
 * This abstract class wraps/decorates a given delete operation.
 * This class will be extended by sub-classes to enhance the
 * functionnality of the DeleteOperationBasis.
 * functionality of the DeleteOperationBasis.
 */
public abstract class DeleteOperationWrapper extends OperationWrapper
       implements DeleteOperation
public abstract class DeleteOperationWrapper extends
    OperationWrapper<DeleteOperation> implements DeleteOperation
{
  // The wrapped operation.
  DeleteOperation delete;
  /**
   * Creates a new delete operation based on the provided delete operation.
@@ -50,71 +49,78 @@
  public DeleteOperationWrapper(DeleteOperation delete)
  {
    super(delete);
    this.delete = delete;
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public DN getEntryDN()
  {
    return delete.getEntryDN();
    return getOperation().getEntryDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public ByteString getRawEntryDN()
  {
    return delete.getRawEntryDN();
    return getOperation().getRawEntryDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setRawEntryDN(ByteString rawEntryDN)
  {
    delete.setRawEntryDN(rawEntryDN);
    getOperation().setRawEntryDN(rawEntryDN);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public final long getChangeNumber()
  {
    return delete.getChangeNumber();
    return getOperation().getChangeNumber();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public final void setChangeNumber(long changeNumber)
  {
    delete.setChangeNumber(changeNumber);
    getOperation().setChangeNumber(changeNumber);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public String toString()
  {
    return delete.toString();
    return getOperation().toString();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public DN getProxiedAuthorizationDN()
  {
    return delete.getProxiedAuthorizationDN();
    return getOperation().getProxiedAuthorizationDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setProxiedAuthorizationDN(DN proxiedAuthorizationDN)
  {
    delete.setProxiedAuthorizationDN(proxiedAuthorizationDN);
    getOperation().setProxiedAuthorizationDN(proxiedAuthorizationDN);
  }
}
opendj-sdk/opends/src/server/org/opends/server/core/ModifyDNOperationWrapper.java
@@ -23,6 +23,7 @@
 *
 *
 *      Copyright 2008 Sun Microsystems, Inc.
 *      Portions Copyright 2013 ForgeRock AS
 */
package org.opends.server.core;
@@ -33,13 +34,11 @@
/**
 * This abstract class wraps/decorates a given moddn operation.
 * This class will be extended by sub-classes to enhance the
 * functionnality of the ModifyDNOperationBasis.
 * functionality of the ModifyDNOperationBasis.
 */
public abstract class ModifyDNOperationWrapper
  extends OperationWrapper
  implements ModifyDNOperation
public abstract class ModifyDNOperationWrapper extends
    OperationWrapper<ModifyDNOperation> implements ModifyDNOperation
{
  ModifyDNOperation modifyDN;
  /**
   * Creates a new moddn operation based on the provided moddn operation.
@@ -49,148 +48,168 @@
  public ModifyDNOperationWrapper(ModifyDNOperation modifyDN)
  {
    super(modifyDN);
    this.modifyDN = modifyDN;
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void addModification(Modification modification) {
    modifyDN.addModification(modification);
    getOperation().addModification(modification);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean deleteOldRDN() {
    return modifyDN.deleteOldRDN();
    return getOperation().deleteOldRDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public long getChangeNumber() {
    return modifyDN.getChangeNumber();
    return getOperation().getChangeNumber();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public DN getEntryDN() {
    return modifyDN.getEntryDN();
    return getOperation().getEntryDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public List<Modification> getModifications() {
    return modifyDN.getModifications();
    return getOperation().getModifications();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public RDN getNewRDN() {
    return modifyDN.getNewRDN();
    return getOperation().getNewRDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public DN getNewSuperior() {
    return modifyDN.getNewSuperior();
    return getOperation().getNewSuperior();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public Entry getOriginalEntry() {
    return modifyDN.getOriginalEntry();
    return getOperation().getOriginalEntry();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public DN getProxiedAuthorizationDN() {
    return modifyDN.getProxiedAuthorizationDN();
    return getOperation().getProxiedAuthorizationDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public ByteString getRawEntryDN() {
    return modifyDN.getRawEntryDN();
    return getOperation().getRawEntryDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public ByteString getRawNewRDN() {
    return modifyDN.getRawNewRDN();
    return getOperation().getRawNewRDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public ByteString getRawNewSuperior() {
    return modifyDN.getRawNewSuperior();
    return getOperation().getRawNewSuperior();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public Entry getUpdatedEntry() {
    return modifyDN.getUpdatedEntry();
    return getOperation().getUpdatedEntry();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setChangeNumber(long changeNumber) {
    modifyDN.setChangeNumber(changeNumber);
    getOperation().setChangeNumber(changeNumber);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setDeleteOldRDN(boolean deleteOldRDN) {
    modifyDN.setDeleteOldRDN(deleteOldRDN);
    getOperation().setDeleteOldRDN(deleteOldRDN);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setRawEntryDN(ByteString rawEntryDN) {
    modifyDN.setRawEntryDN(rawEntryDN);
    getOperation().setRawEntryDN(rawEntryDN);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setRawNewRDN(ByteString rawNewRDN) {
    modifyDN.setRawNewRDN(rawNewRDN);
    getOperation().setRawNewRDN(rawNewRDN);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setRawNewSuperior(ByteString rawNewSuperior) {
    modifyDN.setRawNewSuperior(rawNewSuperior);
    getOperation().setRawNewSuperior(rawNewSuperior);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setProxiedAuthorizationDN(DN dn)
  {
    modifyDN.setProxiedAuthorizationDN(dn);
    getOperation().setProxiedAuthorizationDN(dn);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public DN getNewDN()
  {
    return modifyDN.getNewDN();
    return getOperation().getNewDN();
  }
}
opendj-sdk/opends/src/server/org/opends/server/core/ModifyOperationWrapper.java
@@ -23,7 +23,7 @@
 *
 *
 *      Copyright 2008 Sun Microsystems, Inc.
 *      Portions Copyright 2011 ForgeRock AS
 *      Portions Copyright 2011-2013 ForgeRock AS
 */
package org.opends.server.core;
@@ -36,13 +36,11 @@
/**
 * This abstract class wraps/decorates a given modify operation.
 * This class will be extended by sub-classes to enhance the
 * functionnality of the ModifyOperationBasis.
 * functionality of the ModifyOperationBasis.
 */
public abstract class ModifyOperationWrapper extends OperationWrapper
       implements ModifyOperation
public abstract class ModifyOperationWrapper extends
    OperationWrapper<ModifyOperation> implements ModifyOperation
{
  // The wrapped operation.
  private ModifyOperation modify;
  /**
   * Creates a new modify operation based on the provided modify operation.
@@ -52,110 +50,122 @@
  protected ModifyOperationWrapper(ModifyOperation modify)
  {
    super(modify);
    this.modify = modify;
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void addModification(Modification modification)
    throws DirectoryException
  {
    modify.addModification(modification);
    getOperation().addModification(modification);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void addRawModification(RawModification rawModification)
  {
    modify.addRawModification(rawModification);
    getOperation().addRawModification(rawModification);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public DN getEntryDN()
  {
    return modify.getEntryDN();
    return getOperation().getEntryDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public List<Modification> getModifications()
  {
    return modify.getModifications();
    return getOperation().getModifications();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public ByteString getRawEntryDN()
  {
    return modify.getRawEntryDN();
    return getOperation().getRawEntryDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public List<RawModification> getRawModifications()
  {
    return modify.getRawModifications();
    return getOperation().getRawModifications();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setRawEntryDN(ByteString rawEntryDN)
  {
    modify.setRawEntryDN(rawEntryDN);
    getOperation().setRawEntryDN(rawEntryDN);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setRawModifications(List<RawModification> rawModifications)
  {
    modify.setRawModifications(rawModifications);
    getOperation().setRawModifications(rawModifications);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public String toString()
  {
    return modify.toString();
    return getOperation().toString();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public final long getChangeNumber(){
    return modify.getChangeNumber();
    return getOperation().getChangeNumber();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setChangeNumber(long changeNumber)
  {
    modify.setChangeNumber(changeNumber);
    getOperation().setChangeNumber(changeNumber);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public DN getProxiedAuthorizationDN()
  {
    return modify.getProxiedAuthorizationDN();
    return getOperation().getProxiedAuthorizationDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setProxiedAuthorizationDN(DN proxiedAuthorizationDN){
    modify.setProxiedAuthorizationDN(proxiedAuthorizationDN);
    getOperation().setProxiedAuthorizationDN(proxiedAuthorizationDN);
  }
}
opendj-sdk/opends/src/server/org/opends/server/core/OperationWrapper.java
@@ -38,13 +38,16 @@
/**
 * This abstract class is a generic operation wrapper intended to be
 * subclassed by a specific operation wrapper.
 * This abstract class is a generic operation wrapper intended to be subclassed
 * by a specific operation wrapper.
 *
 * @param <W>
 *          the type of the object wrapped by this class
 */
public class OperationWrapper implements Operation
public class OperationWrapper<W extends Operation> implements Operation
{
  /** The wrapped operation. */
  private Operation operation;
  private W operation;
  /**
@@ -52,7 +55,7 @@
   *
   * @param operation  the generic operation to wrap
   */
  public OperationWrapper(Operation operation)
  public OperationWrapper(W operation)
  {
    this.operation = operation;
  }
@@ -234,6 +237,16 @@
  }
  /**
   * Returns the wrapped {@link Operation}.
   *
   * @return the wrapped {@link Operation}.
   */
  protected W getOperation()
  {
    return operation;
  }
  /**
   * {@inheritDoc}
   */
  @Override
opendj-sdk/opends/src/server/org/opends/server/core/SearchOperationWrapper.java
@@ -40,11 +40,9 @@
 * This class will be extended by sub-classes to enhance the
 * functionality of the SearchOperationBasis.
 */
public abstract class SearchOperationWrapper extends OperationWrapper
       implements SearchOperation
public abstract class SearchOperationWrapper extends
    OperationWrapper<SearchOperation> implements SearchOperation
{
  // The wrapped operation.
  private SearchOperation search;
  /**
   * Creates a new search operation based on the provided search operation.
@@ -54,414 +52,446 @@
  protected SearchOperationWrapper(SearchOperation search)
  {
    super(search);
    this.search = search;
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean returnEntry(Entry entry, List<Control> controls)
  {
    boolean result;
    result = this.search.returnEntry(entry, controls);
    return result;
    return getOperation().returnEntry(entry, controls);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean returnEntry(Entry entry, List<Control> controls,
                             boolean evaluateAci)
  {
    boolean result;
    result = this.search.returnEntry(entry, controls, evaluateAci);
    return result;
    return getOperation().returnEntry(entry, controls, evaluateAci);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean returnReference(DN dn, SearchResultReference reference)
  {
    boolean result;
    result = this.search.returnReference(dn, reference);
    return result;
    return getOperation().returnReference(dn, reference);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean returnReference(DN dn, SearchResultReference reference,
                                 boolean evaluateAci)
  {
    boolean result;
    result = this.search.returnReference(dn, reference, evaluateAci);
    return result;
    return getOperation().returnReference(dn, reference, evaluateAci);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public String toString()
  {
    return search.toString();
    return getOperation().toString();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public Set<String> getAttributes()
  {
    return search.getAttributes();
    return getOperation().getAttributes();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public DN getBaseDN()
  {
    return search.getBaseDN();
    return getOperation().getBaseDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public DereferencePolicy getDerefPolicy()
  {
    return search.getDerefPolicy();
    return getOperation().getDerefPolicy();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public int getEntriesSent()
  {
    return search.getEntriesSent();
    return getOperation().getEntriesSent();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public SearchFilter getFilter()
  {
    return search.getFilter();
    return getOperation().getFilter();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public ByteString getRawBaseDN()
  {
    return search.getRawBaseDN();
    return getOperation().getRawBaseDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public RawFilter getRawFilter()
  {
    return search.getRawFilter();
    return getOperation().getRawFilter();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public int getReferencesSent()
  {
    return search.getReferencesSent();
    return getOperation().getReferencesSent();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public SearchScope getScope()
  {
    return search.getScope();
    return getOperation().getScope();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public int getSizeLimit()
  {
    return search.getSizeLimit();
    return getOperation().getSizeLimit();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public int getTimeLimit()
  {
    return search.getTimeLimit();
    return getOperation().getTimeLimit();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean getTypesOnly()
  {
    return search.getTypesOnly();
    return getOperation().getTypesOnly();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void sendSearchResultDone()
  {
    search.sendSearchResultDone();
    getOperation().sendSearchResultDone();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setAttributes(Set<String> attributes)
  {
    search.setAttributes(attributes);
    getOperation().setAttributes(attributes);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setBaseDN(DN baseDN)
  {
    search.setBaseDN(baseDN);
    getOperation().setBaseDN(baseDN);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setDerefPolicy(DereferencePolicy derefPolicy)
  {
    search.setDerefPolicy(derefPolicy);
    getOperation().setDerefPolicy(derefPolicy);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setRawBaseDN(ByteString rawBaseDN)
  {
    search.setRawBaseDN(rawBaseDN);
    getOperation().setRawBaseDN(rawBaseDN);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setRawFilter(RawFilter rawFilter)
  {
    search.setRawFilter(rawFilter);
    getOperation().setRawFilter(rawFilter);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setScope(SearchScope scope)
  {
    search.setScope(scope);
    getOperation().setScope(scope);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setSizeLimit(int sizeLimit)
  {
    search.setSizeLimit(sizeLimit);
    getOperation().setSizeLimit(sizeLimit);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setTimeLimit(int timeLimit)
  {
    search.setTimeLimit(timeLimit);
    getOperation().setTimeLimit(timeLimit);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setTypesOnly(boolean typesOnly)
  {
    search.setTypesOnly(typesOnly);
    getOperation().setTypesOnly(typesOnly);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setTimeLimitExpiration(Long timeLimitExpiration)
  {
    search.setTimeLimitExpiration(timeLimitExpiration);
    getOperation().setTimeLimitExpiration(timeLimitExpiration);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isReturnSubentriesOnly()
  {
    return search.isReturnSubentriesOnly();
    return getOperation().isReturnSubentriesOnly();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setReturnSubentriesOnly(boolean returnLDAPSubentries)
  {
    search.setReturnSubentriesOnly(returnLDAPSubentries);
    getOperation().setReturnSubentriesOnly(returnLDAPSubentries);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public MatchedValuesControl getMatchedValuesControl()
  {
    return search.getMatchedValuesControl();
    return getOperation().getMatchedValuesControl();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setMatchedValuesControl(MatchedValuesControl controls)
  {
    search.setMatchedValuesControl(controls);
    getOperation().setMatchedValuesControl(controls);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isIncludeUsableControl()
  {
    return search.isIncludeUsableControl();
    return getOperation().isIncludeUsableControl();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setIncludeUsableControl(boolean includeUsableControl)
  {
    search.setIncludeUsableControl(includeUsableControl);
    getOperation().setIncludeUsableControl(includeUsableControl);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public Long getTimeLimitExpiration()
  {
    return search.getTimeLimitExpiration();
    return getOperation().getTimeLimitExpiration();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isClientAcceptsReferrals()
  {
    return search.isClientAcceptsReferrals();
    return getOperation().isClientAcceptsReferrals();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setClientAcceptsReferrals(boolean clientAcceptReferrals)
  {
    search.setClientAcceptsReferrals(clientAcceptReferrals);
    getOperation().setClientAcceptsReferrals(clientAcceptReferrals);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void incrementEntriesSent()
  {
    search.incrementEntriesSent();
    getOperation().incrementEntriesSent();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void incrementReferencesSent()
  {
    search.incrementReferencesSent();
    getOperation().incrementReferencesSent();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isSendResponse()
  {
    return search.isSendResponse();
    return getOperation().isSendResponse();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setSendResponse(boolean sendResponse)
  {
    search.setSendResponse(sendResponse);
    getOperation().setSendResponse(sendResponse);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isRealAttributesOnly(){
    return search.isRealAttributesOnly();
    return getOperation().isRealAttributesOnly();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setRealAttributesOnly(boolean realAttributesOnly){
    search.setRealAttributesOnly(realAttributesOnly);
    getOperation().setRealAttributesOnly(realAttributesOnly);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean isVirtualAttributesOnly(){
    return search.isVirtualAttributesOnly();
    return getOperation().isVirtualAttributesOnly();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setVirtualAttributesOnly(boolean virtualAttributesOnly){
    search.setVirtualAttributesOnly(virtualAttributesOnly);
    getOperation().setVirtualAttributesOnly(virtualAttributesOnly);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void sendSearchEntry(SearchResultEntry entry)
    throws DirectoryException
    {
    search.sendSearchEntry(entry);
    getOperation().sendSearchEntry(entry);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public boolean sendSearchReference(SearchResultReference reference)
    throws DirectoryException
    {
    return search.sendSearchReference(reference);
    return getOperation().sendSearchReference(reference);
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public DN getProxiedAuthorizationDN()
  {
    return search.getProxiedAuthorizationDN();
    return getOperation().getProxiedAuthorizationDN();
  }
  /**
   * {@inheritDoc}
   */
  @Override
  public void setProxiedAuthorizationDN(DN proxiedAuthorizationDN){
    search.setProxiedAuthorizationDN(proxiedAuthorizationDN);
    getOperation().setProxiedAuthorizationDN(proxiedAuthorizationDN);
  }
}