[jboss-svn-commits] JBL Code SVN: r32311 - in labs/jbossrules/trunk: drools-factconstraint/src/main/java/org/drools/factconstraint/server and 15 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Mar 30 15:20:10 EDT 2010
Author: baunax
Date: 2010-03-30 15:20:05 -0400 (Tue, 30 Mar 2010)
New Revision: 32311
Added:
labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/
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/
labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/factory/ConstraintsFactory.java
labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/ConstraintConfiguration.java
labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/config/
labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/config/SimpleConstraintConfigurationImpl.java
labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/
labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/
labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/DefaultFieldDataProviderImpl.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/NotNullConstraint.java
labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/RangeConstraint.java
Removed:
labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/Constraint.java
labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/DefaultConstraintImpl.java
labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/DefaultMultiRulesConstraintImpl.java
labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/dataprovider/predefined/DefaultFieldDataProviderImpl.java
labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/predefined/
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/NotNullConstraint.java
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/guvnor/client/factconstraints/
Modified:
labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/ArgumentNotSetException.java
labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/helper/ConstraintsContainer.java
labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/IntegerConstraintTest.java
labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/NotNullConstraintTest.java
labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/RangeConstraintSingleOperatorTest.java
labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/RangeConstraintTest.java
labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/helper/ConstraintsConstrainerTest.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/WorkingSetManager.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/WorkingSetConfigData.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ConstraintEditor.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetEditor.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
Log:
refactored drools-constraint to separate constraint configuration from constraint evaluation. In this way we can separate what goes to the client and what need to live in the server.
Added: 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 (rev 0)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/Constraint.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -0,0 +1,21 @@
+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();
+
+}
Property changes on: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/Constraint.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Copied: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/DefaultConstraintImpl.java (from rev 32282, labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/DefaultConstraintImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/DefaultConstraintImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/DefaultConstraintImpl.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -0,0 +1,297 @@
+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");
+// verifierActionTemplate.append(" impactedRules.put( $restriction.getPath(), $restriction.getRuleName());\n");
+// verifierActionTemplate.append(" impactedRules.put( $r.getPath(), $r.getName());\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/factconstraint/server/DefaultMultiRulesConstraintImpl.java (from rev 32282, labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/DefaultMultiRulesConstraintImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/DefaultMultiRulesConstraintImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/DefaultMultiRulesConstraintImpl.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -0,0 +1,104 @@
+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 "";
+ }
+}
Added: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/factory/ConstraintsFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/factory/ConstraintsFactory.java (rev 0)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/factory/ConstraintsFactory.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -0,0 +1,33 @@
+package org.drools.factconstraint.server.factory;
+
+import org.drools.factconstraint.server.Constraint;
+import org.drools.factconstraints.client.ConstraintConfiguration;
+import org.drools.factconstraints.server.predefined.IntegerConstraint;
+import org.drools.factconstraints.server.predefined.NotNullConstraint;
+import org.drools.factconstraints.server.predefined.RangeConstraint;
+
+public class ConstraintsFactory {
+ private final static ConstraintsFactory INSTANCE = new ConstraintsFactory();
+
+ public static ConstraintsFactory getInstance() {
+ return INSTANCE;
+ }
+
+ private ConstraintsFactory() {}
+
+ public Constraint buildConstraint(ConstraintConfiguration config) {
+ if (NotNullConstraint.NAME.equals(config.getConstraintName())) {
+ return new NotNullConstraint();
+ } else if (IntegerConstraint.NAME.equals(config.getConstraintName())) {
+ return new IntegerConstraint();
+ } else if (RangeConstraint.NAME.equals(config.getConstraintName())) {
+ return new RangeConstraint();
+ } else {
+ throw new IllegalArgumentException("Constraint unknown: " + config.getConstraintName());
+ }
+ }
+
+ public String getVerifierRule(ConstraintConfiguration config) {
+ return buildConstraint(config).getVerifierRule(config);
+ }
+}
Property changes on: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraint/server/factory/ConstraintsFactory.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/ArgumentNotSetException.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/ArgumentNotSetException.java 2010-03-30 19:14:06 UTC (rev 32310)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/ArgumentNotSetException.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -6,11 +6,22 @@
*/
public class ArgumentNotSetException extends Exception {
- public ArgumentNotSetException(String message) {
- super(message);
- }
+ private static final long serialVersionUID = 501L;
- public ArgumentNotSetException() {
- }
+ public ArgumentNotSetException() {
+ super();
+ }
+ public ArgumentNotSetException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public ArgumentNotSetException(String message) {
+ super(message);
+ }
+
+ public ArgumentNotSetException(Throwable cause) {
+ super(cause);
+ }
+
}
Deleted: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/Constraint.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/Constraint.java 2010-03-30 19:14:06 UTC (rev 32310)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/Constraint.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -1,23 +0,0 @@
-package org.drools.factconstraints.client;
-
-import java.io.Serializable;
-import java.util.Set;
-
-/**
- *
- * @author esteban.aliverti at gmail.com
- * @author baunax at gmail.com
- */
-public interface Constraint extends Serializable {
- public String getFactType();
- public void setFactType(String factType);
- public String getFieldName();
- public void setFieldName(String fieldName);
- public Set<String> getArgumentKeys();
- public Object getArgumentValue(String key);
- public void setArgumentValue(String key, String value);
-
- public ValidationResult validate(Object value);
- public String getVerifierRule();
- public String getConstraintName();
-}
Added: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/ConstraintConfiguration.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/ConstraintConfiguration.java (rev 0)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/ConstraintConfiguration.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -0,0 +1,25 @@
+package org.drools.factconstraints.client;
+
+import java.io.Serializable;
+import java.util.Set;
+
+/**
+ *
+ * @author esteban.aliverti at gmail.com
+ * @author baunax at gmail.com
+ */
+public interface ConstraintConfiguration extends Serializable {
+ public String getFactType();
+ public void setFactType(String factType);
+
+ public String getFieldName();
+ public void setFieldName(String fieldName);
+
+ public Set<String> getArgumentKeys();
+ public Object getArgumentValue(String key);
+ public void setArgumentValue(String key, String value);
+ public boolean containsArgument(String key);
+
+ public String getConstraintName();
+ public void setConstraintName(String name);
+}
Property changes on: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/ConstraintConfiguration.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Deleted: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/DefaultConstraintImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/DefaultConstraintImpl.java 2010-03-30 19:14:06 UTC (rev 32310)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/DefaultConstraintImpl.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -1,321 +0,0 @@
-package org.drools.factconstraints.client;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import org.drools.base.evaluators.Operator;
-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 long ruleNum = 0;
- private String factType;
- private String fieldName;
- private Map<String, String> arguments = new HashMap<String, String>();
-
-
- 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);
- }
-
- public DefaultConstraintImpl() {
-
- }
-
- private String concatRule() {
- StringBuilder rule = new StringBuilder();
-
- rule.append(this.getVerifierPackagePrefixTemplate());
- rule.append(this.getVerifierPackageTemplate());
- rule.append(this.getVerifierPackageSufixTemplate());
-
- rule.append(this.getVerifierImportsPrefixTemplate());
- rule.append(this.getVerifierImportsTemplate());
- rule.append(this.getVerifierImportsSufixTemplate());
-
- rule.append(this.getVerifierGlobalsPrefixTemplate());
- rule.append(this.getVerifierGlobalsTemplate());
- rule.append(this.getVerifierGlobalsSufixTemplate());
-
- rule.append(this.getVerifierRuleNamePrefixTemplate());
- rule.append(this.getVerifierRuleNameTemplate());
- rule.append(this.getVerifierRuleNameSufixTemplate());
-
- rule.append(this.getVerifierRuleWhenTemplate());
-
- rule.append(this.getVerifierFieldPatternPrefixTemplate());
- rule.append(this.getVerifierFieldPatternTemplate());
- rule.append(this.getVerifierFieldPatternSufixTemplate());
-
- rule.append(this.getVerifierRestrictionPatternPrefixTemplate());
- rule.append(this.getVerifierRestrictionPatternTemplate());
- rule.append(this.getVerifierRestrictionPatternSufixTemplate());
-
- rule.append(this.getVerifierRuleThenTemplate());
-
- rule.append(this.getVerifierActionPrefixTemplate());
- rule.append(this.getVerifierActionTemplate());
- rule.append(this.getVerifierActionSufixTemplate());
-
- rule.append(this.getVerifierRuleEndTemplate());
- rule.append(this.getVerifierRuleEndSufixTemplate());
-
-
- return rule.toString();
-
- }
-
- protected String createVerifierRuleTemplate(String ruleName, List<String> constraints, String message) {
- if (ruleName == null) {
- ruleName = "Constraint_rule";
-
- }
- ruleName += "_" + ruleNum++;
- String rule = this.concatRule().replace("${ruleName}", ruleName);
- rule = rule.replace("${factType}", this.getFactType());
- rule = rule.replace("${fieldName}", this.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) throws ArgumentNotSetException {
- if (!this.arguments.containsKey(key)) {
- throw new ArgumentNotSetException("The argument " + key + " doesn't exist.");
- }
-
- Object value = this.getArgumentValue(key);
-
- if (value == null) {
- throw new ArgumentNotSetException("The argument " + key + " is null.");
- }
-
- return value;
- }
-
- public void setFactType(String factType) {
- this.factType = factType;
- }
-
- public void setFieldName(String fieldName) {
- this.fieldName = fieldName;
- }
-
- public String getFactType() {
- return factType;
- }
-
- public String getFieldName() {
- return fieldName;
- }
-
- public Set<String> getArgumentKeys() {
- return this.arguments.keySet();
- }
-
- public Object getArgumentValue(String key) {
- return this.arguments.get(key);
- }
-
- public void setArgumentValue(String key, String value) {
- this.arguments.put(key, value);
- }
-
- public ValidationResult validate(Object value) {
- ValidationResult result = new ValidationResult();
- result.setSuccess(true);
-
- return result;
- }
-
- public String getVerifierRule() {
- return null;
- }
-
- public String getConstraintName() {
- return getClass().getName().substring(getClass().getName().lastIndexOf('.') + 1);
- }
-
- /* Action */
- protected String getVerifierActionTemplate() {
- 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() {
- StringBuilder verifierActionPrefixTemplate = new StringBuilder();
- verifierActionPrefixTemplate.append(" Map<String,String> impactedRules = new HashMap<String,String>();\n");
-// verifierActionTemplate.append(" impactedRules.put( $restriction.getPath(), $restriction.getRuleName());\n");
-// verifierActionTemplate.append(" impactedRules.put( $r.getPath(), $r.getName());\n");
- return verifierActionPrefixTemplate.toString();
- }
-
- protected String getVerifierActionSufixTemplate() {
- return "";
- }
-
- /* Field Pattern */
- protected String getVerifierFieldPatternTemplate() {
- 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() {
- return "";
- }
-
- protected String getVerifierFieldPatternSufixTemplate() {
- return "";
- }
-
- /* Globals*/
- protected String getVerifierGlobalsTemplate() {
- return "global VerifierReport result;\n";
- }
-
- protected String getVerifierGlobalsPrefixTemplate() {
- return "";
- }
-
- protected String getVerifierGlobalsSufixTemplate() {
- return "";
- }
-
- /* Imports */
- protected String getVerifierImportsTemplate() {
- 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() {
- return "";
- }
-
- protected String getVerifierImportsSufixTemplate() {
- return "";
- }
-
- protected String getVerifierPackageTemplate() {
- return "package org.drools.verifier.consequence\n";
- }
-
- protected String getVerifierPackagePrefixTemplate() {
- return "";
- }
-
- protected String getVerifierPackageSufixTemplate() {
- return "";
- }
-
- /* Restriction Pattern */
- protected String getVerifierRestrictionPatternTemplate() {
- 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() {
- return "";
- }
-
- protected String getVerifierRestrictionPatternSufixTemplate() {
- return "";
- }
-
- /* end */
- protected String getVerifierRuleEndTemplate() {
- return "end\n";
- }
-
- protected String getVerifierRuleEndSufixTemplate() {
- return "";
- }
-
- /* Rule Name */
- protected String getVerifierRuleNameTemplate() {
- return "rule \"${ruleName}\"\n";
- }
-
- protected String getVerifierRuleNamePrefixTemplate() {
- return "";
- }
-
- protected String getVerifierRuleNameSufixTemplate() {
- return "";
- }
-
- /* then */
- protected String getVerifierRuleThenTemplate() {
- return " then\n";
- }
-
- /* when */
- protected String getVerifierRuleWhenTemplate() {
- return " when\n";
- }
-
-
-}
Deleted: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/DefaultMultiRulesConstraintImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/DefaultMultiRulesConstraintImpl.java 2010-03-30 19:14:06 UTC (rev 32310)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/DefaultMultiRulesConstraintImpl.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -1,94 +0,0 @@
-package org.drools.factconstraints.client;
-
-/**
- * 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 class DefaultMultiRulesConstraintImpl extends DefaultConstraintImpl {
-
- private int ruleCount;
-
- protected void resetRuleCount(){
- this.ruleCount = 0;
- }
-
- protected void incrementRuleCount(){
- this.ruleCount++;
- }
-
- @Override
- protected String getVerifierGlobalsPrefixTemplate() {
- if (ruleCount == 0) {
- return super.getVerifierGlobalsPrefixTemplate();
- }
- return "";
- }
-
- @Override
- protected String getVerifierGlobalsSufixTemplate() {
- if (ruleCount == 0) {
- return super.getVerifierGlobalsSufixTemplate();
- }
- return "";
- }
-
- @Override
- protected String getVerifierGlobalsTemplate() {
- if (ruleCount == 0) {
- return super.getVerifierGlobalsTemplate();
- }
- return "";
- }
-
- @Override
- protected String getVerifierImportsPrefixTemplate() {
- if (ruleCount == 0) {
- return super.getVerifierImportsPrefixTemplate();
- }
- return "";
- }
-
- @Override
- protected String getVerifierImportsSufixTemplate() {
- if (ruleCount == 0) {
- return super.getVerifierImportsSufixTemplate();
- }
- return "";
- }
-
- @Override
- protected String getVerifierImportsTemplate() {
- if (ruleCount == 0) {
- return super.getVerifierImportsTemplate();
- }
- return "";
- }
-
- @Override
- protected String getVerifierPackagePrefixTemplate() {
- if (ruleCount == 0) {
- return super.getVerifierPackagePrefixTemplate();
- }
- return "";
- }
-
- @Override
- protected String getVerifierPackageSufixTemplate() {
- if (ruleCount == 0) {
- return super.getVerifierPackageSufixTemplate();
- }
- return "";
- }
-
- @Override
- protected String getVerifierPackageTemplate() {
- if (ruleCount == 0) {
- return super.getVerifierPackageTemplate();
- }
- return "";
- }
-}
Added: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/config/SimpleConstraintConfigurationImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/config/SimpleConstraintConfigurationImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/config/SimpleConstraintConfigurationImpl.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -0,0 +1,56 @@
+package org.drools.factconstraints.client.config;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.drools.factconstraints.client.ConstraintConfiguration;
+
+public class SimpleConstraintConfigurationImpl implements ConstraintConfiguration {
+
+ private static final long serialVersionUID = 501L;
+ private Map<String, String> args = new HashMap<String, String>();
+ private String constraintName = null;
+ private String factType;
+ private String fieldName;
+
+ public Set<String> getArgumentKeys() {
+ return args.keySet();
+ }
+
+ public Object getArgumentValue(String key) {
+ return args.get(key);
+ }
+
+ public String getConstraintName() {
+ return constraintName;
+ }
+
+ public void setConstraintName(String constraintName) {
+ this.constraintName = constraintName;
+ }
+
+ public String getFactType() {
+ return factType;
+ }
+
+ public String getFieldName() {
+ return fieldName;
+ }
+
+ public void setArgumentValue(String key, String value) {
+ args.put(key, value);
+ }
+
+ public void setFactType(String factType) {
+ this.factType = factType;
+ }
+
+ public void setFieldName(String fieldName) {
+ this.fieldName = fieldName;
+ }
+
+ public boolean containsArgument(String key) {
+ return args.containsKey(key);
+ }
+}
Property changes on: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/config/SimpleConstraintConfigurationImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Deleted: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/dataprovider/predefined/DefaultFieldDataProviderImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/dataprovider/predefined/DefaultFieldDataProviderImpl.java 2010-03-30 19:14:06 UTC (rev 32310)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/dataprovider/predefined/DefaultFieldDataProviderImpl.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -1,65 +0,0 @@
-package org.drools.factconstraints.client.dataprovider.predefined;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.drools.factconstraints.client.ArgumentNotSetException;
-import org.drools.factconstraints.client.dataprovider.FieldDataProvider;
-
-/**
- *
- * @author esteban.aliverti at gmail.com
- */
-public abstract class DefaultFieldDataProviderImpl implements FieldDataProvider {
-
- private String factType;
- private String fieldName;
- private Map<String, Object> arguments = new HashMap<String, Object>();
-
- public DefaultFieldDataProviderImpl() {
-
- }
-
- protected Object getMandatoryArgument(String key) throws ArgumentNotSetException {
- if (!this.arguments.containsKey(key)) {
- throw new ArgumentNotSetException("The argument " + key + " doesn't exist.");
- }
-
- Object value = this.getArgumentValue(key);
-
- if (value == null) {
- throw new ArgumentNotSetException("The argument " + key + " is null.");
- }
-
- return value;
- }
-
- public void setFactType(String factType) {
- this.factType = factType;
- }
-
- public void setFieldName(String fieldName) {
- this.fieldName = fieldName;
- }
-
- public String getFactType() {
- return factType;
- }
-
- public String getFieldName() {
- return fieldName;
- }
-
- public String[] getArgumentKeys() {
- return this.arguments.keySet().toArray(new String[this.arguments.size()]);
- }
-
- public Object getArgumentValue(String key) {
- return this.arguments.get(key);
- }
-
- public void setArgumentValue(String key, Object value) {
- this.arguments.put(key, value);
- }
-
-}
Modified: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/helper/ConstraintsContainer.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/helper/ConstraintsContainer.java 2010-03-30 19:14:06 UTC (rev 32310)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/helper/ConstraintsContainer.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -8,18 +8,37 @@
import java.util.List;
import java.util.Map;
-import org.drools.factconstraints.client.Constraint;
+import org.drools.factconstraints.client.ConstraintConfiguration;
+import org.drools.factconstraints.client.config.SimpleConstraintConfigurationImpl;
public class ConstraintsContainer {
- Map<String, List<Constraint>> constraints = new HashMap<String, List<Constraint>>();
+ private static final Map<String, ConstraintConfiguration> constraintConfigs = new HashMap<String, ConstraintConfiguration>();
- public ConstraintsContainer(Constraint[] constraints) {
+ static {
+ ConstraintConfiguration config = new SimpleConstraintConfigurationImpl();
+ config.setConstraintName("NotNull");
+ constraintConfigs.put(config.getConstraintName(), config);
+
+ config = new SimpleConstraintConfigurationImpl();
+ config.setConstraintName("IntegerConstraint");
+ constraintConfigs.put(config.getConstraintName(), config);
+
+ config = new SimpleConstraintConfigurationImpl();
+ config.setConstraintName("RangeConstraint");
+ config.setArgumentValue("Min.value", "0");
+ config.setArgumentValue("Max.value", "0");
+ constraintConfigs.put(config.getConstraintName(), config);
+ }
+
+ private Map<String, List<ConstraintConfiguration>> constraints = new HashMap<String, List<ConstraintConfiguration>>();
+
+ public ConstraintsContainer(ConstraintConfiguration[] constraints) {
this(Arrays.asList(constraints));
}
- public ConstraintsContainer(Collection<Constraint> constraints) {
+ public ConstraintsContainer(Collection<ConstraintConfiguration> constraints) {
if (constraints != null && !constraints.isEmpty()) {
- for (Constraint c : constraints) {
+ for (ConstraintConfiguration c : constraints) {
addConstraint(c);
}
}
@@ -29,34 +48,34 @@
}
- public void removeConstraint(Constraint c) {
- List<Constraint> list = constraints.get(c.getFactType());
+ public void removeConstraint(ConstraintConfiguration c) {
+ List<ConstraintConfiguration> list = constraints.get(c.getFactType());
if (list != null) {
list.remove(c);
}
}
- public void addConstraint(Constraint c) {
- List<Constraint> list = constraints.get(c.getFactType());
+ public void addConstraint(ConstraintConfiguration c) {
+ List<ConstraintConfiguration> list = constraints.get(c.getFactType());
if (list == null) {
- list = new LinkedList<Constraint>();
+ list = new LinkedList<ConstraintConfiguration>();
constraints.put(c.getFactType(), list);
}
list.add(c);
}
- public List<Constraint> getConstraints(String factType) {
+ public List<ConstraintConfiguration> getConstraints(String factType) {
return Collections.unmodifiableList(constraints.get(factType));
}
- public List<Constraint> getConstraints(String factType, String fieldName) {
+ public List<ConstraintConfiguration> getConstraints(String factType, String fieldName) {
- List<Constraint> list = constraints.get(factType);
+ List<ConstraintConfiguration> list = constraints.get(factType);
if (list == null || list.isEmpty()) {
return Collections.emptyList();
}
- List<Constraint> res = new LinkedList<Constraint>();
- for (Constraint c : list) {
+ List<ConstraintConfiguration> res = new LinkedList<ConstraintConfiguration>();
+ for (ConstraintConfiguration c : list) {
if (fieldName.equals(c.getFieldName())) {
res.add(c);
}
@@ -67,4 +86,12 @@
public boolean hasConstraints(String FactType) {
return constraints.containsKey(FactType);
}
+
+ public static Map<String, ConstraintConfiguration> getAllConfigurations() {
+ return constraintConfigs;
+ }
+
+ public static ConstraintConfiguration getEmptyConfiguration(String constraintName) {
+ return getAllConfigurations().get(constraintName);
+ }
}
Copied: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined (from rev 32282, labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/predefined)
Copied: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/DefaultFieldDataProviderImpl.java (from rev 32282, labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/dataprovider/predefined/DefaultFieldDataProviderImpl.java)
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/DefaultFieldDataProviderImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/DefaultFieldDataProviderImpl.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -0,0 +1,64 @@
+package org.drools.factconstraints.server.predefined;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.factconstraints.client.ArgumentNotSetException;
+import org.drools.factconstraints.client.dataprovider.FieldDataProvider;
+
+/**
+ *
+ * @author esteban.aliverti at gmail.com
+ */
+public abstract class DefaultFieldDataProviderImpl implements FieldDataProvider {
+
+ private String factType;
+ private String fieldName;
+ private Map<String, Object> arguments = new HashMap<String, Object>();
+
+ public DefaultFieldDataProviderImpl() {
+
+ }
+
+ protected Object getMandatoryArgument(String key) throws ArgumentNotSetException {
+ if (!this.arguments.containsKey(key)) {
+ throw new ArgumentNotSetException("The argument " + key + " doesn't exist.");
+ }
+
+ Object value = this.getArgumentValue(key);
+
+ if (value == null) {
+ throw new ArgumentNotSetException("The argument " + key + " is null.");
+ }
+
+ return value;
+ }
+
+ public void setFactType(String factType) {
+ this.factType = factType;
+ }
+
+ public void setFieldName(String fieldName) {
+ this.fieldName = fieldName;
+ }
+
+ public String getFactType() {
+ return factType;
+ }
+
+ public String getFieldName() {
+ return fieldName;
+ }
+
+ public String[] getArgumentKeys() {
+ return this.arguments.keySet().toArray(new String[this.arguments.size()]);
+ }
+
+ public Object getArgumentValue(String key) {
+ return this.arguments.get(key);
+ }
+
+ public void setArgumentValue(String key, Object value) {
+ this.arguments.put(key, value);
+ }
+}
\ No newline at end of file
Deleted: 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/client/predefined/IntegerConstraint.java 2010-03-29 18:05:47 UTC (rev 32282)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/IntegerConstraint.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -1,52 +0,0 @@
-package org.drools.factconstraints.client.predefined;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.drools.factconstraints.client.DefaultConstraintImpl;
-import org.drools.factconstraints.client.ValidationResult;
-
-/**
- *
- * @author esteban.aliverti at gmail.com
- */
-public class IntegerConstraint extends DefaultConstraintImpl {
-
-
- public IntegerConstraint(){
- }
-
- @Override
- public String getVerifierRule() {
- List<String> constraints = new ArrayList<String>();
- constraints.add("valueType != Field.INT");
-
- return this.createVerifierRuleTemplate("Integer_Field_Constraint", constraints, "The value must be an integer"); //I18N
- }
-
- @Override
- public ValidationResult validate(Object value) {
- ValidationResult result = new ValidationResult();
-
- if (value == null){
- result.setSuccess(false);
- result.setMessage("The value is null"); //TODO: I18N
- }else if (value instanceof Integer){
- result.setSuccess(true);
- }else if (value instanceof String){
- try{
- Integer.parseInt((String)value);
- result.setSuccess(true);
- } catch(NumberFormatException ex){
- result.setSuccess(false);
- result.setMessage(ex.getMessage()); //TODO: I18N
- }
- }else{
- result.setSuccess(false);
- result.setMessage("Invalid value type "+value.getClass().getName()); //TODO: I18N
- }
-
- return result;
- }
-
-}
Copied: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/IntegerConstraint.java (from rev 32284, labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/predefined/IntegerConstraint.java)
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/IntegerConstraint.java (rev 0)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/IntegerConstraint.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -0,0 +1,54 @@
+package org.drools.factconstraints.server.predefined;
+
+import java.util.ArrayList;
+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;
+
+/**
+ *
+ * @author esteban.aliverti at gmail.com
+ */
+public class IntegerConstraint extends DefaultConstraintImpl {
+ private static final long serialVersionUID = 501L;
+ public static final String NAME = "IntegerConstraint";
+
+ public IntegerConstraint(){}
+
+ @Override
+ protected String internalVerifierRule(ConstraintConfiguration config,
+ Map<String, Object> context) {
+ List<String> constraints = new ArrayList<String>();
+ constraints.add("valueType != Field.INT");
+
+ return this.createVerifierRuleTemplate(config, context, "Integer_Field_Constraint", constraints, "The value must be an integer"); //I18N
+ }
+
+ @Override
+ public ValidationResult validate(Object value, ConstraintConfiguration config) {
+ ValidationResult result = new ValidationResult();
+
+ if (value == null){
+ result.setSuccess(false);
+ result.setMessage("The value is null"); //TODO: I18N
+ }else if (value instanceof Integer){
+ result.setSuccess(true);
+ }else if (value instanceof String){
+ try{
+ Integer.parseInt((String)value);
+ result.setSuccess(true);
+ } catch(NumberFormatException ex){
+ result.setSuccess(false);
+ result.setMessage(ex.getMessage()); //TODO: I18N
+ }
+ }else{
+ result.setSuccess(false);
+ result.setMessage("Invalid value type "+value.getClass().getName()); //TODO: I18N
+ }
+
+ return result;
+ }
+}
Deleted: 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/client/predefined/NotNullConstraint.java 2010-03-29 18:05:47 UTC (rev 32282)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/NotNullConstraint.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -1,41 +0,0 @@
-package org.drools.factconstraints.client.predefined;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.drools.factconstraints.client.DefaultConstraintImpl;
-import org.drools.factconstraints.client.ValidationResult;
-
-/**
- *
- * @author esteban.aliverti at gmail.com
- */
-public class NotNullConstraint extends DefaultConstraintImpl {
-
-
- public NotNullConstraint(){
- }
-
- @Override
- public String getVerifierRule() {
- List<String> constraints = new ArrayList<String>();
- constraints.add("valueType == Field.UNKNOWN");
-
- return this.createVerifierRuleTemplate("Not_null_Field_Constraint", constraints, "The value could not be null"); //I18N
- }
-
- @Override
- public ValidationResult validate(Object value) {
- ValidationResult result = new ValidationResult();
-
- if (value == null){
- result.setSuccess(false);
- result.setMessage("The value could not be null"); //TODO: I18N
- }else {
- result.setSuccess(true);
- }
-
- return result;
- }
-
-}
Copied: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/NotNullConstraint.java (from rev 32284, labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/predefined/NotNullConstraint.java)
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/NotNullConstraint.java (rev 0)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/NotNullConstraint.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -0,0 +1,48 @@
+package org.drools.factconstraints.server.predefined;
+
+import java.util.ArrayList;
+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;
+
+/**
+ *
+ * @author esteban.aliverti at gmail.com
+ */
+public class NotNullConstraint extends DefaultConstraintImpl {
+ private static final long serialVersionUID = 501L;
+ public static final String NAME = "NotNull";
+
+ public NotNullConstraint() {
+ }
+
+ @Override
+ protected String internalVerifierRule(ConstraintConfiguration config,
+ Map<String, Object> context) {
+ List<String> constraints = new ArrayList<String>();
+ constraints.add("valueType == Field.UNKNOWN");
+
+ return this.createVerifierRuleTemplate(config, context,
+ "Not_null_Field_Constraint", constraints,
+ "The value could not be null"); // I18N
+ }
+
+ @Override
+ public ValidationResult validate(Object value,
+ ConstraintConfiguration config) {
+ ValidationResult result = new ValidationResult();
+
+ if (value == null) {
+ result.setSuccess(false);
+ result.setMessage("The value could not be null"); // TODO: I18N
+ } else {
+ result.setSuccess(true);
+ }
+
+ return result;
+ }
+
+}
Deleted: 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/client/predefined/RangeConstraint.java 2010-03-29 18:05:47 UTC (rev 32282)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/RangeConstraint.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -1,138 +0,0 @@
-package org.drools.factconstraints.client.predefined;
-
-import org.drools.base.evaluators.Operator;
-import org.drools.factconstraints.client.ArgumentNotSetException;
-import org.drools.factconstraints.client.DefaultMultiRulesConstraintImpl;
-import org.drools.factconstraints.client.ValidationResult;
-import org.drools.verifier.report.components.Severity;
-
-/**
- *
- * @author esteban.aliverti at gmail.com
- */
-public class RangeConstraint extends DefaultMultiRulesConstraintImpl {
-
- public static final String RANGE_CONSTRAINT_MIN = "Min.value";
- public static final String RANGE_CONSTRAINT_MAX = "Max.value";
-
- private Operator currentOperator;
-
- public RangeConstraint() {
- //set default values
- this.setArgumentValue(RANGE_CONSTRAINT_MIN, "0");
- this.setArgumentValue(RANGE_CONSTRAINT_MAX, "0");
- }
-
- @Override
- public String getVerifierRule() {
-
- this.resetRuleCount();
-
- StringBuilder rules = new StringBuilder();
- for (Operator operator : RangeConstraint.supportedOperators) {
- this.currentOperator = operator;
- rules.append(this.createVerifierRuleTemplate("Range_Field_Constraint_"+this.currentOperator.getOperatorString(), null, this.getResultMessage()));
- this.incrementRuleCount();
- }
-
- return rules.toString();
- }
-
- private String getResultMessage(){
- if (this.currentOperator.getOperatorString().equals(Operator.NOT_EQUAL.getOperatorString())){
- return "The value must be between " + getMin() + " and " + getMax(); //I18N
- }else{
- return "The value must be between " + getMin() + " and " + getMax(); //I18N
- }
- }
-
- @Override
- public ValidationResult validate(Object value) {
- ValidationResult result = new ValidationResult();
-
- try {
- if (value == null || !(value instanceof Number || value instanceof String)) {
- result.setSuccess(false);
- if (value == null) {
- result.setMessage("The value is null"); //TODO: I18N
- } else {
- result.setMessage("Invalid value type " + value.getClass().getName()); //TODO: I18N
- }
- } else {
- double min = Double.parseDouble(getMin());
- double max = Double.parseDouble(getMax());
- double d = Double.parseDouble(value.toString());
- result.setSuccess(d > min && d < max);
- if (!result.isSuccess()) {
- result.setMessage("The value should be between " + min + " and " + max); //TODO: I18N
- }
- }
- } catch (Throwable t) {
- result.setSuccess(false);
- result.setMessage(t.getMessage()); //TODO: I18N
- }
-
- return result;
- }
-
- public String getMin() {
- try {
- return (String) this.getMandatoryArgument(RANGE_CONSTRAINT_MIN);
- } catch (ArgumentNotSetException e) {
- throw new IllegalStateException(e);
- }
- }
-
- public String getMax() {
- try {
- return (String) this.getMandatoryArgument(RANGE_CONSTRAINT_MAX);
- } catch (ArgumentNotSetException e) {
- throw new IllegalStateException(e);
- }
- }
-
- @Override
- protected String getVerifierRestrictionPatternTemplate() {
- StringBuilder restrictionPattern = new StringBuilder();
-
- restrictionPattern.append(" ($restriction :LiteralRestriction(\n");
- restrictionPattern.append(" fieldPath == $field.path,\n");
- restrictionPattern.append(this.getOperatorPattern());
- restrictionPattern.append(" ((valueType == Field.INT && (intValue < " + getMin() + " || > " + getMax() + ")) ");
- restrictionPattern.append(" || ");
- restrictionPattern.append(" (valueType == Field.DOUBLE && (doubleValue < " + getMin() + " || > " + getMax() + ")) ");
- restrictionPattern.append(" )))\n");
-
- return restrictionPattern.toString();
- }
-
- private String getOperatorPattern() {
- return " operator.operatorString == '"+this.currentOperator.getOperatorString()+"',\n";
- }
-
- @Override
- protected String getVerifierActionTemplate() {
- StringBuilder verifierActionTemplate = new StringBuilder();
-
-
- if (this.currentOperator.getOperatorString().equals(Operator.EQUAL.getOperatorString())){
- verifierActionTemplate.append(this.addResult(Severity.ERROR));
- } else if (this.currentOperator.getOperatorString().equals(Operator.NOT_EQUAL.getOperatorString())){
- verifierActionTemplate.append(this.addResult(Severity.WARNING));
- } else{
- return super.getVerifierActionTemplate();
- }
-
- return verifierActionTemplate.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";
-// }
-}
Copied: labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/RangeConstraint.java (from rev 32284, labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/client/predefined/RangeConstraint.java)
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/RangeConstraint.java (rev 0)
+++ labs/jbossrules/trunk/drools-factconstraint/src/main/java/org/drools/factconstraints/server/predefined/RangeConstraint.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -0,0 +1,158 @@
+package org.drools.factconstraints.server.predefined;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.base.evaluators.Operator;
+import org.drools.factconstraint.server.DefaultMultiRulesConstraintImpl;
+import org.drools.factconstraints.client.ArgumentNotSetException;
+import org.drools.factconstraints.client.ConstraintConfiguration;
+import org.drools.factconstraints.client.ValidationResult;
+import org.drools.factconstraints.client.config.SimpleConstraintConfigurationImpl;
+import org.drools.verifier.report.components.Severity;
+
+/**
+ *
+ * @author esteban.aliverti at gmail.com
+ */
+public class RangeConstraint extends DefaultMultiRulesConstraintImpl {
+
+ private static final long serialVersionUID = 501L;
+ public static final String NAME = "RangeConstraint";
+
+ public static final String RANGE_CONSTRAINT_MIN = "Min.value";
+ public static final String RANGE_CONSTRAINT_MAX = "Max.value";
+
+ public static final String CURRENT_OPERATOR = "currOperator";
+
+// private Operator currentOperator;
+
+ @Override
+ protected String internalVerifierRule(ConstraintConfiguration config, Map<String, Object> context) {
+
+ this.resetRuleCount(context);
+
+ StringBuilder rules = new StringBuilder();
+ for (Operator operator : RangeConstraint.supportedOperators) {
+ setCurrentOperator(context, operator);
+ rules.append(this.createVerifierRuleTemplate(config, context,
+ "Range_Field_Constraint_" + operator.getOperatorString(),
+ Collections.<String> emptyList(), this.getResultMessage(config, context)));
+ this.incrementRuleCount(context);
+ }
+
+ return rules.toString();
+ }
+
+ private String getResultMessage(ConstraintConfiguration conf, Map<String, Object> context) {
+ if (getCurrentOperator(context).getOperatorString().equals(Operator.NOT_EQUAL.getOperatorString())) {
+ return "The value must be between " + getMin(conf) + " and " + getMax(conf); // I18N
+ } else {
+ return "The value must be between " + getMin(conf) + " and " + getMax(conf); // I18N
+ }
+ }
+
+ @Override
+ public ValidationResult validate(Object value, ConstraintConfiguration config) {
+ ValidationResult result = new ValidationResult();
+
+ try {
+ if (value == null || !(value instanceof Number || value instanceof String)) {
+ result.setSuccess(false);
+ if (value == null) {
+ result.setMessage("The value is null"); // TODO: I18N
+ } else {
+ result.setMessage("Invalid value type " + value.getClass().getName()); // TODO:
+ // I18N
+ }
+ } else {
+ double min = Double.parseDouble(getMin(config));
+ double max = Double.parseDouble(getMax(config));
+ double d = Double.parseDouble(value.toString());
+ result.setSuccess(d > min && d < max);
+ if (!result.isSuccess()) {
+ result.setMessage("The value should be between " + min + " and " + max); // TODO:
+ // I18N
+ }
+ }
+ } catch (Throwable t) {
+ result.setSuccess(false);
+ result.setMessage(t.getMessage()); // TODO: I18N
+ }
+
+ return result;
+ }
+
+ public String getMin(ConstraintConfiguration conf) {
+ try {
+ return (String) this.getMandatoryArgument(RANGE_CONSTRAINT_MIN, conf);
+ } catch (ArgumentNotSetException e) {
+ throw new IllegalStateException(e);
+ }
+ }
+
+ public String getMax(ConstraintConfiguration conf) {
+ try {
+ return (String) this.getMandatoryArgument(RANGE_CONSTRAINT_MAX, conf);
+ } catch (ArgumentNotSetException e) {
+ throw new IllegalStateException(e);
+ }
+ }
+
+ @Override
+ protected String getVerifierRestrictionPatternTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+ StringBuilder restrictionPattern = new StringBuilder();
+
+ restrictionPattern.append(" ($restriction :LiteralRestriction(\n");
+ restrictionPattern.append(" fieldPath == $field.path,\n");
+ restrictionPattern.append(this.getOperatorPattern(context));
+ restrictionPattern.append(" ((valueType == Field.INT && (intValue < ")
+ .append(getMin(config)).append(" || > ").append(getMax(config)).append(")) ");
+ restrictionPattern.append(" || \n");
+ restrictionPattern.append(" (valueType == Field.DOUBLE && (doubleValue < ")
+ .append(getMin(config)).append(" || > ").append(getMax(config)).append(")) ");
+ restrictionPattern.append(" )))\n");
+
+ return restrictionPattern.toString();
+ }
+
+ private String getOperatorPattern(Map<String, Object> context) {
+ return " operator.operatorString == '" + getCurrentOperator(context).getOperatorString() + "',\n";
+ }
+
+ @Override
+ protected String getVerifierActionTemplate(ConstraintConfiguration config, Map<String, Object> context) {
+ StringBuilder verifierActionTemplate = new StringBuilder();
+
+ if (getCurrentOperator(context).getOperatorString().equals(Operator.EQUAL.getOperatorString())) {
+ verifierActionTemplate.append(this.addResult(Severity.ERROR));
+ } else if (getCurrentOperator(context).getOperatorString().equals(Operator.NOT_EQUAL.getOperatorString())) {
+ verifierActionTemplate.append(this.addResult(Severity.WARNING));
+ } else {
+ return super.getVerifierActionTemplate(config, context);
+ }
+
+ return verifierActionTemplate.toString();
+ }
+
+ public List<String> getArgumentKeys() {
+ return Arrays.asList(new String[] { RANGE_CONSTRAINT_MIN, RANGE_CONSTRAINT_MAX });
+ }
+
+ private Operator getCurrentOperator(Map<String, Object> context) {
+ return (Operator) context.get(CURRENT_OPERATOR);
+ }
+
+ private void setCurrentOperator(Map<String, Object> context, Operator operator) {
+ context.put(CURRENT_OPERATOR, operator);
+ }
+
+ public static ConstraintConfiguration getEmptyConfiguration() {
+ ConstraintConfiguration config = new SimpleConstraintConfigurationImpl();
+ config.setArgumentValue("Min.value", "0");
+ config.setArgumentValue("Max.value", "0");
+ return config;
+ }
+}
Modified: labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/IntegerConstraintTest.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/IntegerConstraintTest.java 2010-03-30 19:14:06 UTC (rev 32310)
+++ labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/IntegerConstraintTest.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -3,9 +3,11 @@
import java.util.Collection;
import org.drools.builder.ResourceType;
-import org.drools.factconstraints.client.Constraint;
+import org.drools.factconstraint.server.Constraint;
+import org.drools.factconstraints.client.ConstraintConfiguration;
import org.drools.factconstraints.client.ValidationResult;
-import org.drools.factconstraints.client.predefined.IntegerConstraint;
+import org.drools.factconstraints.client.config.SimpleConstraintConfigurationImpl;
+import org.drools.factconstraints.server.predefined.IntegerConstraint;
import org.drools.io.ResourceFactory;
import org.drools.verifier.Verifier;
import org.drools.verifier.VerifierConfiguration;
@@ -26,65 +28,61 @@
*/
public class IntegerConstraintTest {
- private Constraint cons;
+ private ConstraintConfiguration conf;
@Before
public void setup() {
- cons = new IntegerConstraint();
- cons.setFactType("Person");
- cons.setFieldName("age");
-
-
- System.out.println("Validation Rule:\n" + cons.getVerifierRule() + "\n\n");
-
+ conf = new SimpleConstraintConfigurationImpl();
+ conf.setFactType("Person");
+ conf.setFieldName("age");
}
@Test
public void testValidConstraint() {
-
- ValidationResult result = cons.validate(12);
+ Constraint cons = new IntegerConstraint();
+
+ ValidationResult result = cons.validate(12, conf);
Assert.assertTrue(result.isSuccess());
- result = cons.validate(new Integer("12"));
+ result = cons.validate(new Integer("12"), conf);
Assert.assertTrue(result.isSuccess());
- result = cons.validate("12");
+ result = cons.validate("12", conf);
Assert.assertTrue(result.isSuccess());
}
@Test
public void testInvalidConstraint() {
-
- ValidationResult result = cons.validate(new Object());
+ Constraint cons = new IntegerConstraint();
+
+ ValidationResult result = cons.validate(new Object(), conf);
Assert.assertFalse(result.isSuccess());
System.out.println("Message: " + result.getMessage());
- result = cons.validate("");
+ result = cons.validate("", conf);
Assert.assertFalse(result.isSuccess());
System.out.println("Message: " + result.getMessage());
- result = cons.validate("ABC");
+ result = cons.validate("ABC", conf);
Assert.assertFalse(result.isSuccess());
System.out.println("Message: " + result.getMessage());
- result = cons.validate(null);
+ result = cons.validate(null, conf);
Assert.assertFalse(result.isSuccess());
System.out.println("Message: " + result.getMessage());
- result = cons.validate(new Long("12"));
+ result = cons.validate(new Long("12"), conf);
Assert.assertFalse(result.isSuccess());
System.out.println("Message: " + result.getMessage());
- result = cons.validate(12L);
+ result = cons.validate(12L, conf);
Assert.assertFalse(result.isSuccess());
System.out.println("Message: " + result.getMessage());
- result = cons.validate(12.8);
+ result = cons.validate(12.8, conf);
Assert.assertFalse(result.isSuccess());
System.out.println("Message: " + result.getMessage());
-
-
}
@Test
@@ -122,11 +120,12 @@
VerifierBuilder vBuilder = VerifierBuilderFactory.newVerifierBuilder();
//VerifierConfiguration conf = new DefaultVerifierConfiguration();
- VerifierConfiguration conf = new VerifierConfigurationImpl();
+ VerifierConfiguration vconf = new VerifierConfigurationImpl();
- conf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule().getBytes()), ResourceType.DRL);
+ Constraint cons = new IntegerConstraint();
+ vconf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule(conf).getBytes()), ResourceType.DRL);
- Verifier verifier = vBuilder.newVerifier(conf);
+ Verifier verifier = vBuilder.newVerifier(vconf);
verifier.addResourcesToVerify(ResourceFactory.newByteArrayResource(ruleToVerify.getBytes()),
ResourceType.DRL);
@@ -153,8 +152,7 @@
counter++;
}
- Assert.assertEquals(2,
- counter);
+ Assert.assertEquals(2, counter);
verifier.dispose();
}
Modified: labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/NotNullConstraintTest.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/NotNullConstraintTest.java 2010-03-30 19:14:06 UTC (rev 32310)
+++ labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/NotNullConstraintTest.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -1,10 +1,13 @@
package org.drools.factconstraint;
import java.util.Collection;
+
import org.drools.builder.ResourceType;
-import org.drools.factconstraints.client.Constraint;
+import org.drools.factconstraint.server.Constraint;
+import org.drools.factconstraints.client.ConstraintConfiguration;
import org.drools.factconstraints.client.ValidationResult;
-import org.drools.factconstraints.client.predefined.NotNullConstraint;
+import org.drools.factconstraints.client.config.SimpleConstraintConfigurationImpl;
+import org.drools.factconstraints.server.predefined.NotNullConstraint;
import org.drools.io.ResourceFactory;
import org.drools.verifier.Verifier;
import org.drools.verifier.VerifierConfiguration;
@@ -25,46 +28,44 @@
*/
public class NotNullConstraintTest {
+ private ConstraintConfiguration conf;
private Constraint cons;
-
+
@Before
public void setup() {
+ conf = new SimpleConstraintConfigurationImpl();
+ conf.setFactType("Person");
+ conf.setFieldName("name");
+
cons = new NotNullConstraint();
- cons.setFactType("Person");
- cons.setFieldName("name");
- System.out.println("Validation Rule:\n" + cons.getVerifierRule() + "\n\n");
-
}
@Test
public void testValidConstraint(){
-
- ValidationResult result = cons.validate(new Object());
+
+ ValidationResult result = cons.validate(new Object(), conf);
Assert.assertTrue(result.isSuccess());
- result = cons.validate("");
+ result = cons.validate("", conf);
Assert.assertTrue(result.isSuccess());
- result = cons.validate("ABC");
+ result = cons.validate("ABC", conf);
Assert.assertTrue(result.isSuccess());
- result = cons.validate(new Long("12"));
+ result = cons.validate(new Long("12"), conf);
Assert.assertTrue(result.isSuccess());
- result = cons.validate(12L);
+ result = cons.validate(12L, conf);
Assert.assertTrue(result.isSuccess());
- result = cons.validate(12.8);
+ result = cons.validate(12.8, conf);
Assert.assertTrue(result.isSuccess());
-
-
-
}
@Test
public void testInvalidConstraint(){
- ValidationResult result = cons.validate(null);
+ ValidationResult result = cons.validate(null, conf);
Assert.assertFalse(result.isSuccess());
System.out.println("Message: "+result.getMessage());
@@ -104,12 +105,11 @@
VerifierBuilder vBuilder = VerifierBuilderFactory.newVerifierBuilder();
- //VerifierConfiguration conf = new DefaultVerifierConfiguration();
- VerifierConfiguration conf = new VerifierConfigurationImpl();
+ VerifierConfiguration vconf = new VerifierConfigurationImpl();
- conf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule().getBytes()), ResourceType.DRL);
+ vconf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule(this.conf).getBytes()), ResourceType.DRL);
- Verifier verifier = vBuilder.newVerifier(conf);
+ Verifier verifier = vBuilder.newVerifier(vconf);
verifier.addResourcesToVerify(ResourceFactory.newByteArrayResource(ruleToVerify.getBytes()),
ResourceType.DRL);
Modified: labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/RangeConstraintSingleOperatorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/RangeConstraintSingleOperatorTest.java 2010-03-30 19:14:06 UTC (rev 32310)
+++ labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/RangeConstraintSingleOperatorTest.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -1,9 +1,12 @@
package org.drools.factconstraint;
import java.util.Collection;
+
import org.drools.builder.ResourceType;
-import org.drools.factconstraints.client.Constraint;
-import org.drools.factconstraints.client.predefined.RangeConstraint;
+import org.drools.factconstraint.server.Constraint;
+import org.drools.factconstraints.client.ConstraintConfiguration;
+import org.drools.factconstraints.client.config.SimpleConstraintConfigurationImpl;
+import org.drools.factconstraints.server.predefined.RangeConstraint;
import org.drools.io.ResourceFactory;
import org.drools.verifier.Verifier;
import org.drools.verifier.VerifierConfiguration;
@@ -27,15 +30,14 @@
private Verifier verifier;
private Constraint cons;
+ private ConstraintConfiguration conf;
@Before
public void setup() {
cons = new RangeConstraint();
- cons.setFactType("Person");
- cons.setFieldName("age");
-
- System.out.println("Validation Rule:\n" + cons.getVerifierRule() + "\n\n");
-
+ conf = new SimpleConstraintConfigurationImpl();
+ conf.setFactType("Person");
+ conf.setFieldName("age");
}
@After
@@ -49,9 +51,9 @@
public void testEq() {
//age constraint
- cons.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MIN, "0");
- cons.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MAX, "120");
- System.out.println("Validation Rule:\n" + cons.getVerifierRule() + "\n\n");
+ conf.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MIN, "0");
+ conf.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MAX, "120");
+ System.out.println("Validation Rule:\n" + cons.getVerifierRule(conf) + "\n\n");
String rulesToVerify = "";
@@ -98,13 +100,11 @@
public void testNotEq() {
//age constraint
- cons.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MIN, "0");
- cons.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MAX, "120");
- System.out.println("Validation Rule:\n" + cons.getVerifierRule() + "\n\n");
+ conf.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MIN, "0");
+ conf.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MAX, "120");
+ System.out.println("Validation Rule:\n" + cons.getVerifierRule(conf) + "\n\n");
-
String rulesToVerify = "";
- int fail = 0;
int warning = 0;
//FAIL
@@ -148,11 +148,11 @@
VerifierBuilder vBuilder = VerifierBuilderFactory.newVerifierBuilder();
//VerifierConfiguration conf = new DefaultVerifierConfiguration();
- VerifierConfiguration conf = new VerifierConfigurationImpl();
+ VerifierConfiguration vconf = new VerifierConfigurationImpl();
- conf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule().getBytes()), ResourceType.DRL);
+ vconf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule(this.conf).getBytes()), ResourceType.DRL);
- verifier = vBuilder.newVerifier(conf);
+ verifier = vBuilder.newVerifier(vconf);
verifier.addResourcesToVerify(ResourceFactory.newByteArrayResource(rulesToVerify.getBytes()),
ResourceType.DRL);
Modified: labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/RangeConstraintTest.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/RangeConstraintTest.java 2010-03-30 19:14:06 UTC (rev 32310)
+++ labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/RangeConstraintTest.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -1,10 +1,13 @@
package org.drools.factconstraint;
import java.util.Collection;
+
import org.drools.builder.ResourceType;
-import org.drools.factconstraints.client.Constraint;
+import org.drools.factconstraint.server.Constraint;
+import org.drools.factconstraints.client.ConstraintConfiguration;
import org.drools.factconstraints.client.ValidationResult;
-import org.drools.factconstraints.client.predefined.RangeConstraint;
+import org.drools.factconstraints.client.config.SimpleConstraintConfigurationImpl;
+import org.drools.factconstraints.server.predefined.RangeConstraint;
import org.drools.io.ResourceFactory;
import org.drools.verifier.Verifier;
import org.drools.verifier.VerifierConfiguration;
@@ -26,39 +29,38 @@
public class RangeConstraintTest {
private Constraint cons;
+ private ConstraintConfiguration conf;
@Before
public void setup() {
cons = new RangeConstraint();
- cons.setFactType("Person");
- cons.setFieldName("age");
-
- System.out.println("Validation Rule:\n" + cons.getVerifierRule() + "\n\n");
-
+ conf = new SimpleConstraintConfigurationImpl();
+ conf.setFactType("Person");
+ conf.setFieldName("age");
}
@Test
public void testValidConstraint(){
- cons.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MIN, "-0.5");
- cons.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MAX, "100");
+ conf.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MIN, "-0.5");
+ conf.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MAX, "100");
- ValidationResult result = cons.validate(12);
+ ValidationResult result = cons.validate(12, conf);
Assert.assertTrue(result.isSuccess());
- result = cons.validate(new Integer("12"));
+ result = cons.validate(new Integer("12"), conf);
Assert.assertTrue(result.isSuccess());
- result = cons.validate("12");
+ result = cons.validate("12", conf);
Assert.assertTrue(result.isSuccess());
- result = cons.validate(0.6);
+ result = cons.validate(0.6, conf);
Assert.assertTrue(result.isSuccess());
- result = cons.validate(new Float("-0.3"));
+ result = cons.validate(new Float("-0.3"), conf);
Assert.assertTrue(result.isSuccess());
- result = cons.validate("90.76");
+ result = cons.validate("90.76", conf);
Assert.assertTrue(result.isSuccess());
}
@@ -66,34 +68,34 @@
@Test
public void testInvalidConstraint(){
- cons.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MIN, "-0.5");
- cons.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MAX, "100");
+ conf.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MIN, "-0.5");
+ conf.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MAX, "100");
- ValidationResult result = cons.validate(new Object());
+ ValidationResult result = cons.validate(new Object(), conf);
Assert.assertFalse(result.isSuccess());
System.out.println("Message: "+result.getMessage());
- result = cons.validate(null);
+ result = cons.validate(null, conf);
Assert.assertFalse(result.isSuccess());
System.out.println("Message: "+result.getMessage());
- result = cons.validate("");
+ result = cons.validate("", conf);
Assert.assertFalse(result.isSuccess());
System.out.println("Message: "+result.getMessage());
- result = cons.validate("ABC");
+ result = cons.validate("ABC", conf);
Assert.assertFalse(result.isSuccess());
System.out.println("Message: "+result.getMessage());
- result = cons.validate(new Long("-100"));
+ result = cons.validate(new Long("-100"), conf);
Assert.assertFalse(result.isSuccess());
System.out.println("Message: "+result.getMessage());
- result = cons.validate(-0.5);
+ result = cons.validate(-0.5, conf);
Assert.assertFalse(result.isSuccess());
System.out.println("Message: "+result.getMessage());
- result = cons.validate(100);
+ result = cons.validate(100, conf);
Assert.assertFalse(result.isSuccess());
System.out.println("Message: "+result.getMessage());
@@ -104,18 +106,18 @@
public void testUsingVerifier() {
//age constraint
- cons.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MIN, "0");
- cons.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MAX, "120");
- System.out.println("Validation Rule:\n" + cons.getVerifierRule() + "\n\n");
+ conf.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MIN, "0");
+ conf.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MAX, "120");
+ System.out.println("Validation Rule:\n" + cons.getVerifierRule(conf) + "\n\n");
//salary constraint
- Constraint salaryCons = new RangeConstraint();
+ ConstraintConfiguration salaryCons = new SimpleConstraintConfigurationImpl();
salaryCons.setFactType("Person");
salaryCons.setFieldName("salary");
salaryCons.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MIN, "0");
salaryCons.setArgumentValue(RangeConstraint.RANGE_CONSTRAINT_MAX, "1000.6");
- System.out.println("Validation Rule:\n" + salaryCons.getVerifierRule() + "\n\n");
+ System.out.println("Validation Rule:\n" + cons.getVerifierRule(salaryCons) + "\n\n");
String ruleToVerify = "";
@@ -228,13 +230,12 @@
VerifierBuilder vBuilder = VerifierBuilderFactory.newVerifierBuilder();
- //VerifierConfiguration conf = new DefaultVerifierConfiguration();
- VerifierConfiguration conf = new VerifierConfigurationImpl();
+ VerifierConfiguration vconf = new VerifierConfigurationImpl();
- conf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule().getBytes()), ResourceType.DRL);
- conf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(salaryCons.getVerifierRule().getBytes()), ResourceType.DRL);
+ vconf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule(this.conf).getBytes()), ResourceType.DRL);
+ vconf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(cons.getVerifierRule(salaryCons).getBytes()), ResourceType.DRL);
- Verifier verifier = vBuilder.newVerifier(conf);
+ Verifier verifier = vBuilder.newVerifier(vconf);
verifier.addResourcesToVerify(ResourceFactory.newByteArrayResource(ruleToVerify.getBytes()),
ResourceType.DRL);
Modified: labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/helper/ConstraintsConstrainerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/helper/ConstraintsConstrainerTest.java 2010-03-30 19:14:06 UTC (rev 32310)
+++ labs/jbossrules/trunk/drools-factconstraint/src/test/java/org/drools/factconstraint/helper/ConstraintsConstrainerTest.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -1,13 +1,15 @@
package org.drools.factconstraint.helper;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+
import java.util.LinkedList;
-import org.drools.factconstraints.client.Constraint;
+import org.drools.factconstraints.client.ConstraintConfiguration;
+import org.drools.factconstraints.client.config.SimpleConstraintConfigurationImpl;
import org.drools.factconstraints.client.helper.ConstraintsContainer;
-import org.drools.factconstraints.client.predefined.IntegerConstraint;
-import org.drools.factconstraints.client.predefined.NotNullConstraint;
-
-import static org.junit.Assert.*;
import org.junit.Test;
@@ -15,33 +17,33 @@
@Test
public void test() {
- LinkedList<Constraint> list = new LinkedList<Constraint>();
- Constraint cons = new IntegerConstraint();
- cons.setFactType("Person");
- cons.setFieldName("age");
+ LinkedList<ConstraintConfiguration> list = new LinkedList<ConstraintConfiguration>();
+ ConstraintConfiguration conf = new SimpleConstraintConfigurationImpl();
+ conf.setFactType("Person");
+ conf.setFieldName("age");
- list.add(cons);
+ list.add(conf);
ConstraintsContainer cc = new ConstraintsContainer(list);
assertTrue(cc.hasConstraints("Person"));
assertFalse(cc.hasConstraints("Person3"));
assertEquals(1, cc.getConstraints("Person").size());
- cons = new NotNullConstraint();
- cons.setFactType("Person");
- cons.setFieldName("name");
+ conf = new SimpleConstraintConfigurationImpl();
+ conf.setFactType("Person");
+ conf.setFieldName("name");
- cc.addConstraint(cons);
+ cc.addConstraint(conf);
assertEquals(2, cc.getConstraints("Person").size());
assertEquals(1, cc.getConstraints("Person", "age").size());
- assertSame(cons, cc.getConstraints("Person", "name").get(0));
+ assertSame(conf, cc.getConstraints("Person", "name").get(0));
assertEquals(0, cc.getConstraints("Person", "toothCount").size());
- cons = new NotNullConstraint();
- cons.setFactType("Pet");
- cons.setFieldName("name");
+ conf = new SimpleConstraintConfigurationImpl();
+ conf.setFactType("Pet");
+ conf.setFieldName("name");
- cc.addConstraint(cons);
+ cc.addConstraint(conf);
assertEquals(1, cc.getConstraints("Pet").size());
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/WorkingSetManager.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/WorkingSetManager.java 2010-03-30 19:14:06 UTC (rev 32310)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/WorkingSetManager.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -1,6 +1,5 @@
package org.drools.guvnor.client.packages;
-import com.google.gwt.user.client.Command;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
@@ -8,13 +7,15 @@
import java.util.Map;
import java.util.Set;
-import org.drools.factconstraints.client.Constraint;
+import org.drools.factconstraints.client.ConstraintConfiguration;
import org.drools.guvnor.client.common.GenericCallback;
import org.drools.guvnor.client.modeldriven.FactTypeFilter;
import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
import org.drools.guvnor.client.rpc.RuleAsset;
import org.drools.guvnor.client.rpc.WorkingSetConfigData;
+import com.google.gwt.user.client.Command;
+
/**
*
* @author esteban.aliverti at gmail.com
@@ -80,7 +81,6 @@
}
};
-
if (wss == null || wss.isEmpty()) {
//if no WS, we refresh the SCE (release any filter)
SuggestionCompletionCache.getInstance().refreshPackage(packageName, cmd);
@@ -178,7 +178,6 @@
return false;
}
-
/**
* Returns a Set of Constraints for a Fact Type's field. This method uses
* the active Working Sets of the package in order to get the Constraints.
@@ -187,17 +186,17 @@
* @param fieldName the field name
* @return a Set of Constraints for a Fact Type's field.
*/
- public Set<Constraint> getFieldContraints(String packageName, String factType, String fieldName ){
+ public Set<ConstraintConfiguration> getFieldContraints(String packageName, String factType, String fieldName ){
- Set<Constraint> result = new HashSet<Constraint>();
+ Set<ConstraintConfiguration> result = new HashSet<ConstraintConfiguration>();
//TODO: Change this with a centralized way of Constraint Administration.
Set<RuleAsset> activeAssets = this.getActiveAssets(packageName);
if (activeAssets != null){
for (RuleAsset ruleAsset : activeAssets) {
- List<Constraint> constraints = ((WorkingSetConfigData)ruleAsset.content).constraints;
+ List<ConstraintConfiguration> constraints = ((WorkingSetConfigData)ruleAsset.content).constraints;
if (constraints != null) {
- for (Constraint constraint : constraints) {
+ for (ConstraintConfiguration constraint : constraints) {
if (constraint.getFactType().equals(factType) && constraint.getFieldName().equals(fieldName)){
result.add(constraint);
}
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/WorkingSetConfigData.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/WorkingSetConfigData.java 2010-03-30 19:14:06 UTC (rev 32310)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/WorkingSetConfigData.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -1,20 +1,21 @@
package org.drools.guvnor.client.rpc;
+import java.io.Serializable;
import java.util.List;
-import org.drools.factconstraints.client.Constraint;
+import org.drools.factconstraints.client.ConstraintConfiguration;
import org.drools.guvnor.client.modeldriven.brl.PortableObject;
-import com.google.gwt.user.client.rpc.IsSerializable;
-
/**
*
* @author bauna
*/
-public class WorkingSetConfigData implements PortableObject, IsSerializable {
+public class WorkingSetConfigData implements PortableObject, Serializable {
+ private static final long serialVersionUID = 501L;
+
public String name;
public String description;
- public List<Constraint> constraints;
+ public List<ConstraintConfiguration> constraints;
public String[] validFacts;
public WorkingSetConfigData[] workingSets;
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ConstraintEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ConstraintEditor.java 2010-03-30 19:14:06 UTC (rev 32310)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ConstraintEditor.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -6,7 +6,7 @@
import java.util.Map;
import java.util.MissingResourceException;
-import org.drools.factconstraints.client.Constraint;
+import org.drools.factconstraints.client.ConstraintConfiguration;
import org.drools.guvnor.client.messages.Constants;
import com.google.gwt.core.client.GWT;
@@ -19,16 +19,16 @@
public class ConstraintEditor extends Composite {
private Constants constants = GWT.create(Constants.class);
- private Constraint constraint;
+ private ConstraintConfiguration config;
- public ConstraintEditor(Constraint constraint) {
- this.constraint = constraint;
+ public ConstraintEditor(ConstraintConfiguration config) {
+ this.config = config;
- Grid confGrid = new Grid(constraint.getArgumentKeys().size(), 2);
+ Grid confGrid = new Grid(config.getArgumentKeys().size(), 2);
ArrayList<String> list = new ArrayList<String>();
Map<String, String> argI18N = new HashMap<String, String>();
- for (String arg : constraint.getArgumentKeys()) {
+ for (String arg : config.getArgumentKeys()) {
String i18n = getI18NText(arg);
list.add(i18n);
argI18N.put(i18n, arg);
@@ -38,13 +38,13 @@
int row = 0;
for (String arg : list) {
TextBox argTB = new TextBox();
- argTB.setText(getConstraint().getArgumentValue(arg).toString());
+ argTB.setText(getConstraintConfiguration().getArgumentValue(arg).toString());
argTB.setName(argI18N.get(arg));
argTB.setTitle(arg);
argTB.addChangeListener(new ChangeListener() {
public void onChange(Widget sender) {
TextBox argTB = (TextBox) sender;
- getConstraint().setArgumentValue(argTB.getName(), argTB.getText());
+ getConstraintConfiguration().setArgumentValue(argTB.getName(), argTB.getText());
}
});
@@ -64,15 +64,15 @@
}
}
- public Constraint getConstraint() {
- return constraint;
+ public ConstraintConfiguration getConstraintConfiguration() {
+ return config;
}
- public void setConstraint(Constraint constraint) {
- this.constraint = constraint;
+ public void setConstraintConfiguration(ConstraintConfiguration config) {
+ this.config = config;
}
public String getConstraintName() {
- return getConstraint().getConstraintName();
+ return getConstraintConfiguration().getConstraintName();
}
}
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetEditor.java 2010-03-30 19:14:06 UTC (rev 32310)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetEditor.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -2,17 +2,15 @@
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.drools.factconstraints.client.Constraint;
+import org.drools.factconstraints.client.ConstraintConfiguration;
import org.drools.factconstraints.client.helper.ConstraintsContainer;
-import org.drools.factconstraints.client.predefined.IntegerConstraint;
-import org.drools.factconstraints.client.predefined.NotNullConstraint;
-import org.drools.factconstraints.client.predefined.RangeConstraint;
import org.drools.guvnor.client.common.AssetFormats;
import org.drools.guvnor.client.common.FormStylePopup;
import org.drools.guvnor.client.common.ImageButton;
@@ -54,7 +52,7 @@
private ListBox fieldsCombo = new ListBox(false);
private ListBox constraintsCombo = new ListBox(false);
private VerticalPanel vpConstraintConf = new VerticalPanel();
- private Map<String, Constraint> contraintsMap = new HashMap<String, Constraint>();
+ private Map<String, ConstraintConfiguration> contraintsMap = new HashMap<String, ConstraintConfiguration>();
public WorkingSetEditor(RuleAsset asset) {
if (!AssetFormats.WORKING_SET.equals(asset.metaData.format)) {
@@ -92,9 +90,6 @@
initWidget(tPanel);
}
-// private int lastSelectedFact = -1;
-// private int lastSelectedField = -1;
-// private int lastSelectedConstraint = -1;
private Widget buildFactsConstraintsEditor(TabPanel tPanel) {
factsCombo.setVisibleItemCount(1);
fieldsCombo.setVisibleItemCount(1);
@@ -183,7 +178,7 @@
protected void removeConstraint() {
if (constraintsCombo.getSelectedIndex() != -1) {
- Constraint c = contraintsMap.get(constraintsCombo.getValue(constraintsCombo.getSelectedIndex()));
+ ConstraintConfiguration c = contraintsMap.get(constraintsCombo.getValue(constraintsCombo.getSelectedIndex()));
getConstraintsConstrainer().removeConstraint(c);
}
fillFieldConstrains();
@@ -196,7 +191,7 @@
return;
}
if (constraintsCombo.getSelectedIndex() != -1) {
- Constraint c = contraintsMap.get(constraintsCombo.getValue(constraintsCombo.getSelectedIndex()));
+ ConstraintConfiguration c = contraintsMap.get(constraintsCombo.getValue(constraintsCombo.getSelectedIndex()));
ConstraintEditor editor = new ConstraintEditor(c);
vpConstraintConf.remove(vpConstraintConf.getWidgetCount() - 1);
vpConstraintConf.add(editor);
@@ -212,33 +207,28 @@
addbutton.setTitle(constants.AddNewConstraint());
- consDefsCombo.addItem("NotNull");
- consDefsCombo.addItem("Range");
- consDefsCombo.addItem("Integer");
+ List<String> names = new ArrayList<String>(ConstraintsContainer.getAllConfigurations().keySet());
+ Collections.sort(names);
+ for (String name : names) {
+ consDefsCombo.addItem(name);
+ }
addbutton.addClickListener( new ClickListener() {
public void onClick(Widget w) {
- String consDef = consDefsCombo.getItemText(consDefsCombo.getSelectedIndex());
- Constraint cons = null;
- if ("NotNull".equals(consDef)) {
- cons = new NotNullConstraint();
- } else if ("Range".equals(consDef)) {
- cons = new RangeConstraint();
- } else if ("Integer".equals(consDef)) {
- cons = new IntegerConstraint();
- }
- if (cons != null) {
+ String name = consDefsCombo.getItemText(consDefsCombo.getSelectedIndex());
+ ConstraintConfiguration config = ConstraintsContainer.getEmptyConfiguration(name);
+ if (config != null) {
String factName = factsCombo.getItemText(factsCombo.getSelectedIndex());
String fieldName = fieldsCombo.getItemText(fieldsCombo.getSelectedIndex());
- cons.setFactType(factName);
- cons.setFieldName(fieldName);
+ config.setFactType(factName);
+ config.setFieldName(fieldName);
if (((WorkingSetConfigData) workingSet.content).constraints == null) {
- ((WorkingSetConfigData) workingSet.content).constraints = new ArrayList<Constraint>();
+ ((WorkingSetConfigData) workingSet.content).constraints = new ArrayList<ConstraintConfiguration>();
}
- ((WorkingSetConfigData) workingSet.content).constraints.add(cons);
- constraintsCombo.addItem(cons.getConstraintName(), addContrainsMap(cons));
- getConstraintsConstrainer().addConstraint(cons);
+ ((WorkingSetConfigData) workingSet.content).constraints.add(config);
+ constraintsCombo.addItem(config.getConstraintName(), addContrainsMap(config));
+ getConstraintsConstrainer().addConstraint(config);
}
pop.hide();
@@ -291,7 +281,7 @@
String factField = factsCombo.getItemText(factsCombo.getSelectedIndex());
constraintsCombo.clear();
contraintsMap.clear();
- for (Constraint c : getConstraintsConstrainer().getConstraints(factField, fieldName)) {
+ for (ConstraintConfiguration c : getConstraintsConstrainer().getConstraints(factField, fieldName)) {
constraintsCombo.addItem(c.getConstraintName(), addContrainsMap(c));
}
vpConstraintConf.remove(vpConstraintConf.getWidgetCount() - 1);
@@ -300,7 +290,7 @@
showConstraintConfig();
}
- private String addContrainsMap(Constraint c) {
+ private String addContrainsMap(ConstraintConfiguration c) {
String id = "" + contraintsMap.size();
contraintsMap.put(id, c);
return id;
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-03-30 19:14:06 UTC (rev 32310)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java 2010-03-30 19:20:05 UTC (rev 32311)
@@ -59,7 +59,8 @@
import org.drools.compiler.DrlParser;
import org.drools.compiler.DroolsParserException;
import org.drools.core.util.DroolsStreamUtils;
-import org.drools.factconstraints.client.Constraint;
+import org.drools.factconstraint.server.factory.ConstraintsFactory;
+import org.drools.factconstraints.client.ConstraintConfiguration;
import org.drools.guvnor.client.common.AssetFormats;
import org.drools.guvnor.client.common.Inbox;
import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
@@ -94,7 +95,6 @@
import org.drools.guvnor.server.builder.ContentPackageAssembler;
import org.drools.guvnor.server.contenthandler.ContentHandler;
import org.drools.guvnor.server.contenthandler.ContentManager;
-import org.drools.guvnor.server.contenthandler.ICompilable;
import org.drools.guvnor.server.contenthandler.IRuleAsset;
import org.drools.guvnor.server.contenthandler.IValidating;
import org.drools.guvnor.server.contenthandler.ModelContentHandler;
@@ -2847,8 +2847,8 @@
for (RuleAsset ws : workingSets) {
WorkingSetConfigData wsConfig = (WorkingSetConfigData) ws.content;
if (wsConfig.constraints != null) {
- for (Constraint cons : wsConfig.constraints) {
- constraintRules.add(cons.getVerifierRule());
+ for (ConstraintConfiguration config : wsConfig.constraints) {
+ constraintRules.add(ConstraintsFactory.getInstance().getVerifierRule(config));
}
}
}
More information about the jboss-svn-commits
mailing list