Author: rdonkin
Date: Sat Dec 20 01:17:52 2008
New Revision: 728260

URL: http://svn.apache.org/viewvc?rev=728260&view=rev
Log:
Added convenience method for mailets with boolean parameters.

Added:
    
james/mailet/base/trunk/src/test/java/org/apache/mailet/base/MailetUtilTest.java
Modified:
    
james/mailet/base/trunk/src/main/java/org/apache/mailet/base/GenericMailet.java
    james/mailet/base/trunk/src/main/java/org/apache/mailet/base/MailetUtil.java
    
james/mailet/base/trunk/src/test/java/org/apache/mailet/base/test/MockMailetConfig.java

Modified: 
james/mailet/base/trunk/src/main/java/org/apache/mailet/base/GenericMailet.java
URL: 
http://svn.apache.org/viewvc/james/mailet/base/trunk/src/main/java/org/apache/mailet/base/GenericMailet.java?rev=728260&r1=728259&r2=728260&view=diff
==============================================================================
--- 
james/mailet/base/trunk/src/main/java/org/apache/mailet/base/GenericMailet.java 
(original)
+++ 
james/mailet/base/trunk/src/main/java/org/apache/mailet/base/GenericMailet.java 
Sat Dec 20 01:17:52 2008
@@ -55,6 +55,25 @@
     }
 
     /**
+     * <p>Gets a boolean valued init parameter.</p>
+     * <p>A convenience method. The result is parsed
+     * from the value of the named parameter in the {...@link 
MailetConfig}.</p>
+     * @param name name of the init parameter to be queried
+     * @param defaultValue this value will be substituted when the named value
+     * cannot be parse or when the init parameter is absent
+     * @return true when the init parameter is <code>true</code> (ignoring 
case);
+     * false when the init parameter is <code>false</code> (ignoring case);
+     * otherwise the default value
+     * @throws NullPointerException when {...@link #config} is unset
+     */
+    public boolean getInitParameter(String name, boolean defaultValue) {
+        if (config == null) {
+            throw new NullPointerException("Mailet configuration must be set 
before getInitParameter is called.");
+        }
+        return MailetUtil.getInitParameter(config, name, defaultValue);
+    }
+    
+    /**
      * Returns a String containing the value of the named initialization
      * parameter, or null if the parameter does not exist.
      * <p>

Modified: 
james/mailet/base/trunk/src/main/java/org/apache/mailet/base/MailetUtil.java
URL: 
http://svn.apache.org/viewvc/james/mailet/base/trunk/src/main/java/org/apache/mailet/base/MailetUtil.java?rev=728260&r1=728259&r2=728260&view=diff
==============================================================================
--- 
james/mailet/base/trunk/src/main/java/org/apache/mailet/base/MailetUtil.java 
(original)
+++ 
james/mailet/base/trunk/src/main/java/org/apache/mailet/base/MailetUtil.java 
Sat Dec 20 01:17:52 2008
@@ -21,6 +21,8 @@
 
 package org.apache.mailet.base;
 
+import org.apache.mailet.MailetConfig;
+
 
 /**
  * The Util class provide some static methods which can be usefull in mailets
@@ -84,4 +86,27 @@
         return subject.toString();
     }
 
+    
+    /**
+     * <p>Gets a boolean valued init parameter.</p>
+     * @param config not null
+     * @param name name of the init parameter to be queried
+     * @param defaultValue this value will be substituted when the named value
+     * cannot be parse or when the init parameter is absent
+     * @return true when the init parameter is <code>true</code> (ignoring 
case);
+     * false when the init parameter is <code>false</code> (ignoring case);
+     * otherwise the default value
+     */
+    public static boolean getInitParameter(MailetConfig config, String name, 
boolean defaultValue) {
+        final String value = config.getInitParameter(name);
+        final boolean result;
+        if ("true".equalsIgnoreCase(value)) {
+            result = true;
+        } else if ("false".equalsIgnoreCase(value)){
+            result = false;
+        } else {
+            result = defaultValue;
+        }
+        return result;
+    }
 }

Added: 
james/mailet/base/trunk/src/test/java/org/apache/mailet/base/MailetUtilTest.java
URL: 
http://svn.apache.org/viewvc/james/mailet/base/trunk/src/test/java/org/apache/mailet/base/MailetUtilTest.java?rev=728260&view=auto
==============================================================================
--- 
james/mailet/base/trunk/src/test/java/org/apache/mailet/base/MailetUtilTest.java
 (added)
+++ 
james/mailet/base/trunk/src/test/java/org/apache/mailet/base/MailetUtilTest.java
 Sat Dec 20 01:17:52 2008
@@ -0,0 +1,61 @@
+package org.apache.mailet.base;
+
+import org.apache.mailet.base.test.MockMailetConfig;
+
+import junit.framework.TestCase;
+
+public class MailetUtilTest extends TestCase {
+
+       private static final String A_PARAMETER = "aParameter";
+
+       MockMailetConfig config;
+       
+       protected void setUp() throws Exception {
+               super.setUp();
+               config = new MockMailetConfig();
+       }
+
+       protected void tearDown() throws Exception {
+               super.tearDown();
+       }
+
+       public void testGetInitParameterParameterIsTrue() {
+               assertTrue(getParameterValued("true", true));
+               assertTrue(getParameterValued("true", false));
+               assertTrue(getParameterValued("TRUE", true));
+               assertTrue(getParameterValued("TRUE", false));
+               assertTrue(getParameterValued("trUE", true));
+               assertTrue(getParameterValued("trUE", false));
+       }
+
+       public void testGetInitParameterParameterIsFalse() {
+               assertFalse(getParameterValued("false", true));
+               assertFalse(getParameterValued("false", false));
+               assertFalse(getParameterValued("FALSE", true));
+               assertFalse(getParameterValued("FALSE", false));
+               assertFalse(getParameterValued("fALSe", true));
+               assertFalse(getParameterValued("fALSe", false));
+       }
+       
+       public void testGetInitParameterParameterDefaultsToTrue() {
+               assertTrue(getParameterValued("fals", true));
+               assertTrue(getParameterValued("TRU", true));
+               assertTrue(getParameterValued("FALSEest", true));
+               assertTrue(getParameterValued("", true));
+               assertTrue(getParameterValued("gubbins", true));
+       }
+       
+       public void testGetInitParameterParameterDefaultsToFalse() {
+               assertFalse(getParameterValued("fals", false));
+               assertFalse(getParameterValued("TRU", false));
+               assertFalse(getParameterValued("FALSEest", false));
+               assertFalse(getParameterValued("", false));
+               assertFalse(getParameterValued("gubbins", false));
+       }
+       
+       private boolean getParameterValued(String value, boolean defaultValue) {
+               config.clear();
+               config.setProperty(A_PARAMETER, value);
+               return MailetUtil.getInitParameter(config, A_PARAMETER, 
defaultValue);
+       }
+}

Modified: 
james/mailet/base/trunk/src/test/java/org/apache/mailet/base/test/MockMailetConfig.java
URL: 
http://svn.apache.org/viewvc/james/mailet/base/trunk/src/test/java/org/apache/mailet/base/test/MockMailetConfig.java?rev=728260&r1=728259&r2=728260&view=diff
==============================================================================
--- 
james/mailet/base/trunk/src/test/java/org/apache/mailet/base/test/MockMailetConfig.java
 (original)
+++ 
james/mailet/base/trunk/src/test/java/org/apache/mailet/base/test/MockMailetConfig.java
 Sat Dec 20 01:17:52 2008
@@ -30,9 +30,12 @@
  */
 public class MockMailetConfig extends Properties implements MailetConfig {
 
-    private String mailetName;
-    private MailetContext mc;
+    public String mailetName;
+    public MailetContext mc;
 
+    public MockMailetConfig() {
+       this("A Mailet", new MockMailContext());
+    }
     
     public MockMailetConfig(String mailetName, MailetContext mc) {
         super();



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to