[jboss-svn-commits] JBL Code SVN: r33097 - in labs/jbossrules/trunk/drools-factconstraint/src: main/java/org/drools/factconstraints/server and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed May 26 15:15:52 EDT 2010


Author: eaa
Date: 2010-05-26 15:15:51 -0400 (Wed, 26 May 2010)
New Revision: 33097

Modified:
   labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/helper/ConstraintsContainer.java
   labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/DefaultFieldConstraintImpl.java
   labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/factory/ConstraintsFactory.java
   labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/InvalidFieldConstraint.java
   labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraints/server/predefined/InvalidFieldConstraintTest.java
Log:
GUVNOR-541: Add the possibility of create Working Sets
	- DefaultFieldConstraintImpl allows to modify the Restriction subclass used in the generic verifier rule
	- InvalidFieldConstraint now uses Restriction instead of LiteralRestriction in the generated verifier rule	
	- Added tests for Variable Restrictions of InvalidFieldConstraint

Modified: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/helper/ConstraintsContainer.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/helper/ConstraintsContainer.java	2010-05-26 18:18:53 UTC (rev 33096)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/helper/ConstraintsContainer.java	2010-05-26 19:15:51 UTC (rev 33097)
@@ -38,6 +38,10 @@
 		config.setConstraintName("Matches");
 		config.setArgumentValue("matches", "");
 		constraintConfigs.put(config.getConstraintName(), config);
+
+		config = new SimpleConstraintConfigurationImpl();
+		config.setConstraintName("IvalidFieldConstraint");
+		constraintConfigs.put(config.getConstraintName(), config);
 	}
 	
 	private Map<String, List<ConstraintConfiguration>> constraints = new HashMap<String, List<ConstraintConfiguration>>();

Modified: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/DefaultFieldConstraintImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/DefaultFieldConstraintImpl.java	2010-05-26 18:18:53 UTC (rev 33096)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/DefaultFieldConstraintImpl.java	2010-05-26 19:15:51 UTC (rev 33097)
@@ -29,8 +29,18 @@
         supportedOperators.add(Operator.LESS);
         supportedOperators.add(Operator.LESS_OR_EQUAL);
     }
-  
 
+    /**
+     * Method used to create the field Restriction. It returns the class name
+     * of the Restriction used in the generated rule. By default, it returns
+     * "LiteralRestriction", but subclasses could override this method in order
+     * to use other subclasses of org.drools.verifier.components.Restriction
+     * @return
+     */
+    protected String getFieldRestrictionClassName(){
+        return "LiteralRestriction";
+    }
+
     private String concatRule(ConstraintConfiguration config, Map<String, Object> context) {
         StringBuilder rule = new StringBuilder();
 
@@ -249,7 +259,9 @@
     /* Restriction Pattern */
     protected String getVerifierRestrictionPatternTemplate(ConstraintConfiguration config, Map<String, Object> context) {
         StringBuilder verifierRestrictionPatternTemplate = new StringBuilder();
-        verifierRestrictionPatternTemplate.append("      $restriction :LiteralRestriction(\n");
+        verifierRestrictionPatternTemplate.append("      $restriction :");
+        verifierRestrictionPatternTemplate.append(this.getFieldRestrictionClassName());
+        verifierRestrictionPatternTemplate.append("      (\n");
         verifierRestrictionPatternTemplate.append("            fieldPath == $field.path\n");
         verifierRestrictionPatternTemplate.append("            ${constraints}\n");
         verifierRestrictionPatternTemplate.append("      )\n");

Modified: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/factory/ConstraintsFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/factory/ConstraintsFactory.java	2010-05-26 18:18:53 UTC (rev 33096)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/factory/ConstraintsFactory.java	2010-05-26 19:15:51 UTC (rev 33097)
@@ -3,6 +3,7 @@
 import org.drools.factconstraints.client.ConstraintConfiguration;
 import org.drools.factconstraints.server.Constraint;
 import org.drools.factconstraints.server.predefined.IntegerConstraint;
+import org.drools.factconstraints.server.predefined.InvalidFieldConstraint;
 import org.drools.factconstraints.server.predefined.MatchesConstraint;
 import org.drools.factconstraints.server.predefined.NotMatchesConstraint;
 import org.drools.factconstraints.server.predefined.NotNullConstraint;
@@ -26,8 +27,10 @@
 			return new RangeConstraint();
 		} else if (NotMatchesConstraint.NAME.equals(config.getConstraintName())) {
 			return new NotMatchesConstraint();
-		} if (MatchesConstraint.NAME.equals(config.getConstraintName())) {
+		}else if (MatchesConstraint.NAME.equals(config.getConstraintName())) {
 			return new MatchesConstraint();
+		}else if (InvalidFieldConstraint.NAME.equals(config.getConstraintName())) {
+			return new InvalidFieldConstraint();
 		} else {
 			throw new IllegalArgumentException("Constraint unknown: " + config.getConstraintName());
 		}

Modified: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/InvalidFieldConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/InvalidFieldConstraint.java	2010-05-26 18:18:53 UTC (rev 33096)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/InvalidFieldConstraint.java	2010-05-26 19:15:51 UTC (rev 33097)
@@ -29,4 +29,9 @@
         return null;
     }
 
+    @Override
+    protected String getFieldRestrictionClassName(){
+        return "Restriction";
+    }
+
 }

Modified: labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraints/server/predefined/InvalidFieldConstraintTest.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraints/server/predefined/InvalidFieldConstraintTest.java	2010-05-26 18:18:53 UTC (rev 33096)
+++ labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraints/server/predefined/InvalidFieldConstraintTest.java	2010-05-26 19:15:51 UTC (rev 33097)
@@ -44,6 +44,9 @@
         //FAIL
         ruleToVerify += "package org.drools.factconstraint.test\n\n";
         ruleToVerify += "import org.drools.factconstraint.model.*\n";
+
+        ruleToVerify += "global Number globalAge;\n";
+
         ruleToVerify += "rule \"rule1\"\n";
         ruleToVerify += "   when\n";
         ruleToVerify += "       Person(age == 20)\n";
@@ -80,6 +83,25 @@
         fail++;
 
 
+        //FAIL
+        ruleToVerify += "rule \"rule5\"\n";
+        ruleToVerify += "   when\n";
+        ruleToVerify += "       Person($age: age)\n";
+        ruleToVerify += "       Person(age == $age)\n";
+        ruleToVerify += "   then\n";
+        ruleToVerify += "       System.out.println(\"Rule fired\");\n";
+        ruleToVerify += "end\n";
+        fail++;
+
+        //FAIL
+        ruleToVerify += "rule \"rule6\"\n";
+        ruleToVerify += "   when\n";
+        ruleToVerify += "       Person(age == globalAge)\n";
+        ruleToVerify += "   then\n";
+        ruleToVerify += "       System.out.println(\"Rule fired\");\n";
+        ruleToVerify += "end\n";
+        fail++;
+
         VerifierBuilder vBuilder = VerifierBuilderFactory.newVerifierBuilder();
 
         //VerifierConfiguration conf = new DefaultVerifierConfiguration();



More information about the jboss-svn-commits mailing list