From 758fa048a39b3c362776400a9373ebeef86700af Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 04 Feb 2016 16:43:42 +0000
Subject: [PATCH] Removed Attribute.getOptions()
---
opendj-server-legacy/src/main/java/org/opends/server/types/SubEntry.java | 15 +-
opendj-server-legacy/src/main/java/org/opends/server/util/LDIFWriter.java | 34 ++----
opendj-server-legacy/src/main/java/org/opends/server/types/AttributeBuilder.java | 68 +------------
opendj-server-legacy/src/main/java/org/opends/server/types/Attribute.java | 10 --
opendj-server-legacy/src/main/java/org/opends/server/types/Entry.java | 34 +-----
opendj-server-legacy/src/test/java/org/opends/server/types/AttributeBuilderTest.java | 22 ---
opendj-server-legacy/src/main/java/org/opends/server/types/AbstractAttribute.java | 34 ------
opendj-server-legacy/src/main/java/org/opends/server/types/VirtualAttribute.java | 10 --
opendj-server-legacy/src/main/java/org/opends/server/util/LDIFReader.java | 10 +
opendj-server-legacy/src/test/java/org/opends/server/protocols/ldap/LDAPBinaryOptionTestCase.java | 4
opendj-server-legacy/src/main/java/org/opends/server/tools/makeldif/TemplateEntry.java | 34 +++---
opendj-server-legacy/src/main/java/org/opends/server/types/CollectiveVirtualAttribute.java | 17 ---
12 files changed, 64 insertions(+), 228 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/makeldif/TemplateEntry.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/makeldif/TemplateEntry.java
index 6871fe4..6d1b930 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/makeldif/TemplateEntry.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/makeldif/TemplateEntry.java
@@ -36,9 +36,14 @@
import java.util.List;
import org.forgerock.opendj.ldap.ByteString;
-import org.opends.server.core.DirectoryServer;
import org.forgerock.opendj.ldap.schema.AttributeType;
-import org.opends.server.types.*;
+import org.opends.server.core.DirectoryServer;
+import org.opends.server.types.Attribute;
+import org.opends.server.types.AttributeBuilder;
+import org.opends.server.types.DN;
+import org.opends.server.types.LDIFExportConfig;
+import org.opends.server.types.ObjectClass;
+import org.opends.server.types.RDN;
import org.opends.server.util.LDIFException;
/**
@@ -387,12 +392,13 @@
continue;
}
- StringBuilder attrName = attrNameWithOptions(a);
+ String attrName = a.getNameWithOptions();
if (typesOnly)
{
- attrName.append(":");
+ StringBuilder attrLine = new StringBuilder(attrName);
+ attrLine.append(":");
- writeLDIFLine(attrName, writer, wrapLines, wrapColumn);
+ writeLDIFLine(attrLine, writer, wrapLines, wrapColumn);
}
else
{
@@ -430,12 +436,13 @@
continue;
}
- StringBuilder attrName = attrNameWithOptions(a);
+ String attrName = a.getNameWithOptions();
if (typesOnly)
{
- attrName.append(":");
+ StringBuilder attrLine = new StringBuilder(attrName);
+ attrLine.append(":");
- writeLDIFLine(attrName, writer, wrapLines, wrapColumn);
+ writeLDIFLine(attrLine, writer, wrapLines, wrapColumn);
}
else
{
@@ -457,17 +464,6 @@
return true;
}
- private StringBuilder attrNameWithOptions(Attribute a)
- {
- StringBuilder attrName = new StringBuilder(a.getName());
- for (String o : a.getOptions())
- {
- attrName.append(";");
- attrName.append(o);
- }
- return attrName;
- }
-
private boolean contains(List<Attribute> urlAttrList, ByteString v)
{
if (urlAttrList != null)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/AbstractAttribute.java b/opendj-server-legacy/src/main/java/org/opends/server/types/AbstractAttribute.java
index b747966..8a60fa2 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/AbstractAttribute.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/AbstractAttribute.java
@@ -26,10 +26,7 @@
*/
package org.opends.server.types;
-import static org.opends.server.util.StaticUtils.*;
-
import java.util.Collection;
-import java.util.Set;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.DecodeException;
@@ -140,7 +137,7 @@
StringBuilder buffer = new StringBuilder();
buffer.append(getName());
- for (String option : getOptions())
+ for (String option : getAttributeDescription().getOptions())
{
buffer.append(';');
buffer.append(option);
@@ -167,35 +164,10 @@
return hashCode;
}
- /**
- * {@inheritDoc}
- * <p>
- * This implementation calls {@link #getOptions()} to
- * retrieve this attribute's set of options and then compares them
- * one at a time against the provided option. All comparisons are
- * case insensitive.
- */
@Override
public boolean hasOption(String option)
{
- // FIXME use AttributeDescription instead
- return containsOption(getOptions(), option);
- }
-
- private static boolean containsOption(Set<String> options, String optionToFind)
- {
- String normToFind = toLowerCase(optionToFind);
-
- // Cannot use Set.contains() because the options are not normalized.
- for (String o : options)
- {
- String norm = toLowerCase(o);
- if (norm.equals(normToFind))
- {
- return true;
- }
- }
- return false;
+ return getAttributeDescription().hasOption(option);
}
/**
@@ -207,7 +179,7 @@
@Override
public boolean hasOptions()
{
- return !getOptions().isEmpty();
+ return getAttributeDescription().hasOptions();
}
/**
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/Attribute.java b/opendj-server-legacy/src/main/java/org/opends/server/types/Attribute.java
index 08e04ec..968113e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/Attribute.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/Attribute.java
@@ -29,7 +29,6 @@
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
-import java.util.Set;
import org.forgerock.opendj.ldap.AttributeDescription;
import org.forgerock.opendj.ldap.ByteString;
@@ -147,15 +146,6 @@
String getNameWithOptions();
/**
- * Retrieves the unmodifiable set of attribute options for this attribute. The returned set of
- * options are not normalized.
- *
- * @return The unmodifiable set of attribute options for this attribute.
- * @Deprecated use {@link #getAttributeDescription()}
- */
- Set<String> getOptions();
-
- /**
* Indicates whether this attribute has any value(s) that are
* greater than or equal to the provided value.
*
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/AttributeBuilder.java b/opendj-server-legacy/src/main/java/org/opends/server/types/AttributeBuilder.java
index 71a9ce9..e21e760 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/AttributeBuilder.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/AttributeBuilder.java
@@ -230,12 +230,6 @@
}
@Override
- public Set<String> getOptions()
- {
- return Collections.unmodifiableSet(toSet(attributeDescription.getOptions()));
- }
-
- @Override
public boolean hasOption(String option)
{
return attributeDescription.hasOption(option);
@@ -496,12 +490,6 @@
{
return getName();
}
-
- @Override
- public Set<String> getOptions()
- {
- return Collections.emptySet();
- }
}
@@ -971,11 +959,7 @@
{
this(attribute.getAttributeType(), attribute.getName());
- for (String option : attribute.getOptions())
- {
- setOption(option);
- }
-
+ setOptions(attribute.getAttributeDescription().getOptions());
if (!omitValues)
{
addAll(attribute);
@@ -1498,55 +1482,19 @@
return isModified;
}
-
-
/**
- * Indicates whether this attribute builder has exactly the
- * specified set of options.
+ * Indicates whether this attribute builder has exactly the specified set of options.
*
- * This implementation returns
- * {@link java.util.AbstractCollection#isEmpty()}
- * if the provided set of options is <code>null</code>.
- * Otherwise it checks that the size of the provided
- * set of options is equal to the size of this attribute
- * builder options, returns <code>false</code> if the
- * sizes differ. If the sizes are the same then each
- * option in the provided set is checked and if all the
- * provided options are present <code>true</code> is
- * returned.
- *
- * @param options
- * The set of options for which to make the
- * determination (may be <code>null</code>).
- * @return <code>true</code> if this attribute
- * builder has exactly the specified
- * set of options.
+ * @param attributeDescription
+ * The attribute description containing the set of options for which to make the
+ * determination
+ * @return <code>true</code> if this attribute builder has exactly the specified set of options.
*/
- public boolean optionsEqual(Set<String> options)
+ public boolean optionsEqual(AttributeDescription attributeDescription)
{
- if (options == null)
- {
- return this.options.isEmpty();
- }
-
- if (this.options.size() != options.size())
- {
- return false;
- }
-
- for (String option : options)
- {
- if (!this.options.contains(option))
- {
- return false;
- }
- }
-
- return true;
+ return toAttribute0().getAttributeDescription().equals(attributeDescription);
}
-
-
/**
* Returns the number of attribute values in this attribute builder.
*
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/CollectiveVirtualAttribute.java b/opendj-server-legacy/src/main/java/org/opends/server/types/CollectiveVirtualAttribute.java
index ccdac85..94d1fc8 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/CollectiveVirtualAttribute.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/CollectiveVirtualAttribute.java
@@ -24,12 +24,10 @@
* Copyright 2009 Sun Microsystems, Inc.
* Portions Copyright 2014-2016 ForgeRock AS
*/
-
package org.opends.server.types;
import java.util.Iterator;
import java.util.List;
-import java.util.Set;
import org.forgerock.opendj.ldap.AttributeDescription;
import org.forgerock.opendj.ldap.ByteString;
@@ -56,13 +54,11 @@
this.attribute = attribute;
}
- /** {@inheritDoc} */
@Override
public ConditionResult approximatelyEqualTo(ByteString assertionValue) {
return attribute.approximatelyEqualTo(assertionValue);
}
- /** {@inheritDoc} */
@Override
public boolean contains(ByteString value) {
return attribute.contains(value);
@@ -86,55 +82,42 @@
}
@Override
- public Set<String> getOptions() {
- return attribute.getOptions();
- }
-
- /** {@inheritDoc} */
- @Override
public ConditionResult greaterThanOrEqualTo(ByteString assertionValue) {
return attribute.greaterThanOrEqualTo(assertionValue);
}
- /** {@inheritDoc} */
@Override
public boolean isVirtual() {
return true;
}
- /** {@inheritDoc} */
@Override
public Iterator<ByteString> iterator() {
return attribute.iterator();
}
- /** {@inheritDoc} */
@Override
public ConditionResult lessThanOrEqualTo(ByteString assertionValue) {
return attribute.lessThanOrEqualTo(assertionValue);
}
- /** {@inheritDoc} */
@Override
public ConditionResult matchesSubstring(ByteString subInitial,
List<ByteString> subAny, ByteString subFinal) {
return attribute.matchesSubstring(subInitial, subAny, subFinal);
}
- /** {@inheritDoc} */
@Override
public int size() {
return attribute.size();
}
- /** {@inheritDoc} */
@Override
public int hashCode()
{
return attribute.hashCode();
}
- /** {@inheritDoc} */
@Override
public void toString(StringBuilder buffer) {
attribute.toString(buffer);
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/Entry.java b/opendj-server-legacy/src/main/java/org/opends/server/types/Entry.java
index e8c4ab4..eca0c70 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/Entry.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/Entry.java
@@ -3684,13 +3684,7 @@
{
for (Attribute a : attrList)
{
- StringBuilder attrName = new StringBuilder(a.getName());
- for (String o : a.getOptions())
- {
- attrName.append(";");
- attrName.append(o);
- }
-
+ String attrName = a.getNameWithOptions();
for (ByteString v : a)
{
StringBuilder attrLine = new StringBuilder(attrName);
@@ -3919,18 +3913,13 @@
BufferedWriter writer, boolean wrapLines, int wrapColumn)
throws IOException
{
- StringBuilder attrName = new StringBuilder(attribute.getName());
- for (String o : attribute.getOptions())
- {
- attrName.append(";");
- attrName.append(o);
- }
-
+ String attrName = attribute.getNameWithOptions();
if (typesOnly)
{
- attrName.append(":");
+ StringBuilder attrLine = new StringBuilder(attrName);
+ attrLine.append(":");
- LDIFWriter.writeLDIFLine(attrName, writer, wrapLines, wrapColumn);
+ LDIFWriter.writeLDIFLine(attrLine, writer, wrapLines, wrapColumn);
}
else
{
@@ -4201,16 +4190,7 @@
buffer.append(",");
}
- buffer.append(a.getName());
-
- if (a.hasOptions())
- {
- for (String optionString : a.getOptions())
- {
- buffer.append(";");
- buffer.append(optionString);
- }
- }
+ buffer.append(a.getNameWithOptions());
buffer.append("={");
Iterator<ByteString> valueIterator = a.iterator();
@@ -4686,7 +4666,7 @@
// Now add in remaining options from original attribute
// (this will not overwrite options already present).
- builder.setOptions(attribute.getOptions());
+ builder.setOptions(attribute.getAttributeDescription().getOptions());
if (!omitValues)
{
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/SubEntry.java b/opendj-server-legacy/src/main/java/org/opends/server/types/SubEntry.java
index 32ef5f6..916e510 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/SubEntry.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/SubEntry.java
@@ -26,16 +26,13 @@
*/
package org.opends.server.types;
-import org.forgerock.opendj.ldap.schema.AttributeType;
-
import java.util.ArrayList;
-import java.util.LinkedHashSet;
import java.util.List;
-import java.util.Set;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ResultCode;
+import org.forgerock.opendj.ldap.schema.AttributeType;
import org.opends.server.core.DirectoryServer;
import static org.opends.messages.SchemaMessages.*;
@@ -270,9 +267,13 @@
{
AttributeBuilder builder = new AttributeBuilder(subAttr.getAttributeType());
builder.addAll(subAttr);
- Set<String> options = new LinkedHashSet<>(subAttr.getOptions());
- options.remove(ATTR_OPTION_COLLECTIVE);
- builder.setOptions(options);
+ for (String option : subAttr.getAttributeDescription().getOptions())
+ {
+ if (!option.equals(ATTR_OPTION_COLLECTIVE))
+ {
+ builder.setOption(option);
+ }
+ }
Attribute attr = builder.toAttribute();
CollectiveVirtualAttribute collectiveAttr = new CollectiveVirtualAttribute(attr);
this.collectiveAttributes.add(collectiveAttr);
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/VirtualAttribute.java b/opendj-server-legacy/src/main/java/org/opends/server/types/VirtualAttribute.java
index 45602c4..944f671 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/VirtualAttribute.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/VirtualAttribute.java
@@ -27,10 +27,8 @@
package org.opends.server.types;
import java.util.Collection;
-import java.util.Collections;
import java.util.Iterator;
import java.util.List;
-import java.util.Set;
import org.forgerock.opendj.ldap.AttributeDescription;
import org.forgerock.opendj.ldap.ByteString;
@@ -119,14 +117,6 @@
return attributeDescription;
}
- @Override
- public Set<String> getOptions()
- {
- return Collections.emptySet();
- }
-
-
-
/**
* Retrieves the virtual attribute rule that governs the behavior of
* this virtual attribute.
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/util/LDIFReader.java b/opendj-server-legacy/src/main/java/org/opends/server/util/LDIFReader.java
index 367c482..d1c2f61 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/util/LDIFReader.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/util/LDIFReader.java
@@ -47,9 +47,11 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.AttributeDescription;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ByteStringBuilder;
import org.forgerock.opendj.ldap.ModificationType;
+import org.forgerock.opendj.ldap.schema.AttributeType;
import org.opends.server.api.plugin.PluginResult;
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.PluginConfigManager;
@@ -58,7 +60,6 @@
import org.opends.server.types.AcceptRejectWarn;
import org.opends.server.types.Attribute;
import org.opends.server.types.AttributeBuilder;
-import org.forgerock.opendj.ldap.schema.AttributeType;
import org.opends.server.types.Attributes;
import org.opends.server.types.DN;
import org.opends.server.types.DirectoryException;
@@ -799,7 +800,9 @@
int colonPos = parseColonPosition(lines, line);
String attrDescr = line.substring(0, colonPos);
final Attribute attribute = parseAttrDescription(attrDescr);
- final String attrName = attribute.getName();
+ final AttributeDescription attrDesc = attribute.getAttributeDescription();
+ final AttributeType attrType = attrDesc.getAttributeType();
+ final String attrName = attrType.getNameOrOID();
// Now parse the attribute value.
ByteString value = parseSingleValue(lines, line, entryDN, colonPos, attrName);
@@ -838,7 +841,6 @@
}
else
{
- AttributeType attrType = DirectoryServer.getAttributeType(attrName);
if (! importConfig.includeAttribute(attrType))
{
if (logger.isTraceEnabled())
@@ -903,7 +905,7 @@
// options. If so, then try to add a value to that attribute.
for (AttributeBuilder a : attrList)
{
- if (a.optionsEqual(attribute.getOptions()))
+ if (a.optionsEqual(attrDesc))
{
if (!a.add(attributeValue) && checkSchema)
{
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/util/LDIFWriter.java b/opendj-server-legacy/src/main/java/org/opends/server/util/LDIFWriter.java
index 38d142f..e2d5ebe 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/util/LDIFWriter.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/util/LDIFWriter.java
@@ -37,9 +37,16 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.ldap.ByteSequence;
import org.forgerock.opendj.ldap.ByteString;
-import org.opends.server.tools.makeldif.TemplateEntry;
import org.forgerock.opendj.ldap.schema.AttributeType;
-import org.opends.server.types.*;
+import org.opends.server.tools.makeldif.TemplateEntry;
+import org.opends.server.types.Attribute;
+import org.opends.server.types.DN;
+import org.opends.server.types.Entry;
+import org.opends.server.types.LDIFExportConfig;
+import org.opends.server.types.Modification;
+import org.opends.server.types.RDN;
+import org.opends.server.types.RawAttribute;
+import org.opends.server.types.RawModification;
import static org.forgerock.util.Reject.*;
import static org.opends.server.util.StaticUtils.*;
@@ -434,13 +441,7 @@
{
for (Attribute a : entry.getUserAttribute(attrType))
{
- StringBuilder attrName = new StringBuilder(a.getName());
- for (String o : a.getOptions())
- {
- attrName.append(";");
- attrName.append(o);
- }
-
+ StringBuilder attrName = new StringBuilder(a.getNameWithOptions());
for (ByteString v : a)
{
writeAttribute(attrName, v, writer, wrapLines, wrapColumn);
@@ -506,12 +507,7 @@
{
StringBuilder attrName = new StringBuilder();
attrName.append("# ");
- attrName.append(a.getName());
- for (String o : a.getOptions())
- {
- attrName.append(";");
- attrName.append(o);
- }
+ attrName.append(a.getNameWithOptions());
for (ByteString v : a)
{
@@ -571,13 +567,7 @@
Modification m = iterator.next();
Attribute a = m.getAttribute();
- StringBuilder nameBuffer = new StringBuilder(a.getName());
- for (String o : a.getOptions())
- {
- nameBuffer.append(";");
- nameBuffer.append(o);
- }
- String name = nameBuffer.toString();
+ String name = a.getNameWithOptions();
StringBuilder modTypeLine = new StringBuilder();
modTypeLine.append(m.getModificationType());
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/protocols/ldap/LDAPBinaryOptionTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/protocols/ldap/LDAPBinaryOptionTestCase.java
index 733bce1..9cfa5f8 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/protocols/ldap/LDAPBinaryOptionTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/protocols/ldap/LDAPBinaryOptionTestCase.java
@@ -22,7 +22,7 @@
*
*
* Copyright 2008 Sun Microsystems, Inc.
- * Portions Copyright 2012-2015 ForgeRock AS
+ * Portions Copyright 2012-2016 ForgeRock AS
*/
package org.opends.server.protocols.ldap;
@@ -209,7 +209,7 @@
List<Attribute> attrs = e.getAttribute("usercertificate");
Attribute a = attrs.get(0);
assertNotNull(a);
- assertTrue(a.getOptions().contains("binary"));
+ assertThat(a.getAttributeDescription().getOptions()).contains("binary");
}
/**
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/types/AttributeBuilderTest.java b/opendj-server-legacy/src/test/java/org/opends/server/types/AttributeBuilderTest.java
index 119e26e..ce10e66 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/types/AttributeBuilderTest.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/types/AttributeBuilderTest.java
@@ -1127,8 +1127,7 @@
builder.setOptions(Arrays.asList(threeOptions));
Attribute a = builder.toAttribute();
- Assert.assertTrue(a.getOptions().containsAll(Arrays.asList(threeOptions)));
- Assert.assertEquals(a.getOptions().size(), threeOptions.length);
+ assertThat(a.getAttributeDescription().getOptions()).containsOnly(threeOptions);
}
@@ -1364,7 +1363,7 @@
/**
- * Tests {@link Attribute#getOptions()}.
+ * Tests {@link AttributeDescription#getOptions()}.
*
* @param testCase
* Test case index (useful for debugging).
@@ -1384,22 +1383,7 @@
AttributeType type, String name, String[] options, String[] values)
throws Exception
{
- // Check getOptions().
- Set<String> s = a.getOptions();
-
- Assert.assertEquals(s.size(), options.length);
- Assert.assertTrue(s.containsAll(Arrays.asList(options)));
-
- try
- {
- // The option set must be unmodifiable.
- s.add("xxxx");
- Assert.fail("getOptions() returned a modifiable option set");
- }
- catch (UnsupportedOperationException e)
- {
- // Expected exception.
- }
+ assertThat(a.getAttributeDescription().getOptions()).containsOnly(options);
}
--
Gitblit v1.10.0