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

Jean-Noel Rouvignac
18.39.2015 e8cead474d5ce2b933d931f0c4743a78e68d9cfc
Replaced uses of StringBuilder.append(Utils.joinAsString(String, Collection)) with the more efficient Utils.joinAsString(StringBuilder, String, Collection).
14 files modified
871 ■■■■ changed files
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/AddResponseProtocolOp.java 65 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/BindResponseProtocolOp.java 70 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/CompareResponseProtocolOp.java 65 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/DeleteResponseProtocolOp.java 67 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/ExtendedResponseProtocolOp.java 74 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/ModifyDNResponseProtocolOp.java 65 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/ModifyResponseProtocolOp.java 64 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/SearchRequestProtocolOp.java 43 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/SearchResultDoneProtocolOp.java 65 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/types/AttributeBuilder.java 44 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/types/VirtualAttribute.java 60 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/types/VirtualAttributeRule.java 181 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/test/java/org/opends/server/types/TestAttributeType.java 6 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/test/java/org/opends/server/types/TestObjectClass.java 2 ●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/AddResponseProtocolOp.java
@@ -26,16 +26,15 @@
 */
package org.opends.server.protocols.ldap;
import org.forgerock.i18n.LocalizableMessage;
import java.util.List;
import java.io.IOException;
import java.util.List;
import org.forgerock.opendj.io.*;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.io.ASN1Writer;
import org.forgerock.util.Utils;
import org.opends.server.types.DN;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import static org.opends.server.protocols.ldap.LDAPConstants.*;
import static org.opends.server.util.ServerConstants.*;
@@ -51,13 +50,10 @@
  /** The matched DN for this response. */
  private DN matchedDN;
  /** The result code for this response. */
  private int resultCode;
  /** The set of referral URLs for this response. */
  private List<String> referralURLs;
  /** The error message for this response. */
  private LocalizableMessage errorMessage;
@@ -71,10 +67,6 @@
  public AddResponseProtocolOp(int resultCode)
  {
    this.resultCode = resultCode;
    errorMessage = null;
    matchedDN = null;
    referralURLs = null;
  }
@@ -90,9 +82,6 @@
  {
    this.resultCode   = resultCode;
    this.errorMessage = errorMessage;
    matchedDN    = null;
    referralURLs = null;
  }
@@ -164,36 +153,19 @@
    return referralURLs;
  }
  /**
   * Retrieves the BER type for this protocol op.
   *
   * @return  The BER type for this protocol op.
   */
  @Override
  public byte getType()
  {
    return OP_TYPE_ADD_RESPONSE;
  }
  /**
   * Retrieves the name for this protocol op type.
   *
   * @return  The name for this protocol op type.
   */
  @Override
  public String getProtocolOpName()
  {
    return "Add Response";
  }
  /**
   * Writes this protocol op to an ASN.1 output stream.
   *
   * @param stream The ASN.1 output stream to write to.
   * @throws IOException If a problem occurs while writing to the stream.
   */
  @Override
  public void write(ASN1Writer stream) throws IOException
  {
    stream.writeStartSequence(OP_TYPE_ADD_RESPONSE);
@@ -230,14 +202,7 @@
    stream.writeEndSequence();
  }
  /**
   * Appends a string representation of this LDAP protocol op to the provided
   * buffer.
   *
   * @param  buffer  The buffer to which the string should be appended.
   */
  @Override
  public void toString(StringBuilder buffer)
  {
    buffer.append("AddResponse(resultCode=");
@@ -255,23 +220,14 @@
    if (referralURLs != null && !referralURLs.isEmpty())
    {
      buffer.append(", referralURLs={");
      buffer.append(Utils.joinAsString(", ", referralURLs));
      Utils.joinAsString(buffer, ", ", referralURLs);
      buffer.append("}");
    }
    buffer.append(")");
  }
  /**
   * Appends a multi-line string representation of this LDAP protocol op to the
   * provided buffer.
   *
   * @param  buffer  The buffer to which the information should be appended.
   * @param  indent  The number of spaces from the margin that the lines should
   *                 be indented.
   */
  @Override
  public void toString(StringBuilder buffer, int indent)
  {
    StringBuilder indentBuf = new StringBuilder(indent);
@@ -321,4 +277,3 @@
    }
  }
}
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/BindResponseProtocolOp.java
@@ -25,17 +25,17 @@
 *      Portions Copyright 2014-2015 ForgeRock AS
 */
package org.opends.server.protocols.ldap;
import org.forgerock.i18n.LocalizableMessage;
import java.util.List;
import java.io.IOException;
import java.util.List;
import org.forgerock.opendj.io.*;
import org.opends.server.types.DN;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.io.ASN1Writer;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.util.Utils;
import org.opends.server.types.DN;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import static org.opends.server.protocols.ldap.LDAPConstants.*;
import static org.opends.server.util.ServerConstants.*;
@@ -54,13 +54,10 @@
  /** The matched DN for this response. */
  private DN matchedDN;
  /** The result code for this response. */
  private int resultCode;
  /** The set of referral URLs for this response. */
  private List<String> referralURLs;
  /** The error message for this response. */
  private LocalizableMessage errorMessage;
@@ -74,11 +71,6 @@
  public BindResponseProtocolOp(int resultCode)
  {
    this.resultCode = resultCode;
    errorMessage          = null;
    matchedDN             = null;
    referralURLs          = null;
    serverSASLCredentials = null;
  }
@@ -94,10 +86,6 @@
  {
    this.resultCode   = resultCode;
    this.errorMessage = errorMessage;
    matchedDN             = null;
    referralURLs          = null;
    serverSASLCredentials = null;
  }
@@ -117,8 +105,6 @@
    this.errorMessage = errorMessage;
    this.matchedDN    = matchedDN;
    this.referralURLs = referralURLs;
    serverSASLCredentials = null;
  }
@@ -207,36 +193,19 @@
    return serverSASLCredentials;
  }
  /**
   * Retrieves the BER type for this protocol op.
   *
   * @return  The BER type for this protocol op.
   */
  @Override
  public byte getType()
  {
    return OP_TYPE_BIND_RESPONSE;
  }
  /**
   * Retrieves the name for this protocol op type.
   *
   * @return  The name for this protocol op type.
   */
  @Override
  public String getProtocolOpName()
  {
    return "Bind Response";
  }
  /**
   * Writes this protocol op to an ASN.1 output stream.
   *
   * @param stream The ASN.1 output stream to write to.
   * @throws IOException If a problem occurs while writing to the stream.
   */
  @Override
  public void write(ASN1Writer stream) throws IOException
  {
    stream.writeStartSequence(OP_TYPE_BIND_RESPONSE);
@@ -279,14 +248,7 @@
    stream.writeEndSequence();
  }
  /**
   * Appends a string representation of this LDAP protocol op to the provided
   * buffer.
   *
   * @param  buffer  The buffer to which the string should be appended.
   */
  @Override
  public void toString(StringBuilder buffer)
  {
    buffer.append("BindResponse(resultCode=");
@@ -305,7 +267,7 @@
    if (referralURLs != null && !referralURLs.isEmpty())
    {
      buffer.append(", referralURLs={");
      buffer.append(Utils.joinAsString(", ", referralURLs));
      Utils.joinAsString(buffer, ", ", referralURLs);
      buffer.append("}");
    }
@@ -318,16 +280,7 @@
    buffer.append(")");
  }
  /**
   * Appends a multi-line string representation of this LDAP protocol op to the
   * provided buffer.
   *
   * @param  buffer  The buffer to which the information should be appended.
   * @param  indent  The number of spaces from the margin that the lines should
   *                 be indented.
   */
  @Override
  public void toString(StringBuilder buffer, int indent)
  {
    StringBuilder indentBuf = new StringBuilder(indent);
@@ -386,4 +339,3 @@
    }
  }
}
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/CompareResponseProtocolOp.java
@@ -26,16 +26,15 @@
 */
package org.opends.server.protocols.ldap;
import org.forgerock.i18n.LocalizableMessage;
import java.util.List;
import java.io.IOException;
import java.util.List;
import org.forgerock.opendj.io.*;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.io.ASN1Writer;
import org.forgerock.util.Utils;
import org.opends.server.types.DN;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import static org.opends.server.protocols.ldap.LDAPConstants.*;
import static org.opends.server.util.ServerConstants.*;
@@ -51,13 +50,10 @@
  /** The matched DN for this response. */
  private DN matchedDN;
  /** The result code for this response. */
  private int resultCode;
  /** The set of referral URLs for this response. */
  private List<String> referralURLs;
  /** The error message for this response. */
  private LocalizableMessage errorMessage;
@@ -71,10 +67,6 @@
  public CompareResponseProtocolOp(int resultCode)
  {
    this.resultCode = resultCode;
    errorMessage = null;
    matchedDN = null;
    referralURLs = null;
  }
@@ -90,9 +82,6 @@
  {
    this.resultCode   = resultCode;
    this.errorMessage = errorMessage;
    matchedDN    = null;
    referralURLs = null;
  }
@@ -165,36 +154,19 @@
    return referralURLs;
  }
  /**
   * Retrieves the BER type for this protocol op.
   *
   * @return  The BER type for this protocol op.
   */
  @Override
  public byte getType()
  {
    return OP_TYPE_COMPARE_RESPONSE;
  }
  /**
   * Retrieves the name for this protocol op type.
   *
   * @return  The name for this protocol op type.
   */
  @Override
  public String getProtocolOpName()
  {
    return "Compare Response";
  }
  /**
   * Writes this protocol op to an ASN.1 output stream.
   *
   * @param stream The ASN.1 output stream to write to.
   * @throws IOException If a problem occurs while writing to the stream.
   */
  @Override
  public void write(ASN1Writer stream) throws IOException
  {
    stream.writeStartSequence(OP_TYPE_COMPARE_RESPONSE);
@@ -231,14 +203,7 @@
    stream.writeEndSequence();
  }
  /**
   * Appends a string representation of this LDAP protocol op to the provided
   * buffer.
   *
   * @param  buffer  The buffer to which the string should be appended.
   */
  @Override
  public void toString(StringBuilder buffer)
  {
    buffer.append("CompareResponse(resultCode=");
@@ -257,23 +222,14 @@
    if (referralURLs != null && !referralURLs.isEmpty())
    {
      buffer.append(", referralURLs={");
      buffer.append(Utils.joinAsString(", ", referralURLs));
      Utils.joinAsString(buffer, ", ", referralURLs);
      buffer.append("}");
    }
    buffer.append(")");
  }
  /**
   * Appends a multi-line string representation of this LDAP protocol op to the
   * provided buffer.
   *
   * @param  buffer  The buffer to which the information should be appended.
   * @param  indent  The number of spaces from the margin that the lines should
   *                 be indented.
   */
  @Override
  public void toString(StringBuilder buffer, int indent)
  {
    StringBuilder indentBuf = new StringBuilder(indent);
@@ -323,4 +279,3 @@
    }
  }
}
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/DeleteResponseProtocolOp.java
@@ -26,16 +26,15 @@
 */
package org.opends.server.protocols.ldap;
import org.forgerock.i18n.LocalizableMessage;
import java.util.List;
import java.io.IOException;
import java.util.List;
import org.forgerock.opendj.io.*;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.io.ASN1Writer;
import org.forgerock.util.Utils;
import org.opends.server.types.DN;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import static org.opends.server.protocols.ldap.LDAPConstants.*;
import static org.opends.server.util.ServerConstants.*;
@@ -50,17 +49,12 @@
  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
  /** The matched DN for this response. */
  private DN matchedDN;
  /** The result code for this response. */
  private int resultCode;
  /** The set of referral URLs for this response. */
  private List<String> referralURLs;
  /** The error message for this response. */
  private LocalizableMessage errorMessage;
@@ -74,10 +68,6 @@
  public DeleteResponseProtocolOp(int resultCode)
  {
    this.resultCode = resultCode;
    errorMessage = null;
    matchedDN = null;
    referralURLs = null;
  }
@@ -93,9 +83,6 @@
  {
    this.resultCode   = resultCode;
    this.errorMessage = errorMessage;
    matchedDN    = null;
    referralURLs = null;
  }
@@ -168,36 +155,19 @@
    return referralURLs;
  }
  /**
   * Retrieves the BER type for this protocol op.
   *
   * @return  The BER type for this protocol op.
   */
  @Override
  public byte getType()
  {
    return OP_TYPE_DELETE_RESPONSE;
  }
  /**
   * Retrieves the name for this protocol op type.
   *
   * @return  The name for this protocol op type.
   */
  @Override
  public String getProtocolOpName()
  {
    return "Delete Response";
  }
  /**
   * Writes this protocol op to an ASN.1 output stream.
   *
   * @param stream The ASN.1 output stream to write to.
   * @throws IOException If a problem occurs while writing to the stream.
   */
  @Override
  public void write(ASN1Writer stream) throws IOException
  {
    stream.writeStartSequence(OP_TYPE_DELETE_RESPONSE);
@@ -234,14 +204,7 @@
    stream.writeEndSequence();
  }
  /**
   * Appends a string representation of this LDAP protocol op to the provided
   * buffer.
   *
   * @param  buffer  The buffer to which the string should be appended.
   */
  @Override
  public void toString(StringBuilder buffer)
  {
    buffer.append("DeleteResponse(resultCode=");
@@ -260,23 +223,14 @@
    if (referralURLs != null && !referralURLs.isEmpty())
    {
      buffer.append(", referralURLs={");
      buffer.append(Utils.joinAsString(", ", referralURLs));
      Utils.joinAsString(buffer, ", ", referralURLs);
      buffer.append("}");
    }
    buffer.append(")");
  }
  /**
   * Appends a multi-line string representation of this LDAP protocol op to the
   * provided buffer.
   *
   * @param  buffer  The buffer to which the information should be appended.
   * @param  indent  The number of spaces from the margin that the lines should
   *                 be indented.
   */
  @Override
  public void toString(StringBuilder buffer, int indent)
  {
    StringBuilder indentBuf = new StringBuilder(indent);
@@ -326,4 +280,3 @@
    }
  }
}
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/ExtendedResponseProtocolOp.java
@@ -26,17 +26,16 @@
 */
package org.opends.server.protocols.ldap;
import org.forgerock.i18n.LocalizableMessage;
import java.util.List;
import java.io.IOException;
import java.util.List;
import org.forgerock.opendj.io.*;
import org.opends.server.types.DN;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.io.ASN1Writer;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.util.Utils;
import org.opends.server.types.DN;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import static org.opends.server.protocols.ldap.LDAPConstants.*;
import static org.opends.server.util.ServerConstants.*;
@@ -55,13 +54,10 @@
  /** The matched DN for this response. */
  private DN matchedDN;
  /** The result code for this response. */
  private int resultCode;
  /** The set of referral URLs for this response. */
  private List<String> referralURLs;
  /** The error message for this response. */
  private LocalizableMessage errorMessage;
@@ -78,12 +74,6 @@
  public ExtendedResponseProtocolOp(int resultCode)
  {
    this.resultCode = resultCode;
    errorMessage = null;
    matchedDN    = null;
    referralURLs = null;
    oid          = null;
    value        = null;
  }
@@ -99,11 +89,6 @@
  {
    this.resultCode   = resultCode;
    this.errorMessage = errorMessage;
    matchedDN    = null;
    referralURLs = null;
    oid          = null;
    value        = null;
  }
@@ -123,9 +108,6 @@
    this.errorMessage = errorMessage;
    this.matchedDN    = matchedDN;
    this.referralURLs = referralURLs;
    oid   = null;
    value = null;
  }
@@ -228,36 +210,19 @@
    return value;
  }
  /**
   * Retrieves the BER type for this protocol op.
   *
   * @return  The BER type for this protocol op.
   */
  @Override
  public byte getType()
  {
    return OP_TYPE_EXTENDED_RESPONSE;
  }
  /**
   * Retrieves the name for this protocol op type.
   *
   * @return  The name for this protocol op type.
   */
  @Override
  public String getProtocolOpName()
  {
    return "Extended Response";
  }
  /**
   * Writes this protocol op to an ASN.1 output stream.
   *
   * @param stream The ASN.1 output stream to write to.
   * @throws IOException If a problem occurs while writing to the stream.
   */
  @Override
  public void write(ASN1Writer stream) throws IOException
  {
    stream.writeStartSequence(OP_TYPE_EXTENDED_RESPONSE);
@@ -304,14 +269,7 @@
    stream.writeEndSequence();
  }
  /**
   * Appends a string representation of this LDAP protocol op to the provided
   * buffer.
   *
   * @param  buffer  The buffer to which the string should be appended.
   */
  @Override
  public void toString(StringBuilder buffer)
  {
    buffer.append("ExtendedResponse(resultCode=");
@@ -330,7 +288,7 @@
    if (referralURLs != null && !referralURLs.isEmpty())
    {
      buffer.append(", referralURLs={");
      buffer.append(Utils.joinAsString(", ", referralURLs));
      Utils.joinAsString(buffer, ", ", referralURLs);
      buffer.append("}");
    }
    if (oid != null && oid.length() > 0)
@@ -347,16 +305,7 @@
    buffer.append(")");
  }
  /**
   * Appends a multi-line string representation of this LDAP protocol op to the
   * provided buffer.
   *
   * @param  buffer  The buffer to which the information should be appended.
   * @param  indent  The number of spaces from the margin that the lines should
   *                 be indented.
   */
  @Override
  public void toString(StringBuilder buffer, int indent)
  {
    StringBuilder indentBuf = new StringBuilder(indent);
@@ -422,4 +371,3 @@
    }
  }
}
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/ModifyDNResponseProtocolOp.java
@@ -26,16 +26,15 @@
 */
package org.opends.server.protocols.ldap;
import org.forgerock.i18n.LocalizableMessage;
import java.util.List;
import java.io.IOException;
import java.util.List;
import org.forgerock.opendj.io.*;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.io.ASN1Writer;
import org.forgerock.util.Utils;
import org.opends.server.types.DN;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import static org.opends.server.protocols.ldap.LDAPConstants.*;
import static org.opends.server.util.ServerConstants.*;
@@ -51,13 +50,10 @@
  /** The matched DN for this response. */
  private DN matchedDN;
  /** The result code for this response. */
  private int resultCode;
  /** The set of referral URLs for this response. */
  private List<String> referralURLs;
  /** The error message for this response. */
  private LocalizableMessage errorMessage;
@@ -71,10 +67,6 @@
  public ModifyDNResponseProtocolOp(int resultCode)
  {
    this.resultCode = resultCode;
    errorMessage = null;
    matchedDN = null;
    referralURLs = null;
  }
@@ -90,9 +82,6 @@
  {
    this.resultCode   = resultCode;
    this.errorMessage = errorMessage;
    matchedDN    = null;
    referralURLs = null;
  }
@@ -164,36 +153,19 @@
    return referralURLs;
  }
  /**
   * Retrieves the BER type for this protocol op.
   *
   * @return  The BER type for this protocol op.
   */
  @Override
  public byte getType()
  {
    return OP_TYPE_MODIFY_DN_RESPONSE;
  }
  /**
   * Retrieves the name for this protocol op type.
   *
   * @return  The name for this protocol op type.
   */
  @Override
  public String getProtocolOpName()
  {
    return "Modify DN Response";
  }
  /**
   * Writes this protocol op to an ASN.1 output stream.
   *
   * @param stream The ASN.1 output stream to write to.
   * @throws IOException If a problem occurs while writing to the stream.
   */
  @Override
  public void write(ASN1Writer stream) throws IOException
  {
    stream.writeStartSequence(OP_TYPE_MODIFY_DN_RESPONSE);
@@ -230,14 +202,7 @@
    stream.writeEndSequence();
  }
  /**
   * Appends a string representation of this LDAP protocol op to the provided
   * buffer.
   *
   * @param  buffer  The buffer to which the string should be appended.
   */
  @Override
  public void toString(StringBuilder buffer)
  {
    buffer.append("ModifyDNResponse(resultCode=");
@@ -256,23 +221,14 @@
    if (referralURLs != null && ! referralURLs.isEmpty())
    {
      buffer.append(", referralURLs={");
      buffer.append(Utils.joinAsString(", ", referralURLs));
      Utils.joinAsString(buffer, ", ", referralURLs);
      buffer.append("}");
    }
    buffer.append(")");
  }
  /**
   * Appends a multi-line string representation of this LDAP protocol op to the
   * provided buffer.
   *
   * @param  buffer  The buffer to which the information should be appended.
   * @param  indent  The number of spaces from the margin that the lines should
   *                 be indented.
   */
  @Override
  public void toString(StringBuilder buffer, int indent)
  {
    StringBuilder indentBuf = new StringBuilder(indent);
@@ -322,4 +278,3 @@
    }
  }
}
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/ModifyResponseProtocolOp.java
@@ -26,16 +26,15 @@
 */
package org.opends.server.protocols.ldap;
import org.forgerock.i18n.LocalizableMessage;
import java.util.List;
import java.io.IOException;
import java.util.List;
import org.forgerock.opendj.io.*;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.io.ASN1Writer;
import org.forgerock.util.Utils;
import org.opends.server.types.DN;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import static org.opends.server.protocols.ldap.LDAPConstants.*;
import static org.opends.server.util.ServerConstants.*;
@@ -51,13 +50,10 @@
  /** The matched DN for this response. */
  private DN matchedDN;
  /** The result code for this response. */
  private int resultCode;
  /** The set of referral URLs for this response. */
  private List<String> referralURLs;
  /** The error message for this response. */
  private LocalizableMessage errorMessage;
@@ -71,10 +67,6 @@
  public ModifyResponseProtocolOp(int resultCode)
  {
    this.resultCode = resultCode;
    errorMessage = null;
    matchedDN = null;
    referralURLs = null;
  }
@@ -90,9 +82,6 @@
  {
    this.resultCode   = resultCode;
    this.errorMessage = errorMessage;
    matchedDN    = null;
    referralURLs = null;
  }
@@ -163,35 +152,19 @@
    return referralURLs;
  }
  /**
   * Retrieves the BER type for this protocol op.
   *
   * @return  The BER type for this protocol op.
   */
  @Override
  public byte getType()
  {
    return OP_TYPE_MODIFY_RESPONSE;
  }
  /**
   * Retrieves the name for this protocol op type.
   *
   * @return  The name for this protocol op type.
   */
  @Override
  public String getProtocolOpName()
  {
    return "Modify Response";
  }
  /**
   * Writes this protocol op to an ASN.1 output stream.
   *
   * @param stream The ASN.1 output stream to write to.
   * @throws IOException If a problem occurs while writing to the stream.
   */
  @Override
  public void write(ASN1Writer stream) throws IOException
  {
    stream.writeStartSequence(OP_TYPE_MODIFY_RESPONSE);
@@ -228,14 +201,7 @@
    stream.writeEndSequence();
  }
  /**
   * Appends a string representation of this LDAP protocol op to the provided
   * buffer.
   *
   * @param  buffer  The buffer to which the string should be appended.
   */
  @Override
  public void toString(StringBuilder buffer)
  {
    buffer.append("ModifyResponse(resultCode=");
@@ -254,23 +220,14 @@
    if (referralURLs != null && ! referralURLs.isEmpty())
    {
      buffer.append(", referralURLs={");
      buffer.append(Utils.joinAsString(", ", referralURLs));
      Utils.joinAsString(buffer, ", ", referralURLs);
      buffer.append("}");
    }
    buffer.append(")");
  }
  /**
   * Appends a multi-line string representation of this LDAP protocol op to the
   * provided buffer.
   *
   * @param  buffer  The buffer to which the information should be appended.
   * @param  indent  The number of spaces from the margin that the lines should
   *                 be indented.
   */
  @Override
  public void toString(StringBuilder buffer, int indent)
  {
    StringBuilder indentBuf = new StringBuilder(indent);
@@ -320,4 +277,3 @@
    }
  }
}
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/SearchRequestProtocolOp.java
@@ -33,9 +33,9 @@
import org.forgerock.opendj.io.ASN1Writer;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.DereferenceAliasesPolicy;
import org.opends.server.types.RawFilter;
import org.forgerock.opendj.ldap.SearchScope;
import org.forgerock.util.Utils;
import org.opends.server.types.RawFilter;
import static org.opends.server.protocols.ldap.LDAPConstants.*;
import static org.opends.server.util.ServerConstants.*;
@@ -207,38 +207,18 @@
    return attributes;
  }
  /**
   * Retrieves the BER type for this protocol op.
   *
   * @return  The BER type for this protocol op.
   */
  @Override
  public byte getType()
  {
    return OP_TYPE_SEARCH_REQUEST;
  }
  /**
   * Retrieves the name for this protocol op type.
   *
   * @return  The name for this protocol op type.
   */
  @Override
  public String getProtocolOpName()
  {
    return "Search Request";
  }
  /**
   * Writes this protocol op to an ASN.1 output stream.
   *
   * @param stream The ASN.1 output stream to write to.
   * @throws IOException If a problem occurs while writing to the stream.
   */
  @Override
  public void write(ASN1Writer stream) throws IOException
  {
@@ -261,14 +241,6 @@
    stream.writeEndSequence();
  }
  /**
   * Appends a string representation of this LDAP protocol op to the provided
   * buffer.
   *
   * @param  buffer  The buffer to which the string should be appended.
   */
  @Override
  public void toString(StringBuilder buffer)
  {
@@ -284,22 +256,12 @@
    if (attributes != null && ! attributes.isEmpty())
    {
      buffer.append(Utils.joinAsString(", ", attributes));
      Utils.joinAsString(buffer, ", ", attributes);
    }
    buffer.append("})");
  }
  /**
   * Appends a multi-line string representation of this LDAP protocol op to the
   * provided buffer.
   *
   * @param  buffer  The buffer to which the information should be appended.
   * @param  indent  The number of spaces from the margin that the lines should
   *                 be indented.
   */
  @Override
  public void toString(StringBuilder buffer, int indent)
  {
@@ -333,4 +295,3 @@
    }
  }
}
opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/SearchResultDoneProtocolOp.java
@@ -26,16 +26,15 @@
 */
package org.opends.server.protocols.ldap;
import org.forgerock.i18n.LocalizableMessage;
import java.util.List;
import java.io.IOException;
import java.util.List;
import org.forgerock.opendj.io.*;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.io.ASN1Writer;
import org.forgerock.util.Utils;
import org.opends.server.types.DN;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import static org.opends.server.protocols.ldap.LDAPConstants.*;
import static org.opends.server.util.ServerConstants.*;
@@ -51,13 +50,10 @@
  /** The matched DN for this response. */
  private DN matchedDN;
  /** The result code for this response. */
  private int resultCode;
  /** The set of referral URLs for this response. */
  private List<String> referralURLs;
  /** The error message for this response. */
  private LocalizableMessage errorMessage;
@@ -71,10 +67,6 @@
  public SearchResultDoneProtocolOp(int resultCode)
  {
    this.resultCode = resultCode;
    errorMessage = null;
    matchedDN = null;
    referralURLs = null;
  }
@@ -90,9 +82,6 @@
  {
    this.resultCode   = resultCode;
    this.errorMessage = errorMessage;
    matchedDN    = null;
    referralURLs = null;
  }
@@ -165,36 +154,19 @@
    return referralURLs;
  }
  /**
   * Retrieves the BER type for this protocol op.
   *
   * @return  The BER type for this protocol op.
   */
  @Override
  public byte getType()
  {
    return OP_TYPE_SEARCH_RESULT_DONE;
  }
  /**
   * Retrieves the name for this protocol op type.
   *
   * @return  The name for this protocol op type.
   */
  @Override
  public String getProtocolOpName()
  {
    return "Search Result Done";
  }
  /**
   * Writes this protocol op to an ASN.1 output stream.
   *
   * @param stream The ASN.1 output stream to write to.
   * @throws IOException If a problem occurs while writing to the stream.
   */
  @Override
  public void write(ASN1Writer stream) throws IOException
  {
    stream.writeStartSequence(OP_TYPE_SEARCH_RESULT_DONE);
@@ -231,14 +203,7 @@
    stream.writeEndSequence();
  }
  /**
   * Appends a string representation of this LDAP protocol op to the provided
   * buffer.
   *
   * @param  buffer  The buffer to which the string should be appended.
   */
  @Override
  public void toString(StringBuilder buffer)
  {
    buffer.append("SearchResultDone(resultCode=");
@@ -257,23 +222,14 @@
    if (referralURLs != null && !referralURLs.isEmpty())
    {
      buffer.append(", referralURLs={");
      buffer.append(Utils.joinAsString(", ", referralURLs));
      Utils.joinAsString(buffer, ", ", referralURLs);
      buffer.append("}");
    }
    buffer.append(")");
  }
  /**
   * Appends a multi-line string representation of this LDAP protocol op to the
   * provided buffer.
   *
   * @param  buffer  The buffer to which the information should be appended.
   * @param  indent  The number of spaces from the margin that the lines should
   *                 be indented.
   */
  @Override
  public void toString(StringBuilder buffer, int indent)
  {
    StringBuilder indentBuf = new StringBuilder(indent);
@@ -323,4 +279,3 @@
    }
  }
}
opendj-server-legacy/src/main/java/org/opends/server/types/AttributeBuilder.java
@@ -407,10 +407,9 @@
      buffer.append("Attribute(");
      buffer.append(getNameWithOptions());
      buffer.append(", {");
      buffer.append(Utils.joinAsString(", ", values));
      Utils.joinAsString(buffer, ", ", values);
      buffer.append("})");
    }
  }
@@ -453,18 +452,12 @@
      this.normalizedOptions = normalizedOptions;
    }
    /** {@inheritDoc} */
    @Override
    public Set<String> getOptions()
    {
      return options;
    }
    /** {@inheritDoc} */
    @Override
    public boolean hasOption(String option)
    {
@@ -472,9 +465,6 @@
      return normalizedOptions.contains(s);
    }
    /** {@inheritDoc} */
    @Override
    public boolean hasOptions()
    {
@@ -504,54 +494,36 @@
      super(attributeType, name, values);
    }
    /** {@inheritDoc} */
    @Override
    public String getNameWithOptions()
    {
      return getName();
    }
    /** {@inheritDoc} */
    @Override
    public Set<String> getOptions()
    {
      return Collections.emptySet();
    }
    /** {@inheritDoc} */
    @Override
    public boolean hasAllOptions(Collection<String> options)
    {
      return options == null || options.isEmpty();
    }
    /** {@inheritDoc} */
    @Override
    public boolean hasOption(String option)
    {
      return false;
    }
    /** {@inheritDoc} */
    @Override
    public boolean hasOptions()
    {
      return false;
    }
    /** {@inheritDoc} */
    @Override
    public boolean optionsEqual(Set<String> options)
    {
@@ -598,18 +570,12 @@
      this.normalizedOption = toLowerCase(option);
    }
    /** {@inheritDoc} */
    @Override
    public Set<String> getOptions()
    {
      return option;
    }
    /** {@inheritDoc} */
    @Override
    public boolean hasOption(String option)
    {
@@ -617,9 +583,6 @@
      return normalizedOption.equals(s);
    }
    /** {@inheritDoc} */
    @Override
    public boolean hasOptions()
    {
@@ -1770,13 +1733,10 @@
    return CollectionUtils.newArrayList(toAttribute());
  }
  /** {@inheritDoc} */
  @Override
  public final String toString()
  {
    StringBuilder builder = new StringBuilder();
    builder.append("AttributeBuilder(");
    builder.append(name);
@@ -1787,7 +1747,7 @@
    }
    builder.append(", {");
    builder.append(Utils.joinAsString(", ", values));
    Utils.joinAsString(builder, ", ", values);
    builder.append("})");
    return builder.toString();
opendj-server-legacy/src/main/java/org/opends/server/types/VirtualAttribute.java
@@ -22,7 +22,7 @@
 *
 *
 *      Copyright 2008-2009 Sun Microsystems, Inc.
 *      Portions Copyright 2012-2014 ForgeRock AS.
 *      Portions Copyright 2012-2015 ForgeRock AS.
 */
package org.opends.server.types;
@@ -55,13 +55,10 @@
  /** The attribute type. */
  private final AttributeType attributeType;
  /** The entry with which this virtual attribute is associated. */
  private final Entry entry;
  /** The virtual attribute provider for this virtual attribute. */
  private final VirtualAttributeProvider<?> provider;
  /** The virtual attribute rule for this virtual attribute. */
  private final VirtualAttributeRule rule;
@@ -87,60 +84,42 @@
    this.provider = rule.getProvider();
  }
  /** {@inheritDoc} */
  @Override
  public ConditionResult approximatelyEqualTo(ByteString assertionValue)
  {
    return provider.approximatelyEqualTo(entry, rule, assertionValue);
  }
  /** {@inheritDoc} */
  @Override
  public boolean contains(ByteString value)
  {
    return provider.hasValue(entry, rule, value);
  }
  /** {@inheritDoc} */
  @Override
  public boolean containsAll(Collection<ByteString> values)
  {
    return provider.hasAllValues(entry, rule, values);
  }
  /** {@inheritDoc} */
  @Override
  public ConditionResult matchesEqualityAssertion(ByteString assertionValue)
  {
    return provider.matchesEqualityAssertion(entry, rule, assertionValue);
  }
  /** {@inheritDoc} */
  @Override
  public AttributeType getAttributeType()
  {
    return attributeType;
  }
  /** {@inheritDoc} */
  @Override
  public String getNameWithOptions()
  {
    return getName();
  }
  /** {@inheritDoc} */
  @Override
  public Set<String> getOptions()
  {
@@ -161,81 +140,54 @@
    return rule;
  }
  /** {@inheritDoc} */
  @Override
  public ConditionResult greaterThanOrEqualTo(ByteString assertionValue)
  {
    return provider.greaterThanOrEqualTo(entry, rule, assertionValue);
  }
  /** {@inheritDoc} */
  @Override
  public boolean hasAllOptions(Collection<String> options)
  {
    return options == null || options.isEmpty();
  }
  /** {@inheritDoc} */
  @Override
  public boolean hasOption(String option)
  {
    return false;
  }
  /** {@inheritDoc} */
  @Override
  public boolean hasOptions()
  {
    return false;
  }
  /** {@inheritDoc} */
  @Override
  public boolean isEmpty()
  {
    return !provider.hasValue(entry, rule);
  }
  /** {@inheritDoc} */
  @Override
  public boolean isVirtual()
  {
    return true;
  }
  /** {@inheritDoc} */
  @Override
  public Iterator<ByteString> iterator()
  {
    return provider.getValues(entry, rule).iterator();
  }
  /** {@inheritDoc} */
  @Override
  public ConditionResult lessThanOrEqualTo(ByteString assertionValue)
  {
    return provider.lessThanOrEqualTo(entry, rule, assertionValue);
  }
  /** {@inheritDoc} */
  @Override
  public ConditionResult matchesSubstring(ByteString subInitial,
      List<ByteString> subAny, ByteString subFinal)
@@ -243,18 +195,12 @@
    return provider.matchesSubstring(entry, rule, subInitial, subAny, subFinal);
  }
  /** {@inheritDoc} */
  @Override
  public boolean optionsEqual(Set<String> options)
  {
    return options == null || options.isEmpty();
  }
  /** {@inheritDoc} */
  @Override
  public int size()
  {
@@ -265,15 +211,13 @@
    return provider.hasValue(entry, rule) ? 1 : 0;
  }
  /** {@inheritDoc} */
  @Override
  public void toString(StringBuilder buffer)
  {
    buffer.append("VirtualAttribute(");
    buffer.append(getAttributeType().getNameOrOID());
    buffer.append(", {");
    buffer.append(Utils.joinAsString(", ", this));
    Utils.joinAsString(buffer, ", ", this);
    buffer.append("})");
  }
}
opendj-server-legacy/src/main/java/org/opends/server/types/VirtualAttributeRule.java
@@ -26,6 +26,8 @@
 */
package org.opends.server.types;
import static org.forgerock.util.Reject.*;
import java.util.Collection;
import java.util.Set;
@@ -38,8 +40,6 @@
import org.opends.server.api.VirtualAttributeProvider;
import org.opends.server.core.DirectoryServer;
import static org.forgerock.util.Reject.*;
/**
 * This class defines a virtual attribute rule, which associates a
 * virtual attribute provider with its associated configuration,
@@ -60,43 +60,21 @@
  /** The attribute type for which the values should be generated. */
  private final AttributeType attributeType;
  /**
   * The set of base DNs for branches that are eligible to have this virtual
   * attribute.
   */
  /** The set of base DNs for branches that are eligible to have this virtual attribute. */
  private final Set<DN> baseDNs;
  /**
   * The scope of entries eligible to have this virtual attribute, under the
   * base DNs.
   */
  /** The scope of entries eligible to have this virtual attribute, under the base DNs. */
  private final SearchScope scope;
  /**
   * The set of DNs for groups whose members are eligible to have this virtual
   * attribute.
   */
  /** The set of DNs for groups whose members are eligible to have this virtual attribute. */
  private final Set<DN> groupDNs;
  /**
   * The set of search filters for entries that are eligible to have this
   * virtual attribute.
   */
  /** The set of search filters for entries that are eligible to have this virtual attribute. */
  private final Set<SearchFilter> filters;
  /** The virtual attribute provider used to generate the values. */
  private final VirtualAttributeProvider<
                     ? extends VirtualAttributeCfg> provider;
  private final VirtualAttributeProvider<? extends VirtualAttributeCfg> provider;
  /**
   * The behavior that should be exhibited for entries that already have real
   * values for the target attribute.
   */
  private final VirtualAttributeCfgDefn.ConflictBehavior
                     conflictBehavior;
  private final VirtualAttributeCfgDefn.ConflictBehavior conflictBehavior;
  /**
   * Creates a new virtual attribute rule with the provided information.
@@ -139,8 +117,6 @@
    this.conflictBehavior = conflictBehavior;
  }
  /**
   * Retrieves the attribute type for which the values should be generated.
   *
@@ -151,10 +127,7 @@
    return attributeType;
  }
  /**
   *
   * Retrieves the virtual attribute provider used to generate the values.
   *
   * @return  The virtual attribute provider to use to generate the values.
@@ -165,8 +138,6 @@
    return provider;
  }
  /**
   * Retrieves the set of base DNs for branches that are eligible to
   * have this virtual attribute.
@@ -179,7 +150,6 @@
    return baseDNs;
  }
  /**
   * Retrieves the scope of entries in the base DNs that are eligible
   * to have this virtual attribute.
@@ -192,8 +162,6 @@
    return scope;
  }
  /**
   * Retrieves the set of DNs for groups whose members are eligible to
   * have this virtual attribute.
@@ -206,8 +174,6 @@
    return groupDNs;
  }
  /**
   * Retrieves the set of search filters for entries that are eligible
   * to have this virtual attribute.
@@ -220,8 +186,6 @@
    return filters;
  }
  /**
   * Retrieves the behavior that the server should exhibit for entries
   * that already have one or more real values for the target attribute.
@@ -236,8 +200,6 @@
    return conflictBehavior;
  }
  /**
   * Indicates whether this virtual attribute rule applies to the
   * provided entry, taking into account the eligibility requirements
@@ -261,94 +223,80 @@
      return false;
    }
    // If there are any base DNs defined, then the entry must be below
    // one of them.
    DN entryDN = entry.getName();
    if (! baseDNs.isEmpty())
    {
      boolean found = false;
      for (DN dn : baseDNs)
      {
        if (entryDN.matchesBaseAndScope(dn , scope))
        {
          found = true;
          break;
        }
      }
      if (! found)
    // If there are any base DNs defined, then the entry must be below one of them.
    if (!baseDNs.isEmpty() && !matchesAnyBaseDN(entry.getName()))
      {
        return false;
      }
    }
    // If there are any search filters defined, then the entry must
    // match one of them.
    if (! filters.isEmpty())
    {
      boolean found = false;
      for (SearchFilter filter : filters)
      {
        try
        {
          if (filter.matchesEntry(entry))
          {
            found = true;
            break;
          }
        }
        catch (Exception e)
        {
          logger.traceException(e);
        }
      }
      if (! found)
    // If there are any search filters defined, then the entry must match one of them.
    if (!filters.isEmpty() && !matchesAnyFilter(entry))
      {
        return false;
      }
    }
    // If there are any group memberships defined, then the entry must
    // be a member of one of them.
    if (! groupDNs.isEmpty())
    {
      boolean found = false;
      for (DN dn : groupDNs)
      {
        try
        {
          Group group =
               DirectoryServer.getGroupManager().getGroupInstance(dn);
          if (group != null && group.isMember(entry))
          {
            found = true;
            break;
          }
        }
        catch (Exception e)
        {
          logger.traceException(e);
        }
      }
      if (! found)
    if (!groupDNs.isEmpty() && !isMemberOfAnyGroup(entry))
      {
        return false;
      }
    }
    // If we've gotten here, then the rule is applicable.
    return true;
  }
  private boolean matchesAnyBaseDN(DN entryDN)
  {
    for (DN dn : baseDNs)
    {
      if (entryDN.matchesBaseAndScope(dn, scope))
      {
        return true;
      }
    }
    return false;
  }
  private boolean matchesAnyFilter(Entry entry)
  {
    for (SearchFilter filter : filters)
    {
      try
      {
        if (filter.matchesEntry(entry))
        {
          return true;
        }
      }
      catch (Exception e)
      {
        logger.traceException(e);
      }
    }
    return false;
  }
  /**
   * Retrieves a string representation of this virtual attribute rule.
   *
   * @return  A string representation of this virtual attribute rule.
   */
  private boolean isMemberOfAnyGroup(Entry entry)
  {
    for (DN dn : groupDNs)
    {
      try
      {
        Group<?> group = DirectoryServer.getGroupManager().getGroupInstance(dn);
        if (group != null && group.isMember(entry))
        {
          return true;
        }
      }
      catch (Exception e)
      {
        logger.traceException(e);
      }
    }
    return false;
  }
  @Override
  public String toString()
  {
@@ -357,8 +305,6 @@
    return buffer.toString();
  }
  /**
   * Appends a string representation of this virtual attribute rule to
   * the provided buffer.
@@ -390,9 +336,8 @@
    if (!col.isEmpty())
    {
      buffer.append("\"");
      buffer.append(Utils.joinAsString("\", \"", col));
      Utils.joinAsString(buffer, "\", \"", col);
      buffer.append("\"");
    }
  }
}
opendj-server-legacy/src/test/java/org/opends/server/types/TestAttributeType.java
@@ -32,9 +32,9 @@
import java.util.Map;
import org.forgerock.opendj.ldap.schema.AttributeUsage;
import org.forgerock.util.Utils;
import org.forgerock.opendj.ldap.schema.Syntax;
import org.forgerock.opendj.ldap.schema.MatchingRule;
import org.forgerock.opendj.ldap.schema.Syntax;
import org.forgerock.util.Utils;
import org.opends.server.core.DirectoryServer;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
@@ -155,7 +155,7 @@
        else
        {
          definition.append("( '");
          definition.append(Utils.joinAsString("' '", nameSet));
          Utils.joinAsString(definition, "' '", nameSet);
          definition.append("' )");
        }
      }
opendj-server-legacy/src/test/java/org/opends/server/types/TestObjectClass.java
@@ -134,7 +134,7 @@
        else
        {
          definition.append("( '");
          definition.append(Utils.joinAsString("' '", nameSet));
          Utils.joinAsString(definition, "' '", nameSet);
          definition.append("' )");
        }
      }