From 40c232bb1ea09338ddbc93f2be3db6b340575fba Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Fri, 01 Jul 2016 13:46:08 +0000
Subject: [PATCH] OPENDJ-3038 Remove CommonSchemaElements class and transform ServerSchemaElement to an utility class

---
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/Utilities.java |   80 ++++++++++++++++++++++------------------
 1 files changed, 44 insertions(+), 36 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/Utilities.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/Utilities.java
index 626d44e..1c10f6c 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/Utilities.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/Utilities.java
@@ -25,6 +25,7 @@
 import static org.opends.admin.ads.util.PreferredConnection.Type.*;
 import static org.opends.messages.AdminToolMessages.*;
 import static org.opends.quicksetup.Installation.*;
+import static org.opends.server.schema.ServerSchemaElement.*;
 
 import java.awt.Color;
 import java.awt.Component;
@@ -133,7 +134,6 @@
 import org.opends.server.core.LockFileManager;
 import org.opends.server.core.ServerContext;
 import org.opends.server.schema.SchemaConstants;
-import org.opends.server.schema.ServerSchemaElement;
 import org.opends.server.types.OpenDsException;
 import org.opends.server.types.Schema;
 import org.opends.server.util.SchemaUtils;
@@ -1995,14 +1995,14 @@
    * @return {@code true} if the provided schema element is part of the standard,
    *         {@code false} otherwise.
    */
-  public static boolean isStandard(ServerSchemaElement fileElement)
+  public static boolean isStandard(SchemaElement fileElement)
   {
-    final String fileName = fileElement.getSchemaFile();
+    final String fileName = getSchemaFile(fileElement);
     if (fileName != null)
     {
       return standardSchemaFileNames.contains(fileName) || fileName.toLowerCase().contains("-rfc");
     }
-    String xOrigin = fileElement.getOrigin();
+    String xOrigin = getOrigin(fileElement);
     if (xOrigin != null)
     {
       return standardSchemaOrigins.contains(xOrigin) || xOrigin.startsWith("RFC ") || xOrigin.startsWith("draft-");
@@ -2017,14 +2017,14 @@
    * @return {@code true} if the provided schema element is part of the configuration,
    *         {@code false} otherwise.
    */
-  public static boolean isConfiguration(ServerSchemaElement fileElement)
+  public static boolean isConfiguration(SchemaElement fileElement)
   {
-    String fileName = fileElement.getSchemaFile();
+    String fileName = getSchemaFile(fileElement);
     if (fileName != null)
     {
       return configurationSchemaFileNames.contains(fileName);
     }
-    String xOrigin = fileElement.getOrigin();
+    String xOrigin = getOrigin(fileElement);
     if (xOrigin != null)
     {
       return configurationSchemaOrigins.contains(xOrigin);
@@ -2816,9 +2816,9 @@
    *            Element to check.
    * @return {@code true} iff element is an attribute type.
    */
-  public static boolean isAttributeType(ServerSchemaElement element)
+  public static boolean isAttributeType(SchemaElement element)
   {
-    return element.asSchemaElement() instanceof AttributeType;
+    return element instanceof AttributeType;
   }
 
   /**
@@ -2829,7 +2829,7 @@
    *            Using any other schema element will return invalid result.
    * @return Either "attributeTypes" or "objectClasses"
    */
-  public static String getAttributeConfigName(ServerSchemaElement element)
+  public static String getAttributeConfigName(SchemaElement element)
   {
     return isAttributeType(element) ? ConfigConstants.ATTR_ATTRIBUTE_TYPES : ConfigConstants.ATTR_OBJECTCLASSES;
   }
@@ -2842,14 +2842,17 @@
    *            Using any other schema element will yield an exception.
    * @return Either "attributeTypes" or "objectClasses"
    */
-  public static String getElementNameOrOID(ServerSchemaElement element)
+  public static String getElementNameOrOID(SchemaElement element)
   {
-    SchemaElement elem = element.asSchemaElement();
-    if (elem instanceof AttributeType)
+    if (element instanceof AttributeType)
     {
-      return ((AttributeType) elem).getNameOrOID();
+      return ((AttributeType) element).getNameOrOID();
     }
-    return ((ObjectClass) elem).getNameOrOID();
+    else if (element instanceof ObjectClass)
+    {
+      return ((ObjectClass) element).getNameOrOID();
+    }
+    throw new RuntimeException("getElementNameOrOID() not implemented for element of type " + element.getClass());
   }
 
   /**
@@ -2860,14 +2863,17 @@
    *            Using any other schema element will yield an exception.
    * @return Either "attributeTypes" or "objectClasses"
    */
-  public static String getElementOID(ServerSchemaElement element)
+  public static String getElementOID(SchemaElement element)
   {
-    SchemaElement elem = element.asSchemaElement();
-    if (elem instanceof AttributeType)
+    if (element instanceof AttributeType)
     {
-      return ((AttributeType) elem).getOID();
+      return ((AttributeType) element).getOID();
     }
-    return ((ObjectClass) elem).getOID();
+    else if (element instanceof ObjectClass)
+    {
+      return ((ObjectClass) element).getOID();
+    }
+    throw new RuntimeException("getElementOID() not implemented for element of type " + element.getClass());
   }
 
   /**
@@ -2879,7 +2885,7 @@
    *            new superior type to use.
    * @return the new attribute type
    */
-  public static AttributeType updateAttributeTypeWithNewSuperiorType(AttributeType attributeType,
+  public static AttributeType getNewAttributeTypeWithNewSuperiorType(AttributeType attributeType,
       AttributeType newSuperiorType)
   {
     String superiorTypeOID = newSuperiorType != null ? newSuperiorType.getNameOrOID() : null;
@@ -2905,8 +2911,8 @@
    *          the value to set
    * @return the updated schema element
    */
-  public static ServerSchemaElement updateSchemaElementExtraPropertySingleValue(ServerContext serverContext,
-      ServerSchemaElement element, String property, String value)
+  public static SchemaElement updateSchemaElementExtraPropertySingleValue(ServerContext serverContext,
+      SchemaElement element, String property, String value)
   {
     List<String> values = value != null ? Arrays.asList(value) : null;
     return updateSchemaElementExtraPropertyMultiplesValues(serverContext, element, property, values);
@@ -2926,32 +2932,34 @@
    *          the list of values to set
    * @return the updated schema element
    */
-  public static ServerSchemaElement updateSchemaElementExtraPropertyMultiplesValues(ServerContext serverContext,
-      ServerSchemaElement element, String property, List<String> values)
+  public static SchemaElement updateSchemaElementExtraPropertyMultiplesValues(ServerContext serverContext,
+      SchemaElement element, String property, List<String> values)
   {
     org.forgerock.opendj.ldap.schema.Schema schemaNG = serverContext != null ?
         serverContext.getSchemaNG() : org.forgerock.opendj.ldap.schema.Schema.getDefaultSchema();
     SchemaBuilder schemaBuilder = new SchemaBuilder(schemaNG);
-    SchemaElement elem = element.asSchemaElement();
-    if (elem instanceof AttributeType)
+    if (element instanceof AttributeType)
     {
-       AttributeType attr = (AttributeType) elem;
+      AttributeType attr = (AttributeType) element;
       AttributeType.Builder builder =
           schemaBuilder.buildAttributeType(attr).removeExtraProperty(property, (String) null);
       if (values != null  && !values.isEmpty())
       {
         builder.extraProperties(property, values);
       }
-      return new ServerSchemaElement(builder.addToSchemaOverwrite().toSchema().getAttributeType(attr.getNameOrOID()));
+      return builder.addToSchemaOverwrite().toSchema().getAttributeType(attr.getNameOrOID());
     }
-    // It is an object class
-    ObjectClass oc = (ObjectClass) elem;
-    ObjectClass.Builder builder = schemaBuilder.buildObjectClass(oc).removeExtraProperty(property, (String) null);
-    if (values != null && !values.isEmpty())
+    else if (element instanceof ObjectClass)
     {
-      builder.extraProperties(property, values);
+      ObjectClass oc = (ObjectClass) element;
+      ObjectClass.Builder builder = schemaBuilder.buildObjectClass(oc).removeExtraProperty(property, (String) null);
+      if (values != null && !values.isEmpty())
+      {
+        builder.extraProperties(property, values);
+      }
+      return builder.addToSchemaOverwrite().toSchema().getObjectClass(oc.getNameOrOID());
     }
-    return new ServerSchemaElement(builder.addToSchemaOverwrite().toSchema().getObjectClass(oc.getNameOrOID()));
+    throw new RuntimeException("updateSchemaElementExtraPropertyMultiplesValues() not implemented for element of type "
+        + element.getClass());
   }
-
 }

--
Gitblit v1.10.0