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); } } String option = attrDescr.substring(semicolonPos + 1); if (option.length() > 0) { builder.setOption(option); } result = result.withOption("binary"); } 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();