From 8b3cd28204e15e0a98ce038b355f100cd7c44e3c Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <capponi.nicolas@gmail.com>
Date: Thu, 28 Jan 2016 08:28:20 +0000
Subject: [PATCH] OPENDJ-1632 (PR-201) Migrate AttributeType in one shot

---
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/CustomAttributePanel.java |   65 ++++++++++++++++----------------
 1 files changed, 32 insertions(+), 33 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/CustomAttributePanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/CustomAttributePanel.java
index 29775c8..5f5587f 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/CustomAttributePanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/CustomAttributePanel.java
@@ -22,13 +22,12 @@
  *
  *
  *      Copyright 2008-2010 Sun Microsystems, Inc.
- *      Portions Copyright 2011-2015 ForgeRock AS
+ *      Portions Copyright 2011-2016 ForgeRock AS
  */
 package org.opends.guitools.controlpanel.ui;
 
 import static org.opends.guitools.controlpanel.util.Utilities.*;
 import static org.opends.messages.AdminToolMessages.*;
-import static org.opends.server.types.CommonSchemaElements.*;
 import static org.opends.server.util.CollectionUtils.*;
 
 import java.awt.Component;
@@ -75,8 +74,10 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
+import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.forgerock.opendj.ldap.schema.AttributeUsage;
 import org.forgerock.opendj.ldap.schema.MatchingRule;
+import org.forgerock.opendj.ldap.schema.SchemaBuilder;
 import org.forgerock.opendj.ldap.schema.Syntax;
 import org.opends.guitools.controlpanel.datamodel.ServerDescriptor;
 import org.opends.guitools.controlpanel.event.ConfigurationChangeEvent;
@@ -91,7 +92,7 @@
 import org.opends.guitools.controlpanel.ui.renderer.SchemaElementComboBoxCellRenderer;
 import org.opends.guitools.controlpanel.util.LowerCaseComparator;
 import org.opends.guitools.controlpanel.util.Utilities;
-import org.opends.server.types.AttributeType;
+import org.opends.server.schema.SomeSchemaElement;
 import org.opends.server.types.ObjectClass;
 import org.opends.server.types.Schema;
 import org.opends.server.util.ServerConstants;
@@ -529,11 +530,7 @@
   void update(AttributeType attr, Schema schema)
   {
     ignoreChangeEvents = true;
-    String n = attr.getPrimaryName();
-    if (n == null)
-    {
-      n = "";
-    }
+    String n = attr.getNameOrOID();
     titlePanel.setDetails(LocalizableMessage.raw(n));
     name.setText(n);
 
@@ -554,14 +551,15 @@
     lastAliases.addAll(someAliases);
     this.aliases.setText(Utilities.getStringFromCollection(someAliases, ", "));
 
-    String sOrigin = Utilities.getOrigin(attr);
+    SomeSchemaElement element = new SomeSchemaElement(attr);
+    String sOrigin = Utilities.getOrigin(element);
     if (sOrigin == null)
     {
       sOrigin = "";
     }
     origin.setText(sOrigin);
 
-    String sFile = getSchemaFile(attr);
+    String sFile = element.getSchemaFile();
     if (sFile == null)
     {
       sFile = "";
@@ -643,9 +641,8 @@
 
       LowerCaseComparator lowerCase = new LowerCaseComparator();
       Map<String, Syntax> syntaxNameMap = new TreeMap<>(lowerCase);
-      for (String key : schema.getSyntaxes().keySet())
+      for (Syntax syntax : schema.getSyntaxes())
       {
-        Syntax syntax = schema.getSyntax(key);
         String name = syntax.getName();
         if (name == null)
         {
@@ -658,9 +655,8 @@
       updateComboBoxModel(newSyntaxes, (DefaultComboBoxModel) syntax.getModel());
 
       Map<String, AttributeType> attributeNameMap = new TreeMap<>(lowerCase);
-      for (String key : schema.getAttributeTypes().keySet())
+      for (AttributeType attr : schema.getAttributeTypes())
       {
-        AttributeType attr = schema.getAttributeType(key);
         attributeNameMap.put(attr.getNameOrOID(), attr);
       }
       List<Object> newParents = new ArrayList<>();
@@ -669,17 +665,16 @@
       updateComboBoxModel(newParents, (DefaultComboBoxModel) parent.getModel());
 
       final Map<String, MatchingRule> matchingRuleNameMap = new TreeMap<>(lowerCase);
-      for (String key : schema.getMatchingRules().keySet())
+      for (MatchingRule rule : schema.getMatchingRules())
       {
-        MatchingRule rule = schema.getMatchingRule(key);
         matchingRuleNameMap.put(rule.getNameOrOID(), rule);
       }
 
       final List<MatchingRule> availableMatchingRules = new ArrayList<>(matchingRuleNameMap.values());
       JComboBox[] combos = {approximate, equality, ordering, substring};
-      for (JComboBox<LocalizableMessage> combo : combos)
+      for (JComboBox combo : combos)
       {
-        final DefaultComboBoxModel<LocalizableMessage> model = (DefaultComboBoxModel) combo.getModel();
+        final DefaultComboBoxModel model = (DefaultComboBoxModel) combo.getModel();
         final List<Object> el = new ArrayList<Object>(availableMatchingRules);
         el.add(0, model.getSize() != 0 ? model.getElementAt(0) : NO_MATCHING_RULE);
         updateComboBoxModel(el, model);
@@ -761,7 +756,7 @@
     TreeSet<String> dependentClasses = new TreeSet<>();
     if (schema != null)
     {
-      for (AttributeType attr : schema.getAttributeTypes().values())
+      for (AttributeType attr : schema.getAttributeTypes())
       {
         if (attribute.equals(attr.getSuperiorType()))
         {
@@ -1100,20 +1095,24 @@
 
   private AttributeType getNewAttribute()
   {
-    return new AttributeType("", getAttributeName(),
-        getAllNames(),
-        getOID(),
-        getDescription(),
-        getSuperior(),
-        (Syntax)syntax.getSelectedItem(),
-        getMatchingRule(approximate),
-        getMatchingRule(equality),
-        getMatchingRule(ordering),
-        getMatchingRule(substring),
-        (AttributeUsage)usage.getSelectedItem(),
-        collective.isSelected(), nonModifiable.isSelected(),
-        obsolete.isSelected(), singleValued.isSelected(),
-        getExtraProperties());
+    return new SchemaBuilder().buildAttributeType(getOID())
+        .names(getAllNames())
+        .description(getDescription())
+        .superiorType(getSuperior().getNameOrOID())
+        .syntax(((Syntax) syntax.getSelectedItem()).getOID())
+        .approximateMatchingRule(getMatchingRule(approximate).getNameOrOID())
+        .equalityMatchingRule(getMatchingRule(equality).getNameOrOID())
+        .orderingMatchingRule(getMatchingRule(ordering).getNameOrOID())
+        .substringMatchingRule(getMatchingRule(substring).getNameOrOID())
+        .usage((AttributeUsage)usage.getSelectedItem())
+        .collective(collective.isSelected())
+        .obsolete(obsolete.isSelected())
+        .noUserModification(nonModifiable.isSelected())
+        .singleValue(singleValued.isSelected())
+        .extraProperties(getExtraProperties())
+        .addToSchema()
+      .toSchema()
+      .getAttributeType(getOID());
   }
 
   private void updateDefaultMatchingRuleNames()

--
Gitblit v1.10.0