From d46701cdbecec6f6c10f57432f3e6a484752f42c Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Sat, 18 Jan 2014 00:55:24 +0000
Subject: [PATCH] Simplify config framework exception hierarchy by removing and pulling up the following exceptions:

---
 opendj3-server-dev/src/server/org/opends/server/admin/server/ServerManagementContext.java |   59 ++++++++++++++++++++++++++---------------------------------
 1 files changed, 26 insertions(+), 33 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/admin/server/ServerManagementContext.java b/opendj3-server-dev/src/server/org/opends/server/admin/server/ServerManagementContext.java
index 4d21950..50dc83a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/admin/server/ServerManagementContext.java
+++ b/opendj3-server-dev/src/server/org/opends/server/admin/server/ServerManagementContext.java
@@ -30,6 +30,7 @@
 
 
 import static org.opends.messages.AdminMessages.*;
+import static org.opends.server.admin.PropertyException.*;
 import static org.opends.server.loggers.debug.DebugLogger.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -51,22 +52,17 @@
 import org.opends.server.admin.AliasDefaultBehaviorProvider;
 import org.opends.server.admin.Configuration;
 import org.opends.server.admin.ConfigurationClient;
-import org.opends.server.admin.DefaultBehaviorException;
+import org.opends.server.admin.PropertyException;
 import org.opends.server.admin.DefaultBehaviorProviderVisitor;
 import org.opends.server.admin.DefinedDefaultBehaviorProvider;
 import org.opends.server.admin.DefinitionDecodingException;
 import org.opends.server.admin.DefinitionResolver;
-import org.opends.server.admin.IllegalPropertyValueException;
-import org.opends.server.admin.IllegalPropertyValueStringException;
 import org.opends.server.admin.InstantiableRelationDefinition;
 import org.opends.server.admin.LDAPProfile;
 import org.opends.server.admin.ManagedObjectDefinition;
 import org.opends.server.admin.ManagedObjectPath;
 import org.opends.server.admin.PropertyDefinition;
 import org.opends.server.admin.PropertyDefinitionVisitor;
-import org.opends.server.admin.PropertyException;
-import org.opends.server.admin.PropertyIsMandatoryException;
-import org.opends.server.admin.PropertyIsSingleValuedException;
 import org.opends.server.admin.PropertyNotFoundException;
 import org.opends.server.admin.PropertyOption;
 import org.opends.server.admin.Reference;
@@ -74,7 +70,6 @@
 import org.opends.server.admin.RelativeInheritedDefaultBehaviorProvider;
 import org.opends.server.admin.SetRelationDefinition;
 import org.opends.server.admin.UndefinedDefaultBehaviorProvider;
-import org.opends.server.admin.UnknownPropertyDefinitionException;
 import org.opends.server.admin.DefinitionDecodingException.Reason;
 import org.opends.server.admin.std.meta.RootCfgDefn;
 import org.opends.server.admin.std.server.RootCfg;
@@ -108,7 +103,7 @@
 
     // Any exception that occurred whilst retrieving inherited default
     // values.
-    private DefaultBehaviorException exception = null;
+    private PropertyException exception = null;
 
     // Optional new configuration entry which does not yet exist in
     // the configuration back-end.
@@ -137,7 +132,7 @@
       try {
         return getInheritedProperty(d.getManagedObjectPath(), d
             .getManagedObjectDefinition(), d.getPropertyName());
-      } catch (DefaultBehaviorException e) {
+      } catch (PropertyException e) {
         exception = e;
         return Collections.emptySet();
       }
@@ -165,8 +160,8 @@
       for (String stringValue : stringValues) {
         try {
           values.add(nextProperty.decodeValue(stringValue));
-        } catch (IllegalPropertyValueStringException e) {
-          exception = new DefaultBehaviorException(nextProperty, e);
+        } catch (PropertyException e) {
+          exception = defaultBehaviorException(nextProperty, e);
           break;
         }
       }
@@ -184,7 +179,7 @@
       try {
         return getInheritedProperty(d.getManagedObjectPath(nextPath), d
             .getManagedObjectDefinition(), d.getPropertyName());
-      } catch (DefaultBehaviorException e) {
+      } catch (PropertyException e) {
         exception = e;
         return Collections.emptySet();
       }
@@ -204,7 +199,7 @@
 
     // Find the default values for the next path/property.
     private Collection<T> find(ManagedObjectPath<?, ?> p,
-        PropertyDefinition<T> pd) throws DefaultBehaviorException {
+        PropertyDefinition<T> pd) throws PropertyException {
       nextPath = p;
       nextProperty = pd;
 
@@ -216,8 +211,8 @@
       }
 
       if (values.size() > 1 && !pd.hasOption(PropertyOption.MULTI_VALUED)) {
-        throw new DefaultBehaviorException(pd,
-            new PropertyIsSingleValuedException(pd));
+        throw PropertyException.defaultBehaviorException(pd,
+            PropertyException.propertyIsSingleValuedException(pd));
       }
 
       return values;
@@ -229,13 +224,13 @@
     @SuppressWarnings("unchecked")
     private Collection<T> getInheritedProperty(ManagedObjectPath target,
         AbstractManagedObjectDefinition<?, ?> d, String propertyName)
-        throws DefaultBehaviorException {
+        throws PropertyException {
       // First check that the requested type of managed object
       // corresponds to the path.
       AbstractManagedObjectDefinition<?, ?> supr = target
           .getManagedObjectDefinition();
       if (!supr.isParentOf(d)) {
-        throw new DefaultBehaviorException(
+        throw PropertyException.defaultBehaviorException(
             nextProperty, new DefinitionDecodingException(supr,
                 Reason.WRONG_TYPE_INFORMATION));
       }
@@ -286,15 +281,13 @@
           return pvalues;
         }
       } catch (DefinitionDecodingException e) {
-        throw new DefaultBehaviorException(pd1, e);
+        throw PropertyException.defaultBehaviorException(pd1, e);
       } catch (PropertyNotFoundException e) {
-        throw new DefaultBehaviorException(pd1, e);
-      } catch (IllegalPropertyValueException e) {
-        throw new DefaultBehaviorException(pd1, e);
-      } catch (IllegalPropertyValueStringException e) {
-        throw new DefaultBehaviorException(pd1, e);
+        throw PropertyException.defaultBehaviorException(pd1, e);
+      } catch (PropertyException e) {
+        throw PropertyException.defaultBehaviorException(pd1, e);
       } catch (ConfigException e) {
-        throw new DefaultBehaviorException(pd1, e);
+        throw PropertyException.defaultBehaviorException(pd1, e);
       }
     }
   }
@@ -346,12 +339,12 @@
      * @param value
      *          The LDAP string representation.
      * @return Returns the decoded LDAP value.
-     * @throws IllegalPropertyValueStringException
+     * @throws PropertyException
      *           If the property value could not be decoded because it
      *           was invalid.
      */
     public static <PD> PD decode(PropertyDefinition<PD> pd,
-        AttributeValue value) throws IllegalPropertyValueStringException {
+        AttributeValue value) throws PropertyException {
       String s = value.getValue().toString();
       return pd.castValue(pd.accept(new ValueDecoder(), s));
     }
@@ -378,7 +371,7 @@
             .getRelationDefinition(), p);
         return reference.getName();
       } catch (IllegalArgumentException e) {
-        throw new IllegalPropertyValueStringException(d, p);
+        throw PropertyException.illegalPropertyValueException(d, p);
       }
     }
 
@@ -389,7 +382,7 @@
      */
     @Override
     public <T> Object visitUnknown(PropertyDefinition<T> d, String p)
-        throws UnknownPropertyDefinitionException {
+        throws PropertyException {
       // By default the property definition's decoder will do.
       return d.decodeValue(p);
     }
@@ -867,7 +860,7 @@
       for (AttributeValue value : values) {
         try {
           pvalues.add(ValueDecoder.decode(pd, value));
-        } catch (IllegalPropertyValueStringException e) {
+        } catch (PropertyException e) {
           exception = e;
         }
       }
@@ -875,14 +868,14 @@
       // No values defined so get the defaults.
       try {
         pvalues.addAll(getDefaultValues(path, pd, newConfigEntry));
-      } catch (DefaultBehaviorException e) {
+      } catch (PropertyException e) {
         exception = e;
       }
     }
 
     if (pvalues.size() > 1 && !pd.hasOption(PropertyOption.MULTI_VALUED)) {
       // This exception takes precedence over previous exceptions.
-      exception = new PropertyIsSingleValuedException(pd);
+      exception = PropertyException.propertyIsSingleValuedException(pd);
       T value = pvalues.first();
       pvalues.clear();
       pvalues.add(value);
@@ -891,7 +884,7 @@
     if (pvalues.isEmpty() && pd.hasOption(PropertyOption.MANDATORY)) {
       // The values maybe empty because of a previous exception.
       if (exception == null) {
-        exception = new PropertyIsMandatoryException(pd);
+        exception = PropertyException.propertyIsMandatoryException(pd);
       }
     }
 
@@ -936,7 +929,7 @@
   // Get the default values for the specified property.
   private <T> Collection<T> getDefaultValues(ManagedObjectPath<?, ?> p,
       PropertyDefinition<T> pd, ConfigEntry newConfigEntry)
-      throws DefaultBehaviorException {
+      throws PropertyException {
     DefaultValueFinder<T> v = new DefaultValueFinder<T>(newConfigEntry);
     return v.find(p, pd);
   }

--
Gitblit v1.10.0