[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