Author: rdonkin
Date: Fri Jul 24 14:35:13 2009
New Revision: 797491

URL: http://svn.apache.org/viewvc?rev=797491&view=rev
Log:
JSIEVE-53 Avoid casting by pushing method into TestList 
https://issues.apache.org/jira/browse/JSIEVE-53

Modified:
    james/jsieve/trunk/main/src/main/java/org/apache/jsieve/TestList.java
    james/jsieve/trunk/main/src/main/java/org/apache/jsieve/tests/AllOf.java
    james/jsieve/trunk/main/src/main/java/org/apache/jsieve/tests/AnyOf.java

Modified: james/jsieve/trunk/main/src/main/java/org/apache/jsieve/TestList.java
URL: 
http://svn.apache.org/viewvc/james/jsieve/trunk/main/src/main/java/org/apache/jsieve/TestList.java?rev=797491&r1=797490&r2=797491&view=diff
==============================================================================
--- james/jsieve/trunk/main/src/main/java/org/apache/jsieve/TestList.java 
(original)
+++ james/jsieve/trunk/main/src/main/java/org/apache/jsieve/TestList.java Fri 
Jul 24 14:35:13 2009
@@ -74,7 +74,7 @@
      */
     public Object execute(MailAdapter mail, SieveContext context)
             throws SieveException {
-        return new Boolean(isTestPassed(mail, context));
+        return new Boolean(allTestsPass(mail, context));
     }
 
     /**
@@ -86,7 +86,7 @@
      * true when no tests fail
      * @throws SieveException
      */
-    public boolean isTestPassed(MailAdapter mail, SieveContext context) throws 
SieveException {
+    public boolean allTestsPass(MailAdapter mail, SieveContext context) throws 
SieveException {
         boolean result = true;
         for (Test test:getTests()) {
             result = test.isTestPassed(mail, context);
@@ -98,6 +98,26 @@
     }
 
     /**
+     * Do any tests pass for the given mail?
+     * 
+     * @param mail not null
+     * @param context not null
+     * @return true when any test in this list passes,
+     * false otherwise
+     * @throws SieveException
+     */
+    public boolean anyTestsPass(MailAdapter mail, SieveContext context) throws 
SieveException {
+        boolean result = false;
+        for (Test test:getTests()) {
+            result = test.isTestPassed(mail, context);
+            if (result) {
+                break;
+            }
+        }
+        return result;
+    }
+    
+    /**
      * Returns the children.
      * 
      * @return List

Modified: 
james/jsieve/trunk/main/src/main/java/org/apache/jsieve/tests/AllOf.java
URL: 
http://svn.apache.org/viewvc/james/jsieve/trunk/main/src/main/java/org/apache/jsieve/tests/AllOf.java?rev=797491&r1=797490&r2=797491&view=diff
==============================================================================
--- james/jsieve/trunk/main/src/main/java/org/apache/jsieve/tests/AllOf.java 
(original)
+++ james/jsieve/trunk/main/src/main/java/org/apache/jsieve/tests/AllOf.java 
Fri Jul 24 14:35:13 2009
@@ -42,7 +42,7 @@
      */
     protected boolean executeBasic(MailAdapter mail, Arguments arguments,
             SieveContext context) throws SieveException {
-        return arguments.getTestList().isTestPassed(mail, context);
+        return arguments.getTestList().allTestsPass(mail, context);
     }
 
 }

Modified: 
james/jsieve/trunk/main/src/main/java/org/apache/jsieve/tests/AnyOf.java
URL: 
http://svn.apache.org/viewvc/james/jsieve/trunk/main/src/main/java/org/apache/jsieve/tests/AnyOf.java?rev=797491&r1=797490&r2=797491&view=diff
==============================================================================
--- james/jsieve/trunk/main/src/main/java/org/apache/jsieve/tests/AnyOf.java 
(original)
+++ james/jsieve/trunk/main/src/main/java/org/apache/jsieve/tests/AnyOf.java 
Fri Jul 24 14:35:13 2009
@@ -19,11 +19,8 @@
 
 package org.apache.jsieve.tests;
 
-import java.util.Iterator;
-
 import org.apache.jsieve.Arguments;
 import org.apache.jsieve.SieveContext;
-import org.apache.jsieve.Test;
 import org.apache.jsieve.exception.SieveException;
 import org.apache.jsieve.mail.MailAdapter;
 
@@ -45,13 +42,7 @@
      */
     protected boolean executeBasic(MailAdapter mail, Arguments arguments,
             SieveContext context) throws SieveException {
-        boolean result = false;
-        Iterator testsIter = arguments.getTestList().getTests().iterator();
-        while (!result && testsIter.hasNext()) {
-            result = ((Boolean) ((Test) testsIter.next())
-                    .execute(mail, context)).booleanValue();
-        }
-        return result;
+        return arguments.getTestList().anyTestsPass(mail, context);
     }
 
 }



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

Reply via email to