[jboss-svn-commits] JBL Code SVN: r32724 - 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
Tue May 4 13:57:18 EDT 2010


Author: baunax
Date: 2010-05-04 13:57:16 -0400 (Tue, 04 May 2010)
New Revision: 32724

Added:
   labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/Constraint.java
   labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/DefaultConstraintImpl.java
   labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/DefaultMultiRulesConstraintImpl.java
   labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/factory/
Removed:
   labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/Constraint.java
   labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/DefaultConstraintImpl.java
   labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/DefaultMultiRulesConstraintImpl.java
   labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/factory/
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/predefined/IntegerConstraint.java
   labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/MatchesConstraint.java
   labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/NotMatchesConstraint.java
   labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/NotNullConstraint.java
   labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/RangeConstraint.java
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
Log:
fixed wrong package name (missing plural in factconstraints) 

Deleted: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/Constraint.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/Constraint.java	2010-05-04 17:55:24 UTC (rev 32723)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/Constraint.java	2010-05-04 17:57:16 UTC (rev 32724)
@@ -1,21 +0,0 @@
-package org.drools.factconstraint.server;
-
-import java.io.Serializable;
-import java.util.List;
-
-import org.drools.factconstraints.client.ConstraintConfiguration;
-import org.drools.factconstraints.client.ValidationResult;
-
-/**
- *
- * @author esteban.aliverti at gmail.com
- * @author baunax at gmail.com
- */
-public interface Constraint extends Serializable {
-    public List<String> getArgumentKeys();
-
-    public ValidationResult validate(Object value, ConstraintConfiguration config);
-    public String getVerifierRule(ConstraintConfiguration config);
-    public String getConstraintName();
-	
-}

Deleted: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/DefaultConstraintImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/DefaultConstraintImpl.java	2010-05-04 17:55:24 UTC (rev 32723)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/DefaultConstraintImpl.java	2010-05-04 17:57:16 UTC (rev 32724)
@@ -1,296 +0,0 @@
-package org.drools.factconstraint.server;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.drools.base.evaluators.Operator;
-import org.drools.factconstraints.client.ArgumentNotSetException;
-import org.drools.factconstraints.client.ConstraintConfiguration;
-import org.drools.factconstraints.client.ValidationResult;
-import org.drools.verifier.report.components.Severity;
-
-/**
- *
- * @author esteban.aliverti at gmail.com
- * @author baunax at gmail.com
- */
-public abstract class DefaultConstraintImpl implements Constraint {
-
-	private static final long serialVersionUID = 501L;
-	private long ruleNum = 0;
-
-    public static List<Operator> supportedOperators = new ArrayList<Operator>();
-    static{
-        supportedOperators.add(Operator.EQUAL);
-        supportedOperators.add(Operator.NOT_EQUAL);
-        supportedOperators.add(Operator.GREATER);
-        supportedOperators.add(Operator.GREATER_OR_EQUAL);
-        supportedOperators.add(Operator.LESS);
-        supportedOperators.add(Operator.LESS_OR_EQUAL);
-    }
-
-    private String concatRule(ConstraintConfiguration config, Map<String, Object> context) {
-        StringBuilder rule = new StringBuilder();
-
-        rule.append(this.getVerifierPackagePrefixTemplate(config, context));
-        rule.append(this.getVerifierPackageTemplate(config, context));
-        rule.append(this.getVerifierPackageSufixTemplate(config, context));
-
-        rule.append(this.getVerifierImportsPrefixTemplate(config, context));
-        rule.append(this.getVerifierImportsTemplate(config, context));
-        rule.append(this.getVerifierImportsSufixTemplate(config, context));
-
-        rule.append(this.getVerifierGlobalsPrefixTemplate(config, context));
-        rule.append(this.getVerifierGlobalsTemplate(config, context));
-        rule.append(this.getVerifierGlobalsSufixTemplate(config, context));
-
-        rule.append(this.getVerifierRuleNamePrefixTemplate(config, context));
-        rule.append(this.getVerifierRuleNameTemplate(config, context));
-        rule.append(this.getVerifierRuleNameSufixTemplate(config, context));
-
-        rule.append(this.getVerifierRuleWhenTemplate(config, context));
-
-        rule.append(this.getVerifierFieldPatternPrefixTemplate(config, context));
-        rule.append(this.getVerifierFieldPatternTemplate(config, context));
-        rule.append(this.getVerifierFieldPatternSufixTemplate(config, context));
-
-        rule.append(this.getVerifierRestrictionPatternPrefixTemplate(config, context));
-        rule.append(this.getVerifierRestrictionPatternTemplate(config, context));
-        rule.append(this.getVerifierRestrictionPatternSufixTemplate(config, context));
-
-        rule.append(this.getVerifierRuleThenTemplate(config, context));
-
-        rule.append(this.getVerifierActionPrefixTemplate(config, context));
-        rule.append(this.getVerifierActionTemplate(config, context));
-        rule.append(this.getVerifierActionSufixTemplate(config, context));
-
-        rule.append(this.getVerifierRuleEndTemplate(config, context));
-        rule.append(this.getVerifierRuleEndSufixTemplate(config, context));
-
-        return rule.toString();
-
-    }
-
-    protected String createVerifierRuleTemplate(ConstraintConfiguration config, Map<String, Object> context, String ruleName, List<String> constraints, String message) {
-        if (ruleName == null) {
-            ruleName = "Constraint_rule";
-
-        }
-        ruleName += "_" + ruleNum++;
-        String rule = this.concatRule(config, context).replace("${ruleName}", ruleName);
-        rule = rule.replace("${factType}", config.getFactType());
-        rule = rule.replace("${fieldName}", config.getFieldName());
-        if (constraints != null && !constraints.isEmpty()) {
-            String constraintsTxt = "";
-            String delimiter = "";
-            for (String c : constraints) {
-                constraintsTxt += delimiter + c + "\n";
-                if (delimiter.equals("")) {
-                    delimiter = ",";
-                }
-            }
-            rule = rule.replace("${constraints}", constraintsTxt);
-        }
-        rule = rule.replace("${message}", (message == null || message.equals("")) ? "Invalid Value" : message);
-
-        return rule;
-    }
-
-    protected Object getMandatoryArgument(String key, ConstraintConfiguration conf) throws ArgumentNotSetException {
-        if (!conf.containsArgument(key)) {
-            throw new ArgumentNotSetException("The argument " + key + " doesn't exist.");
-        }
-
-        Object value = conf.getArgumentValue(key);
-
-        if (value == null) {
-            throw new ArgumentNotSetException("The argument " + key + " is null.");
-        }
-
-        return value;
-    }
-
-    public ValidationResult validate(Object value, ConstraintConfiguration config) {
-        ValidationResult result = new ValidationResult();
-        result.setSuccess(true);
-
-        return result;
-    }
-
-    protected Map<String, Object> createContext() {
-    	return new HashMap<String, Object>();
-    }
-
-    public final String getVerifierRule(ConstraintConfiguration config) {
-        return internalVerifierRule(config, createContext());
-    }
-
-    abstract protected String internalVerifierRule(ConstraintConfiguration config, Map<String, Object> context);
-
-    public String getConstraintName() {
-    	return getClass().getName().substring(getClass().getName().lastIndexOf('.') + 1);
-    }
-
-    /* Action */
-    protected String getVerifierActionTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        StringBuilder verifierActionTemplate = new StringBuilder();
-
-          //by default, add an ERROR
-          verifierActionTemplate.append(this.addResult(Severity.ERROR));
-
-//        verifierActionTemplate.append("      System.out.println(\"doubleValue= \"+$restriction.getDoubleValue());\n");
-//        verifierActionTemplate.append("      System.out.println(\"intValue= \"+$restriction.getIntValue());\n");
-
-        return verifierActionTemplate.toString();
-    }
-
-    protected String addResult(Severity  severity){
-        StringBuilder addString = new StringBuilder();
-        addString.append("      result.add(new VerifierMessage(\n");
-        addString.append("                        impactedRules,\n");
-        if (severity.compareTo(Severity.ERROR) == 0){
-            addString.append("                        Severity.ERROR,\n");
-        }else if(severity.compareTo(Severity.NOTE) == 0){
-            addString.append("                        Severity.NOTE,\n");
-        }else if(severity.compareTo(Severity.WARNING) == 0){
-            addString.append("                        Severity.WARNING,\n");
-        }
-        addString.append("                        MessageType.NOT_SPECIFIED,\n");
-        addString.append("                        $restriction,\n");
-        addString.append("                        \"${message}\" ) );\n");
-        return addString.toString();
-    }
-
-    protected String getVerifierActionPrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        StringBuilder verifierActionPrefixTemplate = new StringBuilder();
-        verifierActionPrefixTemplate.append("      Map<String,String> impactedRules = new HashMap<String,String>();\n")
-        	.append("      impactedRules.put( $restriction.getPackagePath(), $restriction.getRuleName());\n");
-        return verifierActionPrefixTemplate.toString();
-    }
-
-    protected String getVerifierActionSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "";
-    }
-
-    /* Field Pattern */
-    protected String getVerifierFieldPatternTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        StringBuilder verifierFieldPatternTemplate = new StringBuilder();
-        verifierFieldPatternTemplate.append("      $field :Field(\n");
-        verifierFieldPatternTemplate.append("          objectTypeName == \"${factType}\",\n");
-        verifierFieldPatternTemplate.append("          name == \"${fieldName}\"\n");
-        verifierFieldPatternTemplate.append("      )\n");
-        return verifierFieldPatternTemplate.toString();
-    }
-
-    protected String getVerifierFieldPatternPrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "";
-    }
-
-    protected String getVerifierFieldPatternSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "";
-    }
-
-    /* Globals*/
-    protected String getVerifierGlobalsTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "global VerifierReport result;\n";
-    }
-
-    protected String getVerifierGlobalsPrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "";
-    }
-
-    protected String getVerifierGlobalsSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "";
-    }
-
-    /* Imports */
-    protected String getVerifierImportsTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        StringBuilder verifierImportsTemplate = new StringBuilder();
-        verifierImportsTemplate.append("import org.drools.verifier.components.*;\n");
-        verifierImportsTemplate.append("import java.util.Map;\n");
-        verifierImportsTemplate.append("import java.util.HashMap;\n");
-        verifierImportsTemplate.append("import org.drools.verifier.report.components.VerifierMessage;\n");
-        verifierImportsTemplate.append("import org.drools.verifier.data.VerifierReport;\n");
-        verifierImportsTemplate.append("import org.drools.verifier.report.components.Severity;\n");
-        verifierImportsTemplate.append("import org.drools.verifier.report.components.MessageType;\n");
-
-        return verifierImportsTemplate.toString();
-
-    }
-
-    protected String getVerifierImportsPrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "";
-    }
-
-    protected String getVerifierImportsSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "";
-    }
-
-    protected String getVerifierPackageTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "package org.drools.verifier.consequence\n";
-    }
-
-    protected String getVerifierPackagePrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "";
-    }
-
-    protected String getVerifierPackageSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "";
-    }
-
-    /* Restriction Pattern */
-    protected String getVerifierRestrictionPatternTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        StringBuilder verifierRestrictionPatternTemplate = new StringBuilder();
-        verifierRestrictionPatternTemplate.append("      $restriction :LiteralRestriction(\n");
-        verifierRestrictionPatternTemplate.append("            fieldPath == $field.path,\n");
-        verifierRestrictionPatternTemplate.append("            ${constraints}\n");
-        verifierRestrictionPatternTemplate.append("      )\n");
-
-        return verifierRestrictionPatternTemplate.toString();
-    }
-
-    protected String getVerifierRestrictionPatternPrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "";
-    }
-
-    protected String getVerifierRestrictionPatternSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "";
-    }
-
-    /* end */
-    protected String getVerifierRuleEndTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "end\n";
-    }
-
-    protected String getVerifierRuleEndSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "";
-    }
-
-    /* Rule Name */
-    protected String getVerifierRuleNameTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "rule \"${ruleName}\"\n";
-    }
-
-    protected String getVerifierRuleNamePrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "";
-    }
-
-    protected String getVerifierRuleNameSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "";
-    }
-
-    /* then */
-    protected String getVerifierRuleThenTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "  then\n";
-    }
-
-    /* when */
-    protected String getVerifierRuleWhenTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        return "  when\n";
-    }
-
-    public List<String> getArgumentKeys() {
-    	return new ArrayList<String>();
-    }
-}

Deleted: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/DefaultMultiRulesConstraintImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/DefaultMultiRulesConstraintImpl.java	2010-05-04 17:55:24 UTC (rev 32723)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/DefaultMultiRulesConstraintImpl.java	2010-05-04 17:57:16 UTC (rev 32724)
@@ -1,104 +0,0 @@
-package org.drools.factconstraint.server;
-
-import java.util.Map;
-
-import org.drools.factconstraints.client.ConstraintConfiguration;
-
-/**
- * Default implementation for constraints that creates more than one rule
- * in its {@link #getVerifierRule()} method.
- * This class contains an internal counter to avoid multiple declaration of
- * package, imports and globals.
- * The counter must be handled by subclasses.
- * @author esteban.aliverti at gmail.com
- */
-public abstract class DefaultMultiRulesConstraintImpl extends DefaultConstraintImpl {
-
-	private static final long serialVersionUID = 501L;
-	protected static final String RULE_COUNT = "ruleCount";
-	
-    protected void resetRuleCount(Map<String, Object> context){
-        context.put(RULE_COUNT, 0);
-    }
-
-    protected void incrementRuleCount(Map<String, Object> context){
-    	int rc = (Integer) context.get(RULE_COUNT);
-        context.put(RULE_COUNT, ++rc);
-    }
-
-    protected int getRuleCount(Map<String, Object> context){
-    	return (Integer) context.get(RULE_COUNT);
-    }
-    
-    @Override
-    protected String getVerifierGlobalsPrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        if (getRuleCount(context) == 0) {
-            return super.getVerifierGlobalsPrefixTemplate(config, context);
-        }
-        return "";
-    }
-
-    @Override
-    protected String getVerifierGlobalsSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        if (getRuleCount(context) == 0) {
-            return super.getVerifierGlobalsSufixTemplate(config, context);
-        }
-        return "";
-    }
-
-    @Override
-    protected String getVerifierGlobalsTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        if (getRuleCount(context) == 0) {
-            return super.getVerifierGlobalsTemplate(config, context);
-        }
-        return "";
-    }
-
-    @Override
-    protected String getVerifierImportsPrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        if (getRuleCount(context) == 0) {
-            return super.getVerifierImportsPrefixTemplate(config, context);
-        }
-        return "";
-    }
-
-    @Override
-    protected String getVerifierImportsSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        if (getRuleCount(context) == 0) {
-            return super.getVerifierImportsSufixTemplate(config, context);
-        }
-        return "";
-    }
-
-    @Override
-    protected String getVerifierImportsTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        if (getRuleCount(context) == 0) {
-            return super.getVerifierImportsTemplate(config, context);
-        }
-        return "";
-    }
-
-    @Override
-    protected String getVerifierPackagePrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        if (getRuleCount(context) == 0) {
-            return super.getVerifierPackagePrefixTemplate(config, context);
-        }
-        return "";
-    }
-
-    @Override
-    protected String getVerifierPackageSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        if (getRuleCount(context) == 0) {
-            return super.getVerifierPackageSufixTemplate(config, context);
-        }
-        return "";
-    }
-
-    @Override
-    protected String getVerifierPackageTemplate(ConstraintConfiguration config, Map<String, Object> context) {
-        if (getRuleCount(context) == 0) {
-            return super.getVerifierPackageTemplate(config, context);
-        }
-        return "";
-    }
-}

Copied: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/Constraint.java (from rev 32721, labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/Constraint.java)
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/Constraint.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/Constraint.java	2010-05-04 17:57:16 UTC (rev 32724)
@@ -0,0 +1,21 @@
+package org.drools.factconstraints.server;
+
+import java.io.Serializable;
+import java.util.List;
+
+import org.drools.factconstraints.client.ConstraintConfiguration;
+import org.drools.factconstraints.client.ValidationResult;
+
+/**
+ *
+ * @author esteban.aliverti at gmail.com
+ * @author baunax at gmail.com
+ */
+public interface Constraint extends Serializable {
+    public List<String> getArgumentKeys();
+
+    public ValidationResult validate(Object value, ConstraintConfiguration config);
+    public String getVerifierRule(ConstraintConfiguration config);
+    public String getConstraintName();
+	
+}

Copied: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/DefaultConstraintImpl.java (from rev 32721, labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/DefaultConstraintImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/DefaultConstraintImpl.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/DefaultConstraintImpl.java	2010-05-04 17:57:16 UTC (rev 32724)
@@ -0,0 +1,296 @@
+package org.drools.factconstraints.server;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.base.evaluators.Operator;
+import org.drools.factconstraints.client.ArgumentNotSetException;
+import org.drools.factconstraints.client.ConstraintConfiguration;
+import org.drools.factconstraints.client.ValidationResult;
+import org.drools.verifier.report.components.Severity;
+
+/**
+ *
+ * @author esteban.aliverti at gmail.com
+ * @author baunax at gmail.com
+ */
+public abstract class DefaultConstraintImpl implements Constraint {
+
+	private static final long serialVersionUID = 501L;
+	private long ruleNum = 0;
+
+    public static List<Operator> supportedOperators = new ArrayList<Operator>();
+    static{
+        supportedOperators.add(Operator.EQUAL);
+        supportedOperators.add(Operator.NOT_EQUAL);
+        supportedOperators.add(Operator.GREATER);
+        supportedOperators.add(Operator.GREATER_OR_EQUAL);
+        supportedOperators.add(Operator.LESS);
+        supportedOperators.add(Operator.LESS_OR_EQUAL);
+    }
+
+    private String concatRule(ConstraintConfiguration config, Map<String, Object> context) {
+        StringBuilder rule = new StringBuilder();
+
+        rule.append(this.getVerifierPackagePrefixTemplate(config, context));
+        rule.append(this.getVerifierPackageTemplate(config, context));
+        rule.append(this.getVerifierPackageSufixTemplate(config, context));
+
+        rule.append(this.getVerifierImportsPrefixTemplate(config, context));
+        rule.append(this.getVerifierImportsTemplate(config, context));
+        rule.append(this.getVerifierImportsSufixTemplate(config, context));
+
+        rule.append(this.getVerifierGlobalsPrefixTemplate(config, context));
+        rule.append(this.getVerifierGlobalsTemplate(config, context));
+        rule.append(this.getVerifierGlobalsSufixTemplate(config, context));
+
+        rule.append(this.getVerifierRuleNamePrefixTemplate(config, context));
+        rule.append(this.getVerifierRuleNameTemplate(config, context));
+        rule.append(this.getVerifierRuleNameSufixTemplate(config, context));
+
+        rule.append(this.getVerifierRuleWhenTemplate(config, context));
+
+        rule.append(this.getVerifierFieldPatternPrefixTemplate(config, context));
+        rule.append(this.getVerifierFieldPatternTemplate(config, context));
+        rule.append(this.getVerifierFieldPatternSufixTemplate(config, context));
+
+        rule.append(this.getVerifierRestrictionPatternPrefixTemplate(config, context));
+        rule.append(this.getVerifierRestrictionPatternTemplate(config, context));
+        rule.append(this.getVerifierRestrictionPatternSufixTemplate(config, context));
+
+        rule.append(this.getVerifierRuleThenTemplate(config, context));
+
+        rule.append(this.getVerifierActionPrefixTemplate(config, context));
+        rule.append(this.getVerifierActionTemplate(config, context));
+        rule.append(this.getVerifierActionSufixTemplate(config, context));
+
+        rule.append(this.getVerifierRuleEndTemplate(config, context));
+        rule.append(this.getVerifierRuleEndSufixTemplate(config, context));
+
+        return rule.toString();
+
+    }
+
+    protected String createVerifierRuleTemplate(ConstraintConfiguration config, Map<String, Object> context, String ruleName, List<String> constraints, String message) {
+        if (ruleName == null) {
+            ruleName = "Constraint_rule";
+
+        }
+        ruleName += "_" + ruleNum++;
+        String rule = this.concatRule(config, context).replace("${ruleName}", ruleName);
+        rule = rule.replace("${factType}", config.getFactType());
+        rule = rule.replace("${fieldName}", config.getFieldName());
+        if (constraints != null && !constraints.isEmpty()) {
+            String constraintsTxt = "";
+            String delimiter = "";
+            for (String c : constraints) {
+                constraintsTxt += delimiter + c + "\n";
+                if (delimiter.equals("")) {
+                    delimiter = ",";
+                }
+            }
+            rule = rule.replace("${constraints}", constraintsTxt);
+        }
+        rule = rule.replace("${message}", (message == null || message.equals("")) ? "Invalid Value" : message);
+
+        return rule;
+    }
+
+    protected Object getMandatoryArgument(String key, ConstraintConfiguration conf) throws ArgumentNotSetException {
+        if (!conf.containsArgument(key)) {
+            throw new ArgumentNotSetException("The argument " + key + " doesn't exist.");
+        }
+
+        Object value = conf.getArgumentValue(key);
+
+        if (value == null) {
+            throw new ArgumentNotSetException("The argument " + key + " is null.");
+        }
+
+        return value;
+    }
+
+    public ValidationResult validate(Object value, ConstraintConfiguration config) {
+        ValidationResult result = new ValidationResult();
+        result.setSuccess(true);
+
+        return result;
+    }
+
+    protected Map<String, Object> createContext() {
+    	return new HashMap<String, Object>();
+    }
+
+    public final String getVerifierRule(ConstraintConfiguration config) {
+        return internalVerifierRule(config, createContext());
+    }
+
+    abstract protected String internalVerifierRule(ConstraintConfiguration config, Map<String, Object> context);
+
+    public String getConstraintName() {
+    	return getClass().getName().substring(getClass().getName().lastIndexOf('.') + 1);
+    }
+
+    /* Action */
+    protected String getVerifierActionTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        StringBuilder verifierActionTemplate = new StringBuilder();
+
+          //by default, add an ERROR
+          verifierActionTemplate.append(this.addResult(Severity.ERROR));
+
+//        verifierActionTemplate.append("      System.out.println(\"doubleValue= \"+$restriction.getDoubleValue());\n");
+//        verifierActionTemplate.append("      System.out.println(\"intValue= \"+$restriction.getIntValue());\n");
+
+        return verifierActionTemplate.toString();
+    }
+
+    protected String addResult(Severity  severity){
+        StringBuilder addString = new StringBuilder();
+        addString.append("      result.add(new VerifierMessage(\n");
+        addString.append("                        impactedRules,\n");
+        if (severity.compareTo(Severity.ERROR) == 0){
+            addString.append("                        Severity.ERROR,\n");
+        }else if(severity.compareTo(Severity.NOTE) == 0){
+            addString.append("                        Severity.NOTE,\n");
+        }else if(severity.compareTo(Severity.WARNING) == 0){
+            addString.append("                        Severity.WARNING,\n");
+        }
+        addString.append("                        MessageType.NOT_SPECIFIED,\n");
+        addString.append("                        $restriction,\n");
+        addString.append("                        \"${message}\" ) );\n");
+        return addString.toString();
+    }
+
+    protected String getVerifierActionPrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        StringBuilder verifierActionPrefixTemplate = new StringBuilder();
+        verifierActionPrefixTemplate.append("      Map<String,String> impactedRules = new HashMap<String,String>();\n")
+        	.append("      impactedRules.put( $restriction.getPackagePath(), $restriction.getRuleName());\n");
+        return verifierActionPrefixTemplate.toString();
+    }
+
+    protected String getVerifierActionSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "";
+    }
+
+    /* Field Pattern */
+    protected String getVerifierFieldPatternTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        StringBuilder verifierFieldPatternTemplate = new StringBuilder();
+        verifierFieldPatternTemplate.append("      $field :Field(\n");
+        verifierFieldPatternTemplate.append("          objectTypeName == \"${factType}\",\n");
+        verifierFieldPatternTemplate.append("          name == \"${fieldName}\"\n");
+        verifierFieldPatternTemplate.append("      )\n");
+        return verifierFieldPatternTemplate.toString();
+    }
+
+    protected String getVerifierFieldPatternPrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "";
+    }
+
+    protected String getVerifierFieldPatternSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "";
+    }
+
+    /* Globals*/
+    protected String getVerifierGlobalsTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "global VerifierReport result;\n";
+    }
+
+    protected String getVerifierGlobalsPrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "";
+    }
+
+    protected String getVerifierGlobalsSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "";
+    }
+
+    /* Imports */
+    protected String getVerifierImportsTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        StringBuilder verifierImportsTemplate = new StringBuilder();
+        verifierImportsTemplate.append("import org.drools.verifier.components.*;\n");
+        verifierImportsTemplate.append("import java.util.Map;\n");
+        verifierImportsTemplate.append("import java.util.HashMap;\n");
+        verifierImportsTemplate.append("import org.drools.verifier.report.components.VerifierMessage;\n");
+        verifierImportsTemplate.append("import org.drools.verifier.data.VerifierReport;\n");
+        verifierImportsTemplate.append("import org.drools.verifier.report.components.Severity;\n");
+        verifierImportsTemplate.append("import org.drools.verifier.report.components.MessageType;\n");
+
+        return verifierImportsTemplate.toString();
+
+    }
+
+    protected String getVerifierImportsPrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "";
+    }
+
+    protected String getVerifierImportsSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "";
+    }
+
+    protected String getVerifierPackageTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "package org.drools.verifier.consequence\n";
+    }
+
+    protected String getVerifierPackagePrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "";
+    }
+
+    protected String getVerifierPackageSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "";
+    }
+
+    /* Restriction Pattern */
+    protected String getVerifierRestrictionPatternTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        StringBuilder verifierRestrictionPatternTemplate = new StringBuilder();
+        verifierRestrictionPatternTemplate.append("      $restriction :LiteralRestriction(\n");
+        verifierRestrictionPatternTemplate.append("            fieldPath == $field.path,\n");
+        verifierRestrictionPatternTemplate.append("            ${constraints}\n");
+        verifierRestrictionPatternTemplate.append("      )\n");
+
+        return verifierRestrictionPatternTemplate.toString();
+    }
+
+    protected String getVerifierRestrictionPatternPrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "";
+    }
+
+    protected String getVerifierRestrictionPatternSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "";
+    }
+
+    /* end */
+    protected String getVerifierRuleEndTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "end\n";
+    }
+
+    protected String getVerifierRuleEndSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "";
+    }
+
+    /* Rule Name */
+    protected String getVerifierRuleNameTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "rule \"${ruleName}\"\n";
+    }
+
+    protected String getVerifierRuleNamePrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "";
+    }
+
+    protected String getVerifierRuleNameSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "";
+    }
+
+    /* then */
+    protected String getVerifierRuleThenTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "  then\n";
+    }
+
+    /* when */
+    protected String getVerifierRuleWhenTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        return "  when\n";
+    }
+
+    public List<String> getArgumentKeys() {
+    	return new ArrayList<String>();
+    }
+}

Copied: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/DefaultMultiRulesConstraintImpl.java (from rev 32721, labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/DefaultMultiRulesConstraintImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/DefaultMultiRulesConstraintImpl.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/DefaultMultiRulesConstraintImpl.java	2010-05-04 17:57:16 UTC (rev 32724)
@@ -0,0 +1,104 @@
+package org.drools.factconstraints.server;
+
+import java.util.Map;
+
+import org.drools.factconstraints.client.ConstraintConfiguration;
+
+/**
+ * Default implementation for constraints that creates more than one rule
+ * in its {@link #getVerifierRule()} method.
+ * This class contains an internal counter to avoid multiple declaration of
+ * package, imports and globals.
+ * The counter must be handled by subclasses.
+ * @author esteban.aliverti at gmail.com
+ */
+public abstract class DefaultMultiRulesConstraintImpl extends DefaultConstraintImpl {
+
+	private static final long serialVersionUID = 501L;
+	protected static final String RULE_COUNT = "ruleCount";
+	
+    protected void resetRuleCount(Map<String, Object> context){
+        context.put(RULE_COUNT, 0);
+    }
+
+    protected void incrementRuleCount(Map<String, Object> context){
+    	int rc = (Integer) context.get(RULE_COUNT);
+        context.put(RULE_COUNT, ++rc);
+    }
+
+    protected int getRuleCount(Map<String, Object> context){
+    	return (Integer) context.get(RULE_COUNT);
+    }
+    
+    @Override
+    protected String getVerifierGlobalsPrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        if (getRuleCount(context) == 0) {
+            return super.getVerifierGlobalsPrefixTemplate(config, context);
+        }
+        return "";
+    }
+
+    @Override
+    protected String getVerifierGlobalsSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        if (getRuleCount(context) == 0) {
+            return super.getVerifierGlobalsSufixTemplate(config, context);
+        }
+        return "";
+    }
+
+    @Override
+    protected String getVerifierGlobalsTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        if (getRuleCount(context) == 0) {
+            return super.getVerifierGlobalsTemplate(config, context);
+        }
+        return "";
+    }
+
+    @Override
+    protected String getVerifierImportsPrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        if (getRuleCount(context) == 0) {
+            return super.getVerifierImportsPrefixTemplate(config, context);
+        }
+        return "";
+    }
+
+    @Override
+    protected String getVerifierImportsSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        if (getRuleCount(context) == 0) {
+            return super.getVerifierImportsSufixTemplate(config, context);
+        }
+        return "";
+    }
+
+    @Override
+    protected String getVerifierImportsTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        if (getRuleCount(context) == 0) {
+            return super.getVerifierImportsTemplate(config, context);
+        }
+        return "";
+    }
+
+    @Override
+    protected String getVerifierPackagePrefixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        if (getRuleCount(context) == 0) {
+            return super.getVerifierPackagePrefixTemplate(config, context);
+        }
+        return "";
+    }
+
+    @Override
+    protected String getVerifierPackageSufixTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        if (getRuleCount(context) == 0) {
+            return super.getVerifierPackageSufixTemplate(config, context);
+        }
+        return "";
+    }
+
+    @Override
+    protected String getVerifierPackageTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+        if (getRuleCount(context) == 0) {
+            return super.getVerifierPackageTemplate(config, context);
+        }
+        return "";
+    }
+}

Copied: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/factory (from rev 32721, labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/factory)

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/factconstraint/server/factory/ConstraintsFactory.java	2010-05-04 14:26:46 UTC (rev 32721)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/factory/ConstraintsFactory.java	2010-05-04 17:57:16 UTC (rev 32724)
@@ -1,7 +1,7 @@
-package org.drools.factconstraint.server.factory;
+package org.drools.factconstraints.server.factory;
 
-import org.drools.factconstraint.server.Constraint;
 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.MatchesConstraint;
 import org.drools.factconstraints.server.predefined.NotMatchesConstraint;

Modified: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/IntegerConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/IntegerConstraint.java	2010-05-04 17:55:24 UTC (rev 32723)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/IntegerConstraint.java	2010-05-04 17:57:16 UTC (rev 32724)
@@ -4,9 +4,9 @@
 import java.util.List;
 import java.util.Map;
 
-import org.drools.factconstraint.server.DefaultConstraintImpl;
 import org.drools.factconstraints.client.ConstraintConfiguration;
 import org.drools.factconstraints.client.ValidationResult;
+import org.drools.factconstraints.server.DefaultConstraintImpl;
 
 /**
  *

Modified: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/MatchesConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/MatchesConstraint.java	2010-05-04 17:55:24 UTC (rev 32723)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/MatchesConstraint.java	2010-05-04 17:57:16 UTC (rev 32724)
@@ -4,8 +4,8 @@
 import java.util.List;
 import java.util.Map;
 
-import org.drools.factconstraint.server.DefaultConstraintImpl;
 import org.drools.factconstraints.client.ConstraintConfiguration;
+import org.drools.factconstraints.server.DefaultConstraintImpl;
 
 public class MatchesConstraint extends DefaultConstraintImpl {
 

Modified: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/NotMatchesConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/NotMatchesConstraint.java	2010-05-04 17:55:24 UTC (rev 32723)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/NotMatchesConstraint.java	2010-05-04 17:57:16 UTC (rev 32724)
@@ -4,8 +4,8 @@
 import java.util.List;
 import java.util.Map;
 
-import org.drools.factconstraint.server.DefaultConstraintImpl;
 import org.drools.factconstraints.client.ConstraintConfiguration;
+import org.drools.factconstraints.server.DefaultConstraintImpl;
 
 public class NotMatchesConstraint extends DefaultConstraintImpl {
 

Modified: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/NotNullConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/NotNullConstraint.java	2010-05-04 17:55:24 UTC (rev 32723)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/NotNullConstraint.java	2010-05-04 17:57:16 UTC (rev 32724)
@@ -4,9 +4,9 @@
 import java.util.List;
 import java.util.Map;
 
-import org.drools.factconstraint.server.DefaultConstraintImpl;
 import org.drools.factconstraints.client.ConstraintConfiguration;
 import org.drools.factconstraints.client.ValidationResult;
+import org.drools.factconstraints.server.DefaultConstraintImpl;
 
 /**
  * 

Modified: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/RangeConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/RangeConstraint.java	2010-05-04 17:55:24 UTC (rev 32723)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/RangeConstraint.java	2010-05-04 17:57:16 UTC (rev 32724)
@@ -3,10 +3,10 @@
 import java.util.Arrays;
 import java.util.List;
 
-import org.drools.factconstraint.server.Constraint;
 import org.drools.factconstraints.client.ArgumentNotSetException;
 import org.drools.factconstraints.client.ConstraintConfiguration;
 import org.drools.factconstraints.client.ValidationResult;
+import org.drools.factconstraints.server.Constraint;
 
 /**
  * 

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java	2010-05-04 17:55:24 UTC (rev 32723)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java	2010-05-04 17:57:16 UTC (rev 32724)
@@ -59,8 +59,8 @@
 import org.drools.compiler.DrlParser;
 import org.drools.compiler.DroolsParserException;
 import org.drools.core.util.DroolsStreamUtils;
-import org.drools.factconstraint.server.factory.ConstraintsFactory;
 import org.drools.factconstraints.client.ConstraintConfiguration;
+import org.drools.factconstraints.server.factory.ConstraintsFactory;
 import org.drools.guvnor.client.common.AssetFormats;
 import org.drools.guvnor.client.common.Inbox;
 import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;



More information about the jboss-svn-commits mailing list