[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