From dee3040496389ff70cdf1cec40422284d9ca62c5 Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Tue, 09 Jun 2015 10:38:15 +0000
Subject: [PATCH] OPENDJ-2092 OPENDJ-1759 New Schema elements GUI

---
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/ServerDescriptor.java |   74 +++++++++++++++++++++---------------
 1 files changed, 43 insertions(+), 31 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/ServerDescriptor.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/ServerDescriptor.java
index 707552e..ab4d60a 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/ServerDescriptor.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/ServerDescriptor.java
@@ -555,40 +555,52 @@
       return false;
     }
 
-    // Just compare exhaustively objectclasses and attributes.
-    Map<String, AttributeType> attrs1 = schema1.getAttributeTypes();
-    Map<String, AttributeType> attrs2 = schema2.getAttributeTypes();
-    if (attrs1.size() == attrs2.size())
-    {
-      for (String name : attrs1.keySet())
-      {
-        AttributeType attr1 = attrs1.get(name);
-        AttributeType attr2 = attrs2.get(name);
-        if (attr2 == null && !areAttributesEqual(attr1, attr2))
-        {
-          return false;
-        }
-      }
-    }
-
-    Map<String, ObjectClass> ocs1 = schema1.getObjectClasses();
-    Map<String, ObjectClass> ocs2 = schema2.getObjectClasses();
-    if (ocs1.size() == ocs2.size())
-    {
-      for (String name : ocs1.keySet())
-      {
-        ObjectClass oc1 = ocs1.get(name);
-        ObjectClass oc2 = ocs2.get(name);
-        if (oc2 == null || !areObjectClassesEqual(oc1, oc2))
-        {
-          return false;
-        }
-      }
-    }
-    return areEqual(schema1.getMatchingRules(), schema2.getMatchingRules())
+    return areAttributeTypesEqual(schema1, schema2)
+        && areObjectClassesEqual(schema1, schema2)
+        && areEqual(schema1.getMatchingRules(), schema2.getMatchingRules())
         && areEqual(schema1.getSyntaxes(), schema2.getSyntaxes());
   }
 
+  private static boolean areAttributeTypesEqual(Schema schema1, Schema schema2)
+  {
+    final Map<String, AttributeType> attrs1 = schema1.getAttributeTypes();
+    final Map<String, AttributeType> attrs2 = schema2.getAttributeTypes();
+    if (attrs1.size() != attrs2.size())
+    {
+      return false;
+    }
+    for (String name : attrs1.keySet())
+    {
+      AttributeType attr1 = attrs1.get(name);
+      AttributeType attr2 = attrs2.get(name);
+      if (attr2 == null && !areAttributesEqual(attr1, attr2))
+      {
+        return false;
+      }
+    }
+    return true;
+  }
+
+  private static boolean areObjectClassesEqual(Schema schema1, Schema schema2)
+  {
+    final Map<String, ObjectClass> ocs1 = schema1.getObjectClasses();
+    final Map<String, ObjectClass> ocs2 = schema2.getObjectClasses();
+    if (ocs1.size() != ocs2.size())
+    {
+      return false;
+    }
+    for (String name : ocs1.keySet())
+    {
+      ObjectClass oc1 = ocs1.get(name);
+      ObjectClass oc2 = ocs2.get(name);
+      if (oc2 == null || !areObjectClassesEqual(oc1, oc2))
+      {
+        return false;
+      }
+    }
+    return true;
+  }
+
   /**
    * Method used to compare attributes defined in the schema.
    * Returns <CODE>true</CODE> if the two schema attributes are equal and

--
Gitblit v1.10.0