[jboss-svn-commits] JBL Code SVN: r31940 - in labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/main/java/org/drools/factconstraint: predefined and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Mar 4 12:15:09 EST 2010
Author: eaa
Date: 2010-03-04 12:15:08 -0500 (Thu, 04 Mar 2010)
New Revision: 31940
Modified:
labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/main/java/org/drools/factconstraint/DefaultConstraintImpl.java
labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/main/java/org/drools/factconstraint/predefined/RangeConstraint.java
Log:
Added hookup points to DefaultConstraintImpl allowing better customization of verifier rule template.
Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/main/java/org/drools/factconstraint/DefaultConstraintImpl.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/main/java/org/drools/factconstraint/DefaultConstraintImpl.java 2010-03-04 15:23:13 UTC (rev 31939)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/main/java/org/drools/factconstraint/DefaultConstraintImpl.java 2010-03-04 17:15:08 UTC (rev 31940)
@@ -14,16 +14,16 @@
private String factType;
private String fieldName;
private Map<String, Object> arguments = new HashMap<String, Object>();
- protected String verifierPackageTemplate = "";
- protected String verifierImportsTemplate = "";
- protected String verifierGlobalsTemplate = "";
- protected String verifierRuleNameTemplate = "";
- protected String verifierRuleWhenTemplate = "";
- protected String verifierFieldPatternTemplate = "";
- protected String verifierRestrictiondPatternTemplate = "";
- protected String verifierRuleThenTemplate = "";
- protected String verifierActionTemplate = "";
- protected String verifierRuleEndTemplate = "";
+ private String verifierPackageTemplate = "";
+ private String verifierImportsTemplate = "";
+ private String verifierGlobalsTemplate = "";
+ private String verifierRuleNameTemplate = "";
+ private String verifierRuleWhenTemplate = "";
+ private String verifierFieldPatternTemplate = "";
+ private String verifierRestrictionPatternTemplate = "";
+ private String verifierRuleThenTemplate = "";
+ private String verifierActionTemplate = "";
+ private String verifierRuleEndTemplate = "";
/**
* Fills the rule's template sections. Subclasses of DefaultConstraintImpl
@@ -54,10 +54,10 @@
this.verifierFieldPatternTemplate += " name == \"${fieldName}\"\n";
this.verifierFieldPatternTemplate += " )\n";
- this.verifierRestrictiondPatternTemplate += " $restriction :LiteralRestriction(\n";
- this.verifierRestrictiondPatternTemplate += " fieldGuid == $field.guid,\n";
- this.verifierRestrictiondPatternTemplate += " ${constraints}\n";
- this.verifierRestrictiondPatternTemplate += " )\n";
+ this.verifierRestrictionPatternTemplate += " $restriction :LiteralRestriction(\n";
+ this.verifierRestrictionPatternTemplate += " fieldGuid == $field.guid,\n";
+ this.verifierRestrictionPatternTemplate += " ${constraints}\n";
+ this.verifierRestrictionPatternTemplate += " )\n";
this.verifierRuleThenTemplate += " then\n";
@@ -79,17 +79,42 @@
private String concatRule() {
StringBuilder rule = new StringBuilder();
- rule.append(verifierPackageTemplate);
- rule.append(verifierImportsTemplate);
- rule.append(verifierGlobalsTemplate);
- rule.append(verifierRuleNameTemplate);
- rule.append(verifierRuleWhenTemplate);
- rule.append(verifierFieldPatternTemplate);
- rule.append(verifierRestrictiondPatternTemplate);
- rule.append(verifierRuleThenTemplate);
- rule.append(verifierActionTemplate);
- rule.append(verifierRuleEndTemplate);
+ rule.append(this.getVerifierPackagePrefixTemplate());
+ rule.append(this.getVerifierPackageTemplate());
+ rule.append(this.getVerifierPackageSufixTemplate());
+ rule.append(this.getVerifierImportsPrefixTemplate());
+ rule.append(this.getVerifierImportsTemplate());
+ rule.append(this.getVerifierImportsSufixTemplate());
+
+ rule.append(this.getVerifierGlobalsPrefixTemplate());
+ rule.append(this.getVerifierGlobalsTemplate());
+ rule.append(this.getVerifierGlobalsSufixTemplate());
+
+ rule.append(this.getVerifierRuleNamePrefixTemplate());
+ rule.append(this.getVerifierRuleNameTemplate());
+ rule.append(this.getVerifierRuleNameSufixTemplate());
+
+ rule.append(this.getVerifierRuleWhenTemplate());
+
+ rule.append(this.getVerifierFieldPatternPrefixTemplate());
+ rule.append(this.getVerifierFieldPatternTemplate());
+ rule.append(this.getVerifierFieldPatternSufixTemplate());
+
+ rule.append(this.getVerifierRestrictionPatternPrefixTemplate());
+ rule.append(this.getVerifierRestrictionPatternTemplate());
+ rule.append(this.getVerifierRestrictionPatternSufixTemplate());
+
+ rule.append(this.getVerifierRuleThenTemplate());
+
+ rule.append(this.getVerifierActionPrefixTemplate());
+ rule.append(this.getVerifierActionTemplate());
+ rule.append(this.getVerifierActionSufixTemplate());
+
+ rule.append(this.getVerifierRuleEndTemplate());
+ rule.append(this.getVerifierRuleEndSufixTemplate());
+
+
return rule.toString();
}
@@ -171,4 +196,116 @@
public String getVerifierRule() {
return null;
}
+
+ /* Action */
+ protected String getVerifierActionTemplate() {
+ return verifierActionTemplate;
+ }
+
+ protected String getVerifierActionPrefixTemplate() {
+ return "";
+ }
+
+ protected String getVerifierActionSufixTemplate() {
+ return "";
+ }
+
+ /* Field Pattern */
+ protected String getVerifierFieldPatternTemplate() {
+ return verifierFieldPatternTemplate;
+ }
+
+ protected String getVerifierFieldPatternPrefixTemplate() {
+ return "";
+ }
+
+ protected String getVerifierFieldPatternSufixTemplate() {
+ return "";
+ }
+
+ /* Globals*/
+ protected String getVerifierGlobalsTemplate() {
+ return verifierGlobalsTemplate;
+ }
+
+ protected String getVerifierGlobalsPrefixTemplate() {
+ return "";
+ }
+
+ protected String getVerifierGlobalsSufixTemplate() {
+ return "";
+ }
+
+ /* Imports */
+ protected String getVerifierImportsTemplate() {
+ return verifierImportsTemplate;
+ }
+
+ protected String getVerifierImportsPrefixTemplate() {
+ return "";
+ }
+
+ protected String getVerifierImportsSufixTemplate() {
+ return "";
+ }
+
+ /* Package (mmmh... sounds useless) */
+ protected String getVerifierPackageTemplate() {
+ return verifierPackageTemplate;
+ }
+
+ protected String getVerifierPackagePrefixTemplate() {
+ return "";
+ }
+
+ protected String getVerifierPackageSufixTemplate() {
+ return "";
+ }
+
+ /* Restriction Pattern */
+ protected String getVerifierRestrictionPatternTemplate() {
+ return verifierRestrictionPatternTemplate;
+ }
+
+ protected String getVerifierRestrictionPatternPrefixTemplate() {
+ return "";
+ }
+
+ protected String getVerifierRestrictionPatternSufixTemplate() {
+ return "";
+ }
+
+ /* end */
+ protected String getVerifierRuleEndTemplate() {
+ return verifierRuleEndTemplate;
+ }
+
+ protected String getVerifierRuleEndSufixTemplate() {
+ return "";
+ }
+
+ /* Rule Name */
+ protected String getVerifierRuleNameTemplate() {
+ return verifierRuleNameTemplate;
+ }
+
+ protected String getVerifierRuleNamePrefixTemplate() {
+ return "";
+ }
+
+ protected String getVerifierRuleNameSufixTemplate() {
+ return "";
+ }
+
+ /* then */
+ protected String getVerifierRuleThenTemplate() {
+ return verifierRuleThenTemplate;
+ }
+
+ /* when */
+ protected String getVerifierRuleWhenTemplate() {
+ return verifierRuleWhenTemplate;
+ }
+
+
}
Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/main/java/org/drools/factconstraint/predefined/RangeConstraint.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/main/java/org/drools/factconstraint/predefined/RangeConstraint.java 2010-03-04 15:23:13 UTC (rev 31939)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-factconstraint/src/main/java/org/drools/factconstraint/predefined/RangeConstraint.java 2010-03-04 17:15:08 UTC (rev 31940)
@@ -1,7 +1,5 @@
package org.drools.factconstraint.predefined;
-import java.util.ArrayList;
-import java.util.List;
import org.drools.factconstraint.ArgumentNotSetException;
import org.drools.factconstraint.DefaultConstraintImpl;
import org.drools.factconstraint.ValidationResult;
@@ -28,17 +26,6 @@
double min = Double.parseDouble(this.getMandatoryArgument(RANGE_CONSTRAINT_MIN).toString());
double max = Double.parseDouble(this.getMandatoryArgument(RANGE_CONSTRAINT_MAX).toString());
- this.verifierRestrictiondPatternTemplate = " ($restriction :LiteralRestriction(\n";
- this.verifierRestrictiondPatternTemplate += " fieldGuid == $field.guid,\n";
- this.verifierRestrictiondPatternTemplate += " valueType == Field.INT,\n";
- this.verifierRestrictiondPatternTemplate += " intValue < " + min + " || > " + max+"\n";
- this.verifierRestrictiondPatternTemplate += " ) OR\n";
- this.verifierRestrictiondPatternTemplate += " $restriction :LiteralRestriction(\n";
- this.verifierRestrictiondPatternTemplate += " fieldGuid == $field.guid,\n";
- this.verifierRestrictiondPatternTemplate += " valueType == Field.DOUBLE,\n";
- this.verifierRestrictiondPatternTemplate += " doubleValue < " + min + " || > " + max+"\n";
- this.verifierRestrictiondPatternTemplate += " ))\n";
-
return this.createVerifierRuleTemplate("Range_Field_Constraint", null, "The value must be between " + min + " and " + max); //I18N
} catch (ArgumentNotSetException ex) {
throw new IllegalStateException("Some arguments are missing");
@@ -73,4 +60,32 @@
return result;
}
+
+ @Override
+ protected String getVerifierRestrictionPatternTemplate() {
+
+ double min;
+ double max;
+ try {
+ min = Double.parseDouble(this.getMandatoryArgument(RANGE_CONSTRAINT_MIN).toString());
+ max = Double.parseDouble(this.getMandatoryArgument(RANGE_CONSTRAINT_MAX).toString());
+ } catch (ArgumentNotSetException ex) {
+ throw new IllegalStateException("Some arguments are missing");
+ }
+
+ StringBuilder restrictionPattern = new StringBuilder();
+
+ restrictionPattern.append(" ($restriction :LiteralRestriction(\n");
+ restrictionPattern.append(" fieldGuid == $field.guid,\n");
+ restrictionPattern.append(" valueType == Field.INT,\n");
+ restrictionPattern.append(" intValue < " + min + " || > " + max + "\n");
+ restrictionPattern.append(" ) OR\n");
+ restrictionPattern.append(" $restriction :LiteralRestriction(\n");
+ restrictionPattern.append(" fieldGuid == $field.guid,\n");
+ restrictionPattern.append(" valueType == Field.DOUBLE,\n");
+ restrictionPattern.append(" doubleValue < " + min + " || > " + max + "\n");
+ restrictionPattern.append(" ))\n");
+
+ return restrictionPattern.toString();
+ }
}
More information about the jboss-svn-commits
mailing list