[jboss-svn-commits] JBL Code SVN: r32278 - labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/guvnor/client/factconstraints/predefined.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Mar 29 11:41:57 EDT 2010


Author: eaa
Date: 2010-03-29 11:41:57 -0400 (Mon, 29 Mar 2010)
New Revision: 32278

Modified:
   labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/guvnor/client/factconstraints/predefined/RangeConstraint.java
Log:
Initial support for multiple operators.

Modified: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/guvnor/client/factconstraints/predefined/RangeConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/guvnor/client/factconstraints/predefined/RangeConstraint.java	2010-03-29 14:52:20 UTC (rev 32277)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/guvnor/client/factconstraints/predefined/RangeConstraint.java	2010-03-29 15:41:57 UTC (rev 32278)
@@ -13,6 +13,17 @@
     public static final String RANGE_CONSTRAINT_MIN = "Min.value";
     public static final String RANGE_CONSTRAINT_MAX = "Max.value";
 
+    private enum Operator{
+        EQ,
+        NEQ,
+        GT,
+        LT,
+        GE,
+        LE
+    }
+
+    private Operator currentOperator;
+
     public RangeConstraint() {
         //set default values
         this.setArgumentValue(RANGE_CONSTRAINT_MIN, "0");
@@ -21,7 +32,12 @@
 
     @Override
     public String getVerifierRule() {
-    	return this.createVerifierRuleTemplate("Range_Field_Constraint", null, "The value must be between " + getMin() + " and " + getMax()); //I18N
+        StringBuilder rules = new StringBuilder();
+        for (Operator operator : Operator.values()) {
+            this.currentOperator = operator;
+            this.createVerifierRuleTemplate("Range_Field_Constraint_"+this.currentOperator, null, "The value must be between " + getMin() + " and " + getMax()); //I18N
+        }
+    	return rules.toString();
     }
 
     @Override
@@ -75,15 +91,24 @@
 
         restrictionPattern.append("      ($restriction :LiteralRestriction(\n");
         restrictionPattern.append("            fieldPath == $field.path,\n");
-        restrictionPattern.append("            valueType == Field.INT,\n");
-        restrictionPattern.append("            intValue < " + getMin() + " || > " + getMax() + "\n");
-        restrictionPattern.append("      ) OR\n");
-        restrictionPattern.append("      $restriction :LiteralRestriction(\n");
-        restrictionPattern.append("            fieldPath == $field.path,\n");
-        restrictionPattern.append("            valueType == Field.DOUBLE,\n");
-        restrictionPattern.append("            doubleValue < " + getMin() + " || > " + getMax() + "\n");
-        restrictionPattern.append("      ))\n");
+        restrictionPattern.append("            operator.operatorString == Operator.EQUAL.operatorString,\n");
+        restrictionPattern.append("            ((valueType == Field.INT && (intValue < " + getMin() + " || > " + getMax() + ")) ");
+        restrictionPattern.append("             || ");
+        restrictionPattern.append("            (valueType == Field.DOUBLE && (doubleValue < " + getMin() + " || > " + getMax() + ")) ");
+        restrictionPattern.append("      )))\n");
 
         return restrictionPattern.toString();
     }
+
+
+//    @Override
+//    protected String getVerifierImportsSufixTemplate() {
+//        return "import org.drools.base.evaluators.Operator;\n";
+//    }
+//
+//    @Override
+//    protected String getVerifierActionSufixTemplate() {
+//        return "System.out.println(\"OPERATOR= \"+$restriction.getOperator().getOperatorString()+\". Operator.EQUAL= \"+Operator.EQUAL.getOperatorString());\n";
+//    }
+
 }



More information about the jboss-svn-commits mailing list