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

Jean-Noël Rouvignac
29.56.2016 5daf59a304761abcff57e9117b759bff515ca623
Prep work for OPENDJ-2803 Migrate Attribute

LDIFReader.java:
In parseAttrDescription(), changed return type to AttributeDescription.

ManageTasksPanel.java:
Use LDIFReader.parseAttrDescription().

CustomSearchResult.java:
Consequence of the change to LDIFReader.parseAttrDescription()
3 files modified
136 ■■■■ changed files
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/CustomSearchResult.java 15 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/ManageTasksPanel.java 64 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/util/LDIFReader.java 57 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/CustomSearchResult.java
@@ -34,6 +34,7 @@
import javax.naming.directory.Attributes;
import javax.naming.directory.SearchResult;
import org.forgerock.opendj.ldap.AttributeDescription;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.DN;
import org.forgerock.opendj.ldap.schema.AttributeType;
@@ -283,15 +284,14 @@
    for (String wholeName : getAttributeNames())
    {
      final org.opends.server.types.Attribute attribute =
        LDIFReader.parseAttrDescription(wholeName);
      final String attrName = attribute.getAttributeDescription().getNameOrOID();
      final AttributeDescription attrDesc = LDIFReader.parseAttrDescription(wholeName);
      final AttributeType attrType = attrDesc.getAttributeType();
      // See if this is an objectclass or an attribute.  Then get the
      // corresponding definition and add the value to the appropriate hash.
      if (attrName.equalsIgnoreCase("objectclass"))
      if (attrType.isObjectClass())
      {
        for (Object value : getAttributeValues(attrName))
        for (Object value : getAttributeValues(attrType.getNameOrOID()))
        {
          String ocName = value.toString().trim();
          String lowerOCName = toLowerCase(ocName);
@@ -308,9 +308,8 @@
      }
      else
      {
        AttributeType attrType = DirectoryServer.getAttributeType(attrName);
        AttributeBuilder builder = new AttributeBuilder(attribute.getAttributeDescription());
        for (Object value : getAttributeValues(attrName))
        AttributeBuilder builder = new AttributeBuilder(attrDesc);
        for (Object value : getAttributeValues(attrType.getNameOrOID()))
        {
          ByteString bs;
          if (value instanceof byte[])
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/ManageTasksPanel.java
@@ -19,6 +19,7 @@
import static org.forgerock.util.Utils.*;
import static org.opends.messages.AdminToolMessages.*;
import static org.opends.server.util.CollectionUtils.*;
import static org.opends.server.util.LDIFReader.*;
import static org.opends.server.util.StaticUtils.*;
import java.awt.Component;
@@ -53,6 +54,7 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.ldap.AttributeDescription;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.DN;
import org.forgerock.opendj.ldap.schema.AttributeType;
@@ -640,14 +642,14 @@
    for (String wholeName : csr.getAttributeNames())
    {
      final Attribute attribute = parseAttrDescription(wholeName);
      final String attrName = attribute.getAttributeDescription().getNameOrOID();
      final AttributeDescription attrDesc = parseAttrDescription(wholeName);
      final AttributeType attrType = attrDesc.getAttributeType();
      // See if this is an objectclass or an attribute.  Then get the
      // corresponding definition and add the value to the appropriate hash.
      if ("objectclass".equalsIgnoreCase(attrName))
      if (attrType.isObjectClass())
      {
        for (Object value : csr.getAttributeValues(attrName))
        for (Object value : csr.getAttributeValues(attrType.getNameOrOID()))
        {
          String ocName = value.toString().trim();
          String lowerOCName = toLowerCase(ocName);
@@ -664,9 +666,8 @@
      }
      else
      {
        AttributeType attrType = DirectoryServer.getAttributeType(attrName);
        AttributeBuilder builder = new AttributeBuilder(attribute.getAttributeDescription());
        for (Object value : csr.getAttributeValues(attrName))
        AttributeBuilder builder = new AttributeBuilder(attrDesc);
        for (Object value : csr.getAttributeValues(attrType.getNameOrOID()))
        {
          ByteString bs;
          if (value instanceof byte[])
@@ -696,55 +697,6 @@
  }
  /**
   * Parse an AttributeDescription (an attribute type name and its
   * options).
   * TODO: make this method in LDIFReader public.
   *
   * @param attrDescr
   *          The attribute description to be parsed.
   * @return A new attribute with no values, representing the
   *         attribute type and its options.
   */
  private static Attribute parseAttrDescription(String attrDescr)
  {
    AttributeBuilder builder;
    int semicolonPos = attrDescr.indexOf(';');
    if (semicolonPos > 0)
    {
      builder = new AttributeBuilder(attrDescr.substring(0, semicolonPos));
      int nextPos = attrDescr.indexOf(';', semicolonPos + 1);
      while (nextPos > 0)
      {
        String option = attrDescr.substring(semicolonPos + 1, nextPos);
        if (option.length() > 0)
        {
          builder.setOption(option);
          semicolonPos = nextPos;
          nextPos = attrDescr.indexOf(';', semicolonPos + 1);
        }
      }
      String option = attrDescr.substring(semicolonPos + 1);
      if (option.length() > 0)
      {
        builder.setOption(option);
      }
    }
    else
    {
      builder = new AttributeBuilder(attrDescr);
    }
    if(builder.getAttributeType().getSyntax().isBEREncodingRequired())
    {
      //resetting doesn't hurt and returns false.
      builder.setOption("binary");
    }
    return builder.toAttribute();
  }
  /**
   * The main method to test this panel.
   * @param args the arguments.
   */
opendj-server-legacy/src/main/java/org/opends/server/util/LDIFReader.java
@@ -771,8 +771,7 @@
    // Parse the attribute type description.
    int colonPos = parseColonPosition(lines, line);
    String attrDescr = line.substring(0, colonPos);
    final Attribute attribute = parseAttrDescription(attrDescr);
    final AttributeDescription attrDesc = attribute.getAttributeDescription();
    final AttributeDescription attrDesc = parseAttrDescription(attrDescr);
    final AttributeType attrType = attrDesc.getAttributeType();
    final String attrName = attrType.getNameOrOID();
@@ -932,14 +931,13 @@
    // Parse the attribute type description.
    int colonPos = parseColonPosition(lines, line);
    String attrDescr = line.substring(0, colonPos);
    Attribute attribute = parseAttrDescription(attrDescr);
    String attrName = attribute.getAttributeDescription().getNameOrOID();
    AttributeDescription attrDesc = parseAttrDescription(attrDescr);
    String attrName = attrDesc.getNameOrOID();
    if (attributeName != null)
    {
      Attribute expectedAttr = parseAttrDescription(attributeName);
      if (!attribute.equals(expectedAttr))
      AttributeDescription expectedAttrDesc = parseAttrDescription(attributeName);
      if (!attrDesc.equals(expectedAttrDesc))
      {
        LocalizableMessage message = ERR_LDIF_INVALID_CHANGERECORD_ATTRIBUTE.get(
            attrDescr, attributeName);
@@ -951,7 +949,7 @@
    ByteString value = parseSingleValue(lines, line, entryDN,
        colonPos, attrName);
    AttributeBuilder builder = new AttributeBuilder(attribute.getAttributeDescription());
    AttributeBuilder builder = new AttributeBuilder(attrDesc);
    builder.add(value);
    return builder.toAttribute();
  }
@@ -1077,43 +1075,14 @@
   * @return A new attribute with no values, representing the
   *         attribute type and its options.
   */
  public static Attribute parseAttrDescription(String attrDescr)
  public static AttributeDescription parseAttrDescription(String attrDescr)
  {
    AttributeBuilder builder;
    int semicolonPos = attrDescr.indexOf(';');
    if (semicolonPos > 0)
    AttributeDescription result = AttributeDescription.valueOf(attrDescr);
    if (result.getAttributeType().getSyntax().isBEREncodingRequired())
    {
      builder = new AttributeBuilder(attrDescr.substring(0, semicolonPos));
      int nextPos = attrDescr.indexOf(';', semicolonPos + 1);
      while (nextPos > 0)
      {
        String option = attrDescr.substring(semicolonPos + 1, nextPos);
        if (option.length() > 0)
        {
          builder.setOption(option);
          semicolonPos = nextPos;
          nextPos = attrDescr.indexOf(';', semicolonPos + 1);
      result = result.withOption("binary");
        }
      }
      String option = attrDescr.substring(semicolonPos + 1);
      if (option.length() > 0)
      {
        builder.setOption(option);
      }
    }
    else
    {
      builder = new AttributeBuilder(attrDescr);
    }
    if(builder.getAttributeType().getSyntax().isBEREncodingRequired())
    {
      //resetting doesn't hurt and returns false.
      builder.setOption("binary");
    }
    return builder.toAttribute();
    return result;
  }
@@ -1331,8 +1300,8 @@
      }
      // Now go through the rest of the attributes till the "-" line is reached.
      Attribute modAttr = LDIFReader.parseAttrDescription(attrDescr);
      AttributeBuilder builder = new AttributeBuilder(modAttr.getAttributeDescription());
      AttributeDescription modAttrDesc = LDIFReader.parseAttrDescription(attrDescr);
      AttributeBuilder builder = new AttributeBuilder(modAttrDesc);
      while (! lines.isEmpty())
      {
        line = lines.remove();