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/NewObjectClassPanel.java |   25 +++++++++++++++----------
 1 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewObjectClassPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewObjectClassPanel.java
index f90a3c8..99601c3 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewObjectClassPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewObjectClassPanel.java
@@ -18,6 +18,7 @@
 
 import static org.opends.messages.AdminToolMessages.*;
 import static org.opends.server.util.CollectionUtils.*;
+import static org.opends.server.util.SchemaUtils.*;
 
 import java.awt.Component;
 import java.awt.GridBagConstraints;
@@ -49,7 +50,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.event.ConfigurationChangeEvent;
 import org.opends.guitools.controlpanel.event.ConfigurationElementCreatedListener;
@@ -63,7 +66,6 @@
 import org.opends.guitools.controlpanel.ui.renderer.SchemaElementComboBoxCellRenderer;
 import org.opends.guitools.controlpanel.util.Utilities;
 import org.opends.server.config.ConfigConstants;
-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;
@@ -678,15 +680,18 @@
 
   private ObjectClass getObjectClass()
   {
-    return new ObjectClass("", getText(name), 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 ObjectClassType getObjectClassType()

--
Gitblit v1.10.0