You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sirona.apache.org by rm...@apache.org on 2015/03/19 12:08:05 UTC
svn commit: r1667702 - in /incubator/sirona/trunk/api/src:
main/java/org/apache/sirona/configuration/predicate/PredicateEvaluator.java
test/java/org/apache/sirona/predicate/PredicateTest.java
Author: rmannibucau
Date: Thu Mar 19 11:08:05 2015
New Revision: 1667702
URL: http://svn.apache.org/r1667702
Log:
supporting not true to have kind of false predicate - maybe we should rename true predicate boolean or rework it a bit
Modified:
incubator/sirona/trunk/api/src/main/java/org/apache/sirona/configuration/predicate/PredicateEvaluator.java
incubator/sirona/trunk/api/src/test/java/org/apache/sirona/predicate/PredicateTest.java
Modified: incubator/sirona/trunk/api/src/main/java/org/apache/sirona/configuration/predicate/PredicateEvaluator.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/api/src/main/java/org/apache/sirona/configuration/predicate/PredicateEvaluator.java?rev=1667702&r1=1667701&r2=1667702&view=diff
==============================================================================
--- incubator/sirona/trunk/api/src/main/java/org/apache/sirona/configuration/predicate/PredicateEvaluator.java (original)
+++ incubator/sirona/trunk/api/src/main/java/org/apache/sirona/configuration/predicate/PredicateEvaluator.java Thu Mar 19 11:08:05 2015
@@ -30,6 +30,7 @@ public final class PredicateEvaluator {
private final Map<String, Predicate> predicates = new HashMap<String, Predicate>();
private final boolean truePredicate;
+ private final boolean falsePredicate;
public PredicateEvaluator(final String configuration, final String sep) {
if (configuration != null && configuration.length()>0) {
@@ -68,8 +69,9 @@ public final class PredicateEvaluator {
}
if (predicate == TruePredicate.INSTANCE) {
- truePredicate = true;
predicates.clear(); // no need to keep it in mem since we'll always return true
+ falsePredicate = trim.substring(separator + 1).startsWith(NOT);
+ truePredicate = !falsePredicate;
return;
}
@@ -81,8 +83,10 @@ public final class PredicateEvaluator {
}
}
truePredicate = false;
+ falsePredicate = false;
} else {
truePredicate = false;
+ falsePredicate = false;
}
predicates.remove(TruePredicate.INSTANCE.prefix()); // no need to keep it in mem
}
@@ -91,6 +95,9 @@ public final class PredicateEvaluator {
if (truePredicate) {
return true;
}
+ if (falsePredicate) {
+ return false;
+ }
for (final Predicate predicate : predicates.values()) {
if (predicate.matches(value)) {
Modified: incubator/sirona/trunk/api/src/test/java/org/apache/sirona/predicate/PredicateTest.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/api/src/test/java/org/apache/sirona/predicate/PredicateTest.java?rev=1667702&r1=1667701&r2=1667702&view=diff
==============================================================================
--- incubator/sirona/trunk/api/src/test/java/org/apache/sirona/predicate/PredicateTest.java (original)
+++ incubator/sirona/trunk/api/src/test/java/org/apache/sirona/predicate/PredicateTest.java Thu Mar 19 11:08:05 2015
@@ -52,4 +52,9 @@ public class PredicateTest
assertTrue(evaluator.matches("1283"));
assertTrue(evaluator.matches("Ends with Cat"));
}
+
+ @Test
+ public void allFalse() {
+ assertFalse(new PredicateEvaluator("true:!true",",").matches("or"));
+ }
}