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