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]