You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2013/08/24 21:51:17 UTC

svn commit: r1517189 - in /commons/proper/configuration/trunk/src: main/java/org/apache/commons/configuration/builder/ test/java/org/apache/commons/configuration/builder/

Author: oheger
Date: Sat Aug 24 19:51:16 2013
New Revision: 1517189

URL: http://svn.apache.org/r1517189
Log:
Added a property for the conversion handler to BasicBuilderProperties.

It is now possible to specify the ConversionHandler of a configuration when a
builder is used to create the configuration.

Modified:
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/BasicBuilderParameters.java
    commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/BasicBuilderProperties.java
    commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/TestBasicBuilderParameters.java

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/BasicBuilderParameters.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/BasicBuilderParameters.java?rev=1517189&r1=1517188&r2=1517189&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/BasicBuilderParameters.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/BasicBuilderParameters.java Sat Aug 24 19:51:16 2013
@@ -22,6 +22,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.commons.configuration.AbstractConfiguration;
+import org.apache.commons.configuration.convert.ConversionHandler;
 import org.apache.commons.configuration.convert.ListDelimiterHandler;
 import org.apache.commons.configuration.interpol.ConfigurationInterpolator;
 import org.apache.commons.configuration.interpol.InterpolatorSpecification;
@@ -77,6 +78,9 @@ public class BasicBuilderParameters impl
     /** The key for the <em>synchronizer</em> property. */
     private static final String PROP_SYNCHRONIZER = "synchronizer";
 
+    /** The key or the <em>conversionHandler</em> property. */
+    private static final String PROP_CONVERSION_HANDLER = "conversionHandler";
+
     /** The map for storing the current property values. */
     private Map<String, Object> properties;
 
@@ -225,6 +229,15 @@ public class BasicBuilderParameters impl
     }
 
     /**
+     * {@inheritDoc} This implementation stores the passed in
+     * {@code ConversionHandler} object in the internal parameters map.
+     */
+    public BasicBuilderParameters setConversionHandler(ConversionHandler handler)
+    {
+        return setProperty(PROP_CONVERSION_HANDLER, handler);
+    }
+
+    /**
      * Merges this object with the given parameters object. This method adds all
      * property values defined by the passed in parameters object to the
      * internal storage which are not already in. So properties already defined

Modified: commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/BasicBuilderProperties.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/BasicBuilderProperties.java?rev=1517189&r1=1517188&r2=1517189&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/BasicBuilderProperties.java (original)
+++ commons/proper/configuration/trunk/src/main/java/org/apache/commons/configuration/builder/BasicBuilderProperties.java Sat Aug 24 19:51:16 2013
@@ -20,6 +20,7 @@ import java.util.Collection;
 import java.util.Map;
 
 import org.apache.commons.configuration.AbstractConfiguration;
+import org.apache.commons.configuration.convert.ConversionHandler;
 import org.apache.commons.configuration.convert.ListDelimiterHandler;
 import org.apache.commons.configuration.interpol.ConfigurationInterpolator;
 import org.apache.commons.configuration.interpol.Lookup;
@@ -145,4 +146,15 @@ public interface BasicBuilderProperties<
      * @return a reference to this object for method chaining
      */
     T setSynchronizer(Synchronizer sync);
+
+    /**
+     * Sets the {@code ConversionHandler} object for this configuration. This
+     * object is responsible for all data type conversions required for
+     * accessing configuration properties in a specific target type. If this
+     * property is not set, a default {@code ConversionHandler} is used.
+     *
+     * @param handler the {@code ConversionHandler} to be used
+     * @return a reference to this object for method chaining
+     */
+    T setConversionHandler(ConversionHandler handler);
 }

Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/TestBasicBuilderParameters.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/TestBasicBuilderParameters.java?rev=1517189&r1=1517188&r2=1517189&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/TestBasicBuilderParameters.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/TestBasicBuilderParameters.java Sat Aug 24 19:51:16 2013
@@ -29,6 +29,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.commons.configuration.convert.ConversionHandler;
 import org.apache.commons.configuration.convert.ListDelimiterHandler;
 import org.apache.commons.configuration.interpol.ConfigurationInterpolator;
 import org.apache.commons.configuration.interpol.InterpolatorSpecification;
@@ -468,4 +469,18 @@ public class TestBasicBuilderParameters
         assertSame("Synchronizer not set", sync,
                 params.getParameters().get("synchronizer"));
     }
+
+    /**
+     * Tests whether a ConversionHandler can be set.
+     */
+    @Test
+    public void testSetConversionHandler()
+    {
+        ConversionHandler handler =
+                EasyMock.createMock(ConversionHandler.class);
+        EasyMock.replay(handler);
+        assertSame("Wrong result", params, params.setConversionHandler(handler));
+        assertSame("ConversionHandler not set", handler, params.getParameters()
+                .get("conversionHandler"));
+    }
 }