Revision: 1206
Author:   jhoskens
Date:     2006-06-21 02:07:30 -0700 (Wed, 21 Jun 2006)
ViewCVS:  http://svn.sourceforge.net/spring-rich-c/?rev=1206&view=rev

Log Message:
-----------
Added XOR: patch from issue RCP-370

Modified Paths:
--------------
    
trunk/spring-richclient/support/src/main/java/org/springframework/rules/constraint/LogicalOperator.java
    
trunk/spring-richclient/support/src/test/java/org/springframework/rules/RulesTests.java
Modified: 
trunk/spring-richclient/support/src/main/java/org/springframework/rules/constraint/LogicalOperator.java
===================================================================
--- 
trunk/spring-richclient/support/src/main/java/org/springframework/rules/constraint/LogicalOperator.java
     2006-06-21 08:45:15 UTC (rev 1205)
+++ 
trunk/spring-richclient/support/src/main/java/org/springframework/rules/constraint/LogicalOperator.java
     2006-06-21 09:07:30 UTC (rev 1206)
@@ -40,7 +40,16 @@
                }
        };
 
-       private LogicalOperator(String code, String symbol) {
+  /**
+   * The <code>XOR</code> operator
+   */
+  public static final LogicalOperator XOR = new LogicalOperator("xor", "^") {
+    public CompoundConstraint createConstraint() {
+      return new XOr();
+    }
+  };
+
+  private LogicalOperator(String code, String symbol) {
                super(code, symbol);
        }
 

Modified: 
trunk/spring-richclient/support/src/test/java/org/springframework/rules/RulesTests.java
===================================================================
--- 
trunk/spring-richclient/support/src/test/java/org/springframework/rules/RulesTests.java
     2006-06-21 08:45:15 UTC (rev 1205)
+++ 
trunk/spring-richclient/support/src/test/java/org/springframework/rules/RulesTests.java
     2006-06-21 09:07:30 UTC (rev 1206)
@@ -32,6 +32,7 @@
 import org.springframework.rules.constraint.EqualTo;
 import org.springframework.rules.constraint.GreaterThan;
 import org.springframework.rules.constraint.GreaterThanEqualTo;
+import org.springframework.rules.constraint.InGroup;
 import org.springframework.rules.constraint.LessThan;
 import org.springframework.rules.constraint.LessThanEqualTo;
 import org.springframework.rules.constraint.LogicalOperator;
@@ -42,6 +43,7 @@
 import org.springframework.rules.constraint.RelationalOperator;
 import org.springframework.rules.constraint.Required;
 import org.springframework.rules.constraint.StringLengthConstraint;
+import org.springframework.rules.constraint.XOr;
 import 
org.springframework.rules.constraint.property.CompoundPropertyConstraint;
 import 
org.springframework.rules.constraint.property.ParameterizedPropertyConstraint;
 import org.springframework.rules.constraint.property.PropertiesConstraint;
@@ -262,7 +264,17 @@
                assertFalse(or.test("           "));
        }
 
-       public void testNot() {
+  public void testXOr() {
+    XOr xor = new XOr();
+    xor.add(new InGroup(new String[] {"123", "12345"}));
+    xor.add(new InGroup(new String[] {"1234", "12345"}));
+    assertTrue(xor.test("123"));
+    assertTrue(xor.test("1234"));
+    assertFalse(xor.test("           "));
+    assertFalse(xor.test("12345"));
+  }
+
+  public void testNot() {
                Number n = new Integer("25");
                Constraint p = constraints.bind(EqualTo.instance(), n);
                Not not = new Not(p);


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
spring-rich-c-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/spring-rich-c-cvs

Reply via email to