From a7067bf75cd103dc367c912983ea14b7111306a4 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Mon, 30 May 2016 10:43:10 +0000
Subject: [PATCH] OPENDJ-2987 Fix construction of object classes in control panel

---
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/CustomObjectClassPanel.java |   27 +++++++++++++++------------
 1 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/CustomObjectClassPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/CustomObjectClassPanel.java
index 1a47d7a..2f33e7e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/CustomObjectClassPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/CustomObjectClassPanel.java
@@ -19,6 +19,7 @@
 import static org.opends.messages.AdminToolMessages.*;
 import static org.opends.server.types.CommonSchemaElements.*;
 import static org.opends.server.util.CollectionUtils.*;
+import static org.opends.server.util.SchemaUtils.*;
 
 import java.awt.Component;
 import java.awt.Container;
@@ -60,7 +61,9 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import org.forgerock.opendj.ldap.schema.AttributeType;
+import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.forgerock.opendj.ldap.schema.ObjectClassType;
+import org.forgerock.opendj.ldap.schema.SchemaBuilder;
 import org.opends.guitools.controlpanel.datamodel.ServerDescriptor;
 import org.opends.guitools.controlpanel.datamodel.SortableListModel;
 import org.opends.guitools.controlpanel.event.ConfigurationChangeEvent;
@@ -78,7 +81,6 @@
 import org.opends.guitools.controlpanel.ui.renderer.SchemaElementComboBoxCellRenderer;
 import org.opends.guitools.controlpanel.util.Utilities;
 import org.opends.server.schema.SomeSchemaElement;
-import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.opends.server.types.Schema;
 import org.opends.server.util.ServerConstants;
 import org.opends.server.util.StaticUtils;
@@ -962,17 +964,18 @@
 
   private ObjectClass getNewObjectClass()
   {
-    return new ObjectClass("",
-        getObjectClassName(),
-        getAllNames(),
-        getOID(),
-        getDescription(),
-        getObjectClassSuperiors(),
-        getRequiredAttributes(),
-        getOptionalAttributes(),
-        getObjectClassType(),
-        obsolete.isSelected(),
-        getExtraProperties());
+    return new SchemaBuilder(schema.getSchemaNG()).buildObjectClass(getOID())
+        .names(getAllNames())
+        .description(getDescription())
+        .superiorObjectClasses(getNameOrOIDsForOCs(getObjectClassSuperiors()))
+        .requiredAttributes(getNameOrOIDsForATs(getRequiredAttributes()))
+        .optionalAttributes(getNameOrOIDsForATs(getOptionalAttributes()))
+        .type(getObjectClassType())
+        .obsolete(obsolete.isSelected())
+        .extraProperties(getExtraProperties())
+        .addToSchema()
+        .toSchema()
+        .getObjectClass(getOID());
   }
 
   private void updateAttributes()

--
Gitblit v1.10.0