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]