From e114a899bbc0df59f5135f195d24797bf6c1b778 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Thu, 02 Jan 2014 09:33:43 +0000
Subject: [PATCH] Checkpoint commit for OPENDJ-1235 : Migrate configuration framework

---
 opendj-sdk/opendj-admin/src/main/java/org/opends/server/admin/client/spi/AbstractManagedObject.java |   19 +++++++++++++------
 1 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/opendj-sdk/opendj-admin/src/main/java/org/opends/server/admin/client/spi/AbstractManagedObject.java b/opendj-sdk/opendj-admin/src/main/java/org/opends/server/admin/client/spi/AbstractManagedObject.java
index 03cac45..3adbbc0 100644
--- a/opendj-sdk/opendj-admin/src/main/java/org/opends/server/admin/client/spi/AbstractManagedObject.java
+++ b/opendj-sdk/opendj-admin/src/main/java/org/opends/server/admin/client/spi/AbstractManagedObject.java
@@ -50,6 +50,7 @@
 import org.opends.server.admin.ManagedObjectPath;
 import org.opends.server.admin.OptionalRelationDefinition;
 import org.opends.server.admin.PropertyDefinition;
+import org.opends.server.admin.PropertyDefinitionsOptions;
 import org.opends.server.admin.PropertyIsMandatoryException;
 import org.opends.server.admin.PropertyIsReadOnlyException;
 import org.opends.server.admin.PropertyOption;
@@ -228,6 +229,9 @@
     // The managed object's properties.
     private final PropertySet properties;
 
+    /** Decoding options for property definitions values. */
+    private final PropertyDefinitionsOptions propertyDefOptions;
+
     /**
      * Creates a new abstract managed object.
      *
@@ -243,15 +247,17 @@
      *            committed).
      * @param namingPropertyDefinition
      *            Optional naming property definition.
+     * @param propertyDefOptions TODO
      */
     protected AbstractManagedObject(ManagedObjectDefinition<T, ? extends Configuration> d,
         ManagedObjectPath<T, ? extends Configuration> path, PropertySet properties, boolean existsOnServer,
-        PropertyDefinition<?> namingPropertyDefinition) {
+        PropertyDefinition<?> namingPropertyDefinition, PropertyDefinitionsOptions propertyDefOptions) {
         this.definition = d;
         this.path = path;
         this.properties = properties;
         this.existsOnServer = existsOnServer;
         this.namingPropertyDefinition = namingPropertyDefinition;
+        this.propertyDefOptions = propertyDefOptions;
     }
 
     /**
@@ -346,9 +352,9 @@
         PropertyDefinition<?> pd = r.getNamingPropertyDefinition();
         if (pd != null) {
             try {
-                pd.decodeValue(name);
+                pd.decodeValue(name, propertyDefOptions);
             } catch (IllegalPropertyValueStringException e) {
-                throw new IllegalManagedObjectNameException(name, pd);
+                throw new IllegalManagedObjectNameException(name, pd, propertyDefOptions);
             }
         }
 
@@ -664,7 +670,7 @@
             throw new PropertyIsReadOnlyException(pd);
         }
 
-        properties.setPropertyValues(pd, values);
+        properties.setPropertyValues(pd, values, propertyDefOptions);
 
         // If this is a naming property then update the name.
         if (pd.equals(namingPropertyDefinition)) {
@@ -809,8 +815,9 @@
 
         // Set the naming property if there is one.
         if (namingPropertyDefinition != null) {
-            P value = namingPropertyDefinition.decodeValue(name);
-            childProperties.setPropertyValues(namingPropertyDefinition, Collections.singleton(value));
+            P value = namingPropertyDefinition.decodeValue(name, propertyDefOptions);
+            childProperties.setPropertyValues(namingPropertyDefinition, Collections.singleton(value),
+                propertyDefOptions);
         }
 
         return newInstance(d, p, childProperties, false, namingPropertyDefinition);

--
Gitblit v1.10.0