[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