You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by th...@apache.org on 2011/09/15 12:48:21 UTC

svn commit: r1171046 - /cocoon/cocoon3/trunk/cocoon-optional/src/main/java/org/apache/cocoon/pipeline/components/parameters/Parameters.java

Author: thorsten
Date: Thu Sep 15 10:48:21 2011
New Revision: 1171046

URL: http://svn.apache.org/viewvc?rev=1171046&view=rev
Log:
Extending the class which is a replacement for the former avalon parameters.

Modified:
    cocoon/cocoon3/trunk/cocoon-optional/src/main/java/org/apache/cocoon/pipeline/components/parameters/Parameters.java

Modified: cocoon/cocoon3/trunk/cocoon-optional/src/main/java/org/apache/cocoon/pipeline/components/parameters/Parameters.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-optional/src/main/java/org/apache/cocoon/pipeline/components/parameters/Parameters.java?rev=1171046&r1=1171045&r2=1171046&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-optional/src/main/java/org/apache/cocoon/pipeline/components/parameters/Parameters.java (original)
+++ cocoon/cocoon3/trunk/cocoon-optional/src/main/java/org/apache/cocoon/pipeline/components/parameters/Parameters.java Thu Sep 15 10:48:21 2011
@@ -17,13 +17,14 @@
 package org.apache.cocoon.pipeline.components.parameters;
 
 import java.util.Map;
+import java.util.Set;
 
 public class Parameters {
 
     private Map<String, ? extends Object> values;
 
     public Parameters(Map<String, ? extends Object> configuration) {
-        this.values = configuration;
+        values = configuration;
     }
 
     public int getAsInteger(String key, int defaultValue) {
@@ -61,4 +62,64 @@ public class Parameters {
 
         return Long.valueOf((String) value);
     }
+
+    public Object getParameter(String name, Object defaultValue) {
+        if (name == null) {
+            return defaultValue;
+        }
+
+        final Object test = this.values.get(name);
+
+        if (test == null) {
+            return defaultValue;
+        } else {
+            return test;
+        }
+    }
+
+    public boolean getParameterAsBoolean(final String name,
+            final boolean defaultValue) {
+        final String value = (String) getParameter(name, null);
+        if (value == null) {
+            return defaultValue;
+        }
+        if (value.equalsIgnoreCase("true")) {
+            return true;
+        } else if (value.equalsIgnoreCase("false")) {
+            return false;
+        } else {
+            return defaultValue;
+        }
+    }
+
+    public Parameters merge(final Parameters other) {
+        for (String name :  other.keySet()) {
+            Object value = null;
+            try {
+                value = other.getParameter(name, null);
+            } catch (final Exception pe) {
+                value = null;
+            }
+            setParameter(name, value);
+        }
+        
+        return this;
+    }
+
+    private  Set<String> keySet() {
+        return this.values.keySet();
+    }
+
+    @SuppressWarnings("unchecked")
+    public String setParameter(String name, Object value) {
+        if (null == name) {
+            return null;
+        }
+        if (null == value) {
+            return (String) this.values.remove(name);
+        }
+        return (String) ((Map<String, Object>)values).put(name, value);
+
+    }
+
 }