From d366a5db9c1477c823758862268dd493dbbcc936 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 07 Jun 2016 13:49:03 +0000
Subject: [PATCH] OPENDJ-3037 inlined DirectoryServer.getTopObjectClass() and getObjectClassAttributeType()
---
opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFDiff.java | 85 ++++++++++++++++++++----------------------
1 files changed, 40 insertions(+), 45 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFDiff.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFDiff.java
index 629180f..28053e4 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFDiff.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFDiff.java
@@ -16,6 +16,16 @@
*/
package org.opends.server.tools;
+import static com.forgerock.opendj.cli.CommonArguments.*;
+import static com.forgerock.opendj.cli.Utils.*;
+
+import static org.forgerock.opendj.ldap.ModificationType.*;
+import static org.forgerock.opendj.ldap.schema.CoreSchema.*;
+import static org.opends.messages.ToolMessages.*;
+import static org.opends.server.protocols.ldap.LDAPResultCode.*;
+import static org.opends.server.util.CollectionUtils.*;
+import static org.opends.server.util.ServerConstants.*;
+
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
@@ -34,8 +44,8 @@
import org.forgerock.i18n.LocalizedIllegalArgumentException;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.DN;
-import org.forgerock.opendj.ldap.ModificationType;
import org.forgerock.opendj.ldap.schema.AttributeType;
+import org.forgerock.opendj.ldap.schema.ObjectClass;
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.DirectoryServer.DirectoryServerVersionHandler;
import org.opends.server.loggers.JDKLogging;
@@ -47,7 +57,6 @@
import org.opends.server.types.LDIFImportConfig;
import org.opends.server.types.Modification;
import org.opends.server.types.NullOutputStream;
-import org.forgerock.opendj.ldap.schema.ObjectClass;
import org.opends.server.util.LDIFReader;
import org.opends.server.util.LDIFWriter;
import org.opends.server.util.StaticUtils;
@@ -57,14 +66,6 @@
import com.forgerock.opendj.cli.BooleanArgument;
import com.forgerock.opendj.cli.StringArgument;
-import static com.forgerock.opendj.cli.Utils.*;
-import static com.forgerock.opendj.cli.CommonArguments.*;
-
-import static org.opends.messages.ToolMessages.*;
-import static org.opends.server.protocols.ldap.LDAPResultCode.*;
-import static org.opends.server.util.CollectionUtils.*;
-import static org.opends.server.util.ServerConstants.*;
-
/**
* This class provides a program that may be used to determine the differences
* between two LDIF files, generating the output in LDIF change format. There
@@ -755,29 +756,13 @@
if (!sourceClasses.isEmpty())
{
// Whatever is left must have been deleted.
- AttributeType attrType = DirectoryServer.getObjectClassAttributeType();
- AttributeBuilder builder = new AttributeBuilder(attrType);
- for (ObjectClass oc : sourceClasses)
- {
- builder.add(oc.getNameOrOID());
- }
-
- modifications.add(new Modification(ModificationType.DELETE, builder
- .toAttribute()));
+ modifications.add(new Modification(DELETE, toObjectClassAttribute(sourceClasses)));
}
if (! targetClasses.isEmpty())
{
// Whatever is left must have been added.
- AttributeType attrType = DirectoryServer.getObjectClassAttributeType();
- AttributeBuilder builder = new AttributeBuilder(attrType);
- for (ObjectClass oc : targetClasses)
- {
- builder.add(oc.getNameOrOID());
- }
-
- modifications.add(new Modification(ModificationType.ADD, builder
- .toAttribute()));
+ modifications.add(new Modification(ADD, toObjectClassAttribute(targetClasses)));
}
@@ -798,7 +783,7 @@
// value individually.
for (Attribute a : sourceAttrs)
{
- modifications.add(new Modification(ModificationType.DELETE, a));
+ modifications.add(new Modification(DELETE, a));
}
}
else
@@ -824,28 +809,22 @@
if (targetAttr == null)
{
- // The attribute doesn't exist in the target list, so it has been
- // deleted.
- modifications.add(new Modification(ModificationType.DELETE,
- sourceAttr));
+ // The attribute doesn't exist in the target list, so it has been deleted.
+ modifications.add(new Modification(DELETE, sourceAttr));
}
else
{
// Compare the values.
- AttributeBuilder addedValuesBuilder = new AttributeBuilder(targetAttr);
- addedValuesBuilder.removeAll(sourceAttr);
- Attribute addedValues = addedValuesBuilder.toAttribute();
+ Attribute addedValues = minusAttribute(targetAttr, sourceAttr);
if (!addedValues.isEmpty())
{
- modifications.add(new Modification(ModificationType.ADD, addedValues));
+ modifications.add(new Modification(ADD, addedValues));
}
- AttributeBuilder deletedValuesBuilder = new AttributeBuilder(sourceAttr);
- deletedValuesBuilder.removeAll(targetAttr);
- Attribute deletedValues = deletedValuesBuilder.toAttribute();
+ Attribute deletedValues = minusAttribute(sourceAttr, targetAttr);
if (!deletedValues.isEmpty())
{
- modifications.add(new Modification(ModificationType.DELETE, deletedValues));
+ modifications.add(new Modification(DELETE, deletedValues));
}
}
}
@@ -854,7 +833,7 @@
// Any remaining target attributes have been added.
for (Attribute targetAttr: targetAttrs)
{
- modifications.add(new Modification(ModificationType.ADD, targetAttr));
+ modifications.add(new Modification(ADD, targetAttr));
}
}
}
@@ -862,10 +841,9 @@
// Any remaining target attribute types have been added.
for (AttributeType type : targetEntry.getUserAttributes().keySet())
{
- List<Attribute> targetAttrs = targetEntry.getUserAttribute(type);
- for (Attribute a : targetAttrs)
+ for (Attribute a : targetEntry.getUserAttribute(type))
{
- modifications.add(new Modification(ModificationType.ADD, a));
+ modifications.add(new Modification(ADD, a));
}
}
@@ -921,4 +899,21 @@
return true;
}
+
+ private static Attribute toObjectClassAttribute(Collection<ObjectClass> objectClasses)
+ {
+ AttributeBuilder builder = new AttributeBuilder(getObjectClassAttributeType());
+ for (ObjectClass oc : objectClasses)
+ {
+ builder.add(oc.getNameOrOID());
+ }
+ return builder.toAttribute();
+ }
+
+ private static Attribute minusAttribute(Attribute sourceAttr, Attribute removeAttr)
+ {
+ AttributeBuilder builder = new AttributeBuilder(sourceAttr);
+ builder.removeAll(removeAttr);
+ return builder.toAttribute();
+ }
}
--
Gitblit v1.10.0