[jboss-svn-commits] JBL Code SVN: r19103 - in labs/jbossrules/trunk/drools-compiler/src: main/java/org/drools/brms/client/modeldriven/brl and 5 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Mar 19 04:33:10 EDT 2008
Author: michael.neale at jboss.com
Date: 2008-03-19 04:33:10 -0400 (Wed, 19 Mar 2008)
New Revision: 19103
Added:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/DTColumnConfig.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/dt/
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/dt/GuidedDecisionTableTest.java
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ActionFieldValue.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ActionInsertFact.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ActionRetractFact.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ActionSetField.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/CompositeFactPattern.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/CompositeFieldConstraint.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/DSLSentence.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/FactPattern.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ISingleFieldConstraint.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/RuleAttribute.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/RuleModel.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ActionCol.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ActionInsertFactCol.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ActionSetFieldCol.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/AttributeCol.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ConditionCol.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/GuidedDecisionTable.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/ExecutionTrace.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/FactData.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/FieldData.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/RetractFact.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Scenario.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyFact.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyField.java
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyRuleFired.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngineTest.java
Log:
JBRULES-1494 Decision table - and removing externalizable stuff that is not needed.
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngine.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -4,11 +4,7 @@
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
-import java.io.ObjectOutput;
-import java.io.IOException;
-import java.io.ObjectInput;
-import org.drools.brms.client.modeldriven.brl.ActionFieldList;
import org.drools.brms.client.modeldriven.brl.ActionFieldValue;
import org.drools.brms.client.modeldriven.brl.DSLSentence;
import org.drools.brms.client.modeldriven.brl.FactPattern;
@@ -106,25 +102,7 @@
public DSLSentence[] conditionDSLSentences = new DSLSentence[0];
public DSLSentence[] actionDSLSentences = new DSLSentence[0];
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- factTypes = (String[])in.readObject();
- fieldsForType = (Map)in.readObject();
- fieldTypes = (Map)in.readObject();
- globalTypes = (Map)in.readObject();
- dataEnumLists = (Map)in.readObject();
- conditionDSLSentences = (DSLSentence[])in.readObject();
- actionDSLSentences = (DSLSentence[])in.readObject();
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(factTypes);
- out.writeObject(fieldsForType);
- out.writeObject(fieldTypes);
- out.writeObject(globalTypes);
- out.writeObject(dataEnumLists);
- out.writeObject(conditionDSLSentences);
- out.writeObject(actionDSLSentences);
- }
/**
* This is used to calculate what fields an enum list may depend on. Optional.
@@ -282,8 +260,14 @@
}
}
}
+ return getEnumValues(pat.factType, field);
+ }
- return (String[]) this.dataEnumLists.get(pat.factType + "." + field);
+ /**
+ * For simple cases - where a list of values are known based on a field.
+ */
+ public String[] getEnumValues(String factType, String field) {
+ return (String[]) this.dataEnumLists.get(factType + "." + field);
}
public String[] getEnums(String type, ActionFieldValue[] currentValues, String field) {
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ActionFieldValue.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ActionFieldValue.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ActionFieldValue.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -1,8 +1,5 @@
package org.drools.brms.client.modeldriven.brl;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import java.io.IOException;
/**
* Holds field and value for "action" parts of the rule.
@@ -32,17 +29,7 @@
public ActionFieldValue() {
}
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- field = (String)in.readObject();
- value = (String)in.readObject();
- type = (String)in.readObject();
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(field);
- out.writeObject(value);
- out.writeObject(type);
- }
/**
* This will return true if the value is really a "formula" - in
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ActionInsertFact.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ActionInsertFact.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ActionInsertFact.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -1,8 +1,5 @@
package org.drools.brms.client.modeldriven.brl;
-import java.io.ObjectInput;
-import java.io.IOException;
-import java.io.ObjectOutput;
/**
* This is used when asserting a new fact.
@@ -21,11 +18,5 @@
public ActionInsertFact() {
}
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- factType = (String)in.readObject();
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(factType);
- }
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ActionRetractFact.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ActionRetractFact.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ActionRetractFact.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -1,8 +1,5 @@
package org.drools.brms.client.modeldriven.brl;
-import java.io.ObjectOutput;
-import java.io.IOException;
-import java.io.ObjectInput;
/**
* This is used to specify that the bound fact should be retracted
@@ -23,11 +20,5 @@
public String variableName;
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- variableName = (String)in.readObject();
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(variableName);
- }
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ActionSetField.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ActionSetField.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ActionSetField.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -1,8 +1,5 @@
package org.drools.brms.client.modeldriven.brl;
-import java.io.ObjectOutput;
-import java.io.IOException;
-import java.io.ObjectInput;
/**
* For setting a field on a bound LHS variable or a global.
@@ -23,11 +20,5 @@
public String variable;
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- variable = (String)in.readObject();
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(variable);
- }
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/CompositeFactPattern.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/CompositeFactPattern.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/CompositeFactPattern.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -1,8 +1,5 @@
package org.drools.brms.client.modeldriven.brl;
-import java.io.ObjectOutput;
-import java.io.ObjectInput;
-import java.io.IOException;
/**
* Represents first order logic like Or, Not, Exists.
@@ -27,17 +24,7 @@
public FactPattern[] patterns;
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- type = (String)in.readObject();
- patterns = (FactPattern[])in.readObject();
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(type);
- out.writeObject(patterns);
- }
-
-
/**
* This type should be from the contants in this class of course.
*/
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/CompositeFieldConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/CompositeFieldConstraint.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/CompositeFieldConstraint.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -1,8 +1,5 @@
package org.drools.brms.client.modeldriven.brl;
-import java.io.ObjectInput;
-import java.io.IOException;
-import java.io.ObjectOutput;
/**
* This is a field constraint that may span multiple fields.
@@ -39,15 +36,7 @@
*/
public FieldConstraint[] constraints = null;
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- compositeJunctionType = (String)in.readObject();
- constraints = (FieldConstraint[])in.readObject();
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(compositeJunctionType);
- out.writeObject(constraints);
- }
//Note this is a bit ugly, GWT had some early limitations which required this to kind of work this way.
//when generics are available, could probably switch to it, but remember this is persistent stuff
//so don't want to break backwards compat (as XStream is used)
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/DSLSentence.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/DSLSentence.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/DSLSentence.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -1,8 +1,5 @@
package org.drools.brms.client.modeldriven.brl;
-import java.io.ObjectOutput;
-import java.io.ObjectInput;
-import java.io.IOException;
/**
* This represents a DSL sentence.
@@ -15,13 +12,7 @@
public String sentence;
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- sentence = (String)in.readObject();
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(sentence);
- }
/**
* This will strip off any residual "{" stuff...
*/
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/FactPattern.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/FactPattern.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/FactPattern.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -1,8 +1,5 @@
package org.drools.brms.client.modeldriven.brl;
-import java.io.IOException;
-import java.io.ObjectOutput;
-import java.io.ObjectInput;
/**
* A fact pattern is a declaration of a fact type, and its constraint,
@@ -28,17 +25,7 @@
//this.constraints = new CompositeFieldConstraint();
}
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- constraintList = (CompositeFieldConstraint)in.readObject();
- factType = (String)in.readObject();
- boundName = (String)in.readObject();
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(constraintList);
- out.writeObject(factType);
- out.writeObject(boundName);
- }
/**
* This will add a top level constraint.
*/
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ISingleFieldConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ISingleFieldConstraint.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/ISingleFieldConstraint.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -1,8 +1,5 @@
package org.drools.brms.client.modeldriven.brl;
-import java.io.IOException;
-import java.io.ObjectOutput;
-import java.io.ObjectInput;
/**
* Represents a constraint, which may be part of a direct field constraint or a connective.
@@ -48,13 +45,5 @@
public String value;
public int constraintValueType;
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- value = (String)in.readObject();
- constraintValueType = in.readInt();
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(value);
- out.writeInt(constraintValueType);
- }
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/RuleAttribute.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/RuleAttribute.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/RuleAttribute.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -1,8 +1,5 @@
package org.drools.brms.client.modeldriven.brl;
-import java.io.ObjectOutput;
-import java.io.IOException;
-import java.io.ObjectInput;
/**
* This holds values for rule attributes (eg salience, agenda-group etc).
@@ -27,15 +24,7 @@
public RuleAttribute() {
}
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- attributeName = (String)in.readObject();
- value = (String)in.readObject();
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(attributeName);
- out.writeObject(value);
- }
public String toString() {
StringBuffer ret = new StringBuffer();
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/RuleModel.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/RuleModel.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/brl/RuleModel.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -2,9 +2,6 @@
import java.util.ArrayList;
import java.util.List;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
public class RuleModel
implements
@@ -22,21 +19,7 @@
public IPattern[] lhs = new IPattern[0];
public IAction[] rhs = new IAction[0];
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- name = (String)in.readObject();
- modelVersion = (String)in.readObject();
- attributes = (RuleAttribute[])in.readObject();
- lhs = (IPattern[])in.readObject();
- rhs = (IAction[])in.readObject();
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(name);
- out.writeObject(modelVersion);
- out.writeObject(attributes);
- out.writeObject(lhs);
- out.writeObject(rhs);
- }
/**
* This will return the fact pattern that a variable is bound to.
*
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ActionCol.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ActionCol.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ActionCol.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -1,20 +1,8 @@
package org.drools.brms.client.modeldriven.dt;
-import org.drools.brms.client.modeldriven.brl.PortableObject;
-import java.io.ObjectOutput;
-import java.io.ObjectInput;
-import java.io.IOException;
+public class ActionCol extends DTColumnConfig {
-public class ActionCol implements PortableObject {
-
public String header;
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- header = (String)in.readObject();
- }
-
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(header);
- }
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ActionInsertFactCol.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ActionInsertFactCol.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ActionInsertFactCol.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -26,5 +26,10 @@
*/
public String type;
+ /**
+ * An optional comman separated list of values.
+ */
+ public String valueList;
+
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ActionSetFieldCol.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ActionSetFieldCol.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ActionSetFieldCol.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -19,4 +19,9 @@
* These values come from SuggestionCompletionEngine.
*/
public String type;
+
+ /**
+ * An optional comma separated list of values.
+ */
+ public String valueList;
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/AttributeCol.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/AttributeCol.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/AttributeCol.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -1,13 +1,12 @@
package org.drools.brms.client.modeldriven.dt;
-import org.drools.brms.client.modeldriven.brl.PortableObject;
/**
* This is a rule attribute - eg salience, no-loop etc.
* @author Michael Neale
*
*/
-public class AttributeCol implements PortableObject {
+public class AttributeCol extends DTColumnConfig {
public String attr;
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ConditionCol.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ConditionCol.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/ConditionCol.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -1,6 +1,5 @@
package org.drools.brms.client.modeldriven.dt;
-import org.drools.brms.client.modeldriven.brl.PortableObject;
/**
* This is the config for a condition column. Typically many of them have their constraints added.
@@ -8,7 +7,7 @@
* @author Michael Neale
*
*/
-public class ConditionCol implements PortableObject {
+public class ConditionCol extends DTColumnConfig {
/**
* What is displayed at the top
@@ -47,5 +46,10 @@
public String operator;
+ /**
+ * A comma separated list of valid values. Optional.
+ */
+ public String valueList;
+
}
Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/DTColumnConfig.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/DTColumnConfig.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/DTColumnConfig.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -0,0 +1,12 @@
+package org.drools.brms.client.modeldriven.dt;
+
+import org.drools.brms.client.modeldriven.brl.PortableObject;
+
+public class DTColumnConfig implements PortableObject {
+
+ /**
+ * If this is not -1, then this is the width which will be displayed.
+ */
+ public int width = -1;
+
+}
Property changes on: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/DTColumnConfig.java
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/GuidedDecisionTable.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/GuidedDecisionTable.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/dt/GuidedDecisionTable.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -1,13 +1,11 @@
package org.drools.brms.client.modeldriven.dt;
-import org.drools.brms.client.modeldriven.brl.PortableObject;
-
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.modeldriven.brl.ISingleFieldConstraint;
import org.drools.brms.client.modeldriven.brl.PortableObject;
/**
@@ -17,6 +15,7 @@
*
* This works by taking the column definitions, and combining them with the table of data to produce rule models.
*
+ *
* @author Michael Neale
*/
public class GuidedDecisionTable implements PortableObject {
@@ -49,24 +48,115 @@
*/
public String[][] data = new String[0][0];
+ /**
+ * The width to display the description column.
+ */
+ public int descriptionWidth = -1;
+
//TODO: add in precondition(s)
public GuidedDecisionTable() {}
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- tableName = (String)in.readObject();
- attributeCols = (List)in.readObject();
- conditionCols = (List)in.readObject();
- actionCols = (List)in.readObject();
- data = (String[][])in.readObject();
- }
+// /**
+// * Will return an attribute col, or condition or action, depending on what column is requested.
+// * This works through attributes, conditions and then actions, in left to right manner.
+// */
+// public DTColumnConfig getColumnConfiguration(int index) {
+// if (index < attributeCols.size()) {
+// return (DTColumnConfig) attributeCols.get(index);
+// } else if (index < attributeCols.size() + conditionCols.size()) {
+// return (DTColumnConfig) conditionCols.get(index - attributeCols.size());
+// } else {
+// return (DTColumnConfig) actionCols.get(index - attributeCols.size() - conditionCols.size());
+// }
+// }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(tableName);
- out.writeObject(attributeCols);
- out.writeObject(conditionCols);
- out.writeObject(actionCols);
- out.writeObject(data);
- }
+ /**
+ * This will return a list of valid values. if there is no such "enumeration" of values,
+ * then it will return an empty array.
+ */
+ public String[] getValueList(DTColumnConfig col, SuggestionCompletionEngine sce) {
+ if (col instanceof AttributeCol) {
+ AttributeCol at = (AttributeCol) col;
+ if (at.attr.equals("no-loop") || at.attr.equals("enabled")) {
+ return new String[] {"true", "false"};
+ }
+ } else if (col instanceof ConditionCol) {
+ //conditions: if its a formula etc, just return String[0], otherwise check with the sce
+ ConditionCol c = (ConditionCol) col;
+ if (c.constraintValueType == ISingleFieldConstraint.TYPE_RET_VALUE || c.constraintValueType == ISingleFieldConstraint.TYPE_PREDICATE) {
+ return new String[0];
+ } else {
+ if (c.valueList != null && !"".equals(c.valueList)) {
+ return c.valueList.split(",");
+ } else {
+ String[] r = sce.getEnumValues(c.factType, c.factField);
+ return (r != null)? r : new String[0];
+ }
+ }
+ } else if (col instanceof ActionSetFieldCol) {
+ ActionSetFieldCol c = (ActionSetFieldCol) col;
+ if (c.valueList != null && !"".equals(c.valueList)) {
+ return c.valueList.split(",");
+ } else {
+ String[] r = sce.getEnumValues(getBoundFactType(c.boundName), c.factField);
+ return (r != null)? r : new String[0];
+ }
+ } else if (col instanceof ActionInsertFactCol) {
+ ActionInsertFactCol c = (ActionInsertFactCol) col;
+ if (c.valueList != null && !"".equals(c.valueList)) {
+ return c.valueList.split(",");
+ } else {
+ String[] r = sce.getEnumValues(c.factType, c.factField);
+ return (r != null)? r : new String[0];
+ }
+ }
+
+ return new String[0];
+ }
+
+ private String getBoundFactType(String boundName) {
+ for (Iterator iterator = conditionCols.iterator(); iterator.hasNext();) {
+ ConditionCol c = (ConditionCol) iterator.next();
+ if (c.boundName.equals(boundName)) {
+ return c.factType;
+ }
+ }
+ return null;
+ }
+
+ public boolean isNumeric(DTColumnConfig col, SuggestionCompletionEngine sce) {
+ if (col instanceof AttributeCol) {
+ AttributeCol at = (AttributeCol) col;
+ if (at.attr.equals("salience")) {
+ return true;
+ } else {
+ return false;
+ }
+ } else if (col instanceof ConditionCol) {
+ ConditionCol c = (ConditionCol) col;
+ if (c.constraintValueType == ISingleFieldConstraint.TYPE_LITERAL) {
+ String ft = sce.getFieldType(c.factType, c.factField);
+ if (ft != null && ft.equals(SuggestionCompletionEngine.TYPE_NUMERIC)) {
+ return true;
+ }
+ }
+ } else if (col instanceof ActionSetFieldCol) {
+ ActionSetFieldCol c = (ActionSetFieldCol) col;
+ String ft = sce.getFieldType(getBoundFactType(c.boundName), c.factField);
+ if (ft != null && ft.equals(SuggestionCompletionEngine.TYPE_NUMERIC)) {
+ return true;
+ }
+ } else if (col instanceof ActionInsertFactCol) {
+ ActionInsertFactCol c = (ActionInsertFactCol) col;
+ String ft = sce.getFieldType(c.factType, c.factField);
+ if (ft != null && ft.equals(SuggestionCompletionEngine.TYPE_NUMERIC)) {
+ return true;
+ }
+ }
+ //we can reuse text filter from guided editor to enforce this for data entry.
+ return false;
+ }
+
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/ExecutionTrace.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/ExecutionTrace.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/ExecutionTrace.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -1,14 +1,6 @@
package org.drools.brms.client.modeldriven.testing;
-import java.io.Serializable;
-import java.io.IOException;
-import java.io.ObjectOutput;
-import java.io.ObjectInput;
-import java.util.ArrayList;
import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
/**
* This contains lists of rules to include in the scenario (or exclude, as the case may be !).
@@ -38,16 +30,6 @@
public ExecutionTrace() {}
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- scenarioSimulatedDate = (Date)in.readObject();
- executionTimeResult = in.readLong();
- numberOfRulesFired = in.readLong();
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(scenarioSimulatedDate);
- out.writeLong(executionTimeResult);
- out.writeLong(numberOfRulesFired);
- }
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/FactData.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/FactData.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/FactData.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -2,9 +2,6 @@
import java.util.ArrayList;
import java.util.List;
-import java.io.ObjectOutput;
-import java.io.IOException;
-import java.io.ObjectInput;
public class FactData implements Fixture {
@@ -38,19 +35,7 @@
}
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- type = (String)in.readObject();
- name = (String)in.readObject();
- fieldData = (List)in.readObject();
- isModify = in.readBoolean();
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(type);
- out.writeObject(name);
- out.writeObject(fieldData);
- out.writeBoolean(isModify);
- }
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/FieldData.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/FieldData.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/FieldData.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -2,10 +2,6 @@
import org.drools.brms.client.modeldriven.brl.PortableObject;
-import java.io.ObjectOutput;
-import java.io.IOException;
-import java.io.ObjectInput;
-
public class FieldData implements PortableObject {
/** the name of the field */
@@ -24,14 +20,6 @@
this.value = value;
}
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- name = (String)in.readObject();
- value = (String)in.readObject();
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(name);
- out.writeObject(value);
- }
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/RetractFact.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/RetractFact.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/RetractFact.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -1,8 +1,5 @@
package org.drools.brms.client.modeldriven.testing;
-import java.io.ObjectInput;
-import java.io.IOException;
-import java.io.ObjectOutput;
/**
* Retract a named fact.
@@ -18,11 +15,5 @@
public String name;
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- name = (String)in.readObject();
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(name);
- }
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Scenario.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Scenario.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/Scenario.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -1,9 +1,5 @@
package org.drools.brms.client.modeldriven.testing;
-import java.io.Serializable;
-import java.io.ObjectInput;
-import java.io.IOException;
-import java.io.ObjectOutput;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -58,23 +54,7 @@
public boolean inclusive = false;
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- maxRuleFirings = in.readInt();
- globals = (List)in.readObject();
- fixtures = (List)in.readObject();
- lastRunResult = (Date)in.readObject();
- rules = (List)in.readObject();
- }
-
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeInt(maxRuleFirings);
- out.writeObject(globals);
- out.writeObject(fixtures);
- out.writeObject(lastRunResult);
- out.writeObject(rules);
- }
-
/**
* Returns true if this was a totally successful scenario, based on the results contained.
*/
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyFact.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyFact.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyFact.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -2,9 +2,6 @@
import java.util.ArrayList;
import java.util.List;
-import java.io.ObjectOutput;
-import java.io.ObjectInput;
-import java.io.IOException;
/**
* This is for making assertions over a specific facts value/state AFTER execution.
@@ -27,18 +24,7 @@
this.fieldValues = fieldValues;
}
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- fieldValues = (List)in.readObject();
- name = (String)in.readObject();
- description = (String)in.readObject();
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(fieldValues);
- out.writeObject(name);
- out.writeObject(description);
- }
-
public boolean wasSuccessful() {
for (int i = 0; i < fieldValues.size(); i++) {
VerifyField vf = (VerifyField) fieldValues.get(i);
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyField.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyField.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyField.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -2,10 +2,6 @@
import org.drools.brms.client.modeldriven.brl.PortableObject;
-import java.io.ObjectOutput;
-import java.io.IOException;
-import java.io.ObjectInput;
-
public class VerifyField implements PortableObject {
public String fieldName;
@@ -32,18 +28,4 @@
this.operator = operator;
}
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- fieldName = (String)in.readObject();
- expected = (String)in.readObject();
- actualResult = (String)in.readObject();
- successResult = in.readBoolean();
- }
-
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(fieldName);
- out.writeObject(expected);
- out.writeObject(actualResult);
- out.writeBoolean(successResult);
- }
-
}
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyRuleFired.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyRuleFired.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/brms/client/modeldriven/testing/VerifyRuleFired.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -1,8 +1,5 @@
package org.drools.brms.client.modeldriven.testing;
-import java.io.IOException;
-import java.io.ObjectOutput;
-import java.io.ObjectInput;
public class VerifyRuleFired implements Expectation {
@@ -32,24 +29,7 @@
this.expectedFire = expectedFire;
}
- public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
- ruleName = (String)in.readObject();
- expectedCount = in.readInt();
- explanation = (String)in.readObject();
- expectedFire = in.readBoolean();
- successResult = in.readBoolean();
- actualResult = in.readInt();
- }
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject(ruleName);
- out.writeInt(expectedCount);
- out.writeObject(explanation);
- out.writeBoolean(expectedFire);
- out.writeBoolean(successResult);
- out.writeInt(actualResult);
- }
-
public boolean wasSuccessful() {
return successResult.booleanValue();
}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngineTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngineTest.java 2008-03-19 06:47:58 UTC (rev 19102)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/client/modeldriven/SuggestionCompletionEngineTest.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -273,6 +273,16 @@
}
+ public void testSimpleEnums() {
+ final SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
+ sce.dataEnumLists = new HashMap();
+ sce.dataEnumLists.put("Fact.type", new String[] {"sex", "colour"});
+ assertEquals(2, sce.getEnumValues("Fact", "type").length);
+ assertEquals("sex", sce.getEnumValues("Fact", "type")[0]);
+ assertEquals("colour", sce.getEnumValues("Fact", "type")[1]);
+
+ }
+
private void assertContains(final String string,
final String[] c) {
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/dt/GuidedDecisionTableTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/dt/GuidedDecisionTableTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/dt/GuidedDecisionTableTest.java 2008-03-19 08:33:10 UTC (rev 19103)
@@ -0,0 +1,274 @@
+package org.drools.brms.modeldriven.dt;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.modeldriven.brl.ISingleFieldConstraint;
+import org.drools.brms.client.modeldriven.dt.ActionCol;
+import org.drools.brms.client.modeldriven.dt.ActionInsertFactCol;
+import org.drools.brms.client.modeldriven.dt.ActionSetFieldCol;
+import org.drools.brms.client.modeldriven.dt.AttributeCol;
+import org.drools.brms.client.modeldriven.dt.ConditionCol;
+import org.drools.brms.client.modeldriven.dt.GuidedDecisionTable;
+
+import junit.framework.TestCase;
+
+public class GuidedDecisionTableTest extends TestCase {
+
+// public void testGetCol() {
+// GuidedDecisionTable dt = new GuidedDecisionTable();
+// AttributeCol at1 = new AttributeCol();
+// ConditionCol condition1 = new ConditionCol();
+// ActionCol action1 = new ActionInsertFactCol();
+// dt.attributeCols.add(at1);
+// dt.conditionCols.add(condition1);
+// dt.actionCols.add(action1);
+//
+// assertEquals(at1, dt.getColumnConfiguration(0));
+// assertEquals(condition1, dt.getColumnConfiguration(1));
+// assertEquals(action1, dt.getColumnConfiguration(2));
+//
+//
+// AttributeCol at2 = new AttributeCol();
+// dt.attributeCols.add(at2);
+// assertEquals(at1, dt.getColumnConfiguration(0));
+// assertEquals(at2, dt.getColumnConfiguration(1));
+// assertEquals(condition1, dt.getColumnConfiguration(2));
+// assertEquals(action1, dt.getColumnConfiguration(3));
+//
+// ConditionCol condition2 = new ConditionCol();
+// dt.conditionCols.add(condition2);
+//
+// assertEquals(at1, dt.getColumnConfiguration(0));
+// assertEquals(at2, dt.getColumnConfiguration(1));
+// assertEquals(condition1, dt.getColumnConfiguration(2));
+// assertEquals(condition2, dt.getColumnConfiguration(3));
+// assertEquals(action1, dt.getColumnConfiguration(4));
+//
+// ActionCol action2 = new ActionInsertFactCol();
+// dt.actionCols.add(action2);
+// assertEquals(at1, dt.getColumnConfiguration(0));
+// assertEquals(at2, dt.getColumnConfiguration(1));
+// assertEquals(condition1, dt.getColumnConfiguration(2));
+// assertEquals(condition2, dt.getColumnConfiguration(3));
+// assertEquals(action1, dt.getColumnConfiguration(4));
+// assertEquals(action2, dt.getColumnConfiguration(5));
+//
+//
+//
+// dt.attributeCols = new ArrayList();
+// assertEquals(condition1, dt.getColumnConfiguration(0));
+// assertEquals(condition2, dt.getColumnConfiguration(1));
+// assertEquals(action1, dt.getColumnConfiguration(2));
+// assertEquals(action2, dt.getColumnConfiguration(3));
+//
+// dt.conditionCols = new ArrayList();
+// assertEquals(action1, dt.getColumnConfiguration(0));
+// assertEquals(action2, dt.getColumnConfiguration(1));
+//
+//
+//
+//
+//
+//
+// }
+
+ public void testValueLists() {
+ GuidedDecisionTable dt = new GuidedDecisionTable();
+
+ //add cols for LHS
+ ConditionCol c1 = new ConditionCol();
+ c1.boundName = "c1";
+ c1.factType = "Driver";
+ c1.factField = "name";
+ c1.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+ dt.conditionCols.add(c1);
+
+ ConditionCol c1_ = new ConditionCol();
+ c1_.boundName = "c1";
+ c1_.factType = "Driver";
+ c1_.factField = "name";
+ c1_.constraintValueType = ISingleFieldConstraint.TYPE_RET_VALUE;
+
+ dt.conditionCols.add(c1_);
+
+ ConditionCol c1__ = new ConditionCol();
+ c1__.boundName = "c1";
+ c1__.factType = "Driver";
+ c1__.factField = "name";
+ c1__.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+ c1__.valueList = "one,two,three";
+ dt.conditionCols.add(c1__);
+
+ ConditionCol c2 = new ConditionCol();
+ c2.boundName = "c2";
+ c2.factType = "Driver";
+ c2.factField = "nothing";
+ c2.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+ dt.conditionCols.add(c2);
+
+
+ ActionSetFieldCol asf = new ActionSetFieldCol();
+ asf.boundName = "c1";
+ asf.factField = "name";
+ dt.actionCols.add(asf);
+
+ ActionInsertFactCol ins = new ActionInsertFactCol();
+ ins.boundName = "x";
+ ins.factField = "rating";
+ ins.factType = "Person";
+ dt.actionCols.add(ins);
+
+ ActionInsertFactCol ins_ = new ActionInsertFactCol();
+ ins_.boundName = "x";
+ ins_.factField = "rating";
+ ins_.factType = "Person";
+ ins_.valueList = "one,two,three";
+ dt.actionCols.add(ins_);
+
+ ActionSetFieldCol asf_ = new ActionSetFieldCol();
+ asf_.boundName = "c1";
+ asf_.factField = "goo";
+ dt.actionCols.add(asf_);
+
+ ActionSetFieldCol asf__ = new ActionSetFieldCol();
+ asf__.boundName = "c1";
+ asf__.factField = "goo";
+ asf__.valueList = "one,two,three";
+ dt.actionCols.add(asf__);
+
+
+ SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
+ sce.dataEnumLists.put("Driver.name", new String[] {"bob", "michael"});
+ sce.dataEnumLists.put("Person.rating", new String[] {"1", "2"});
+
+
+
+
+ String[] r = dt.getValueList(c1, sce);
+ assertEquals(2, r.length);
+ assertEquals("bob", r[0]);
+ assertEquals("michael", r[1]);
+
+ assertEquals(0, dt.getValueList(c1_, sce).length);
+
+ r = dt.getValueList(c1__, sce);
+ assertEquals(3, r.length);
+ assertEquals("one", r[0]);
+ assertEquals("two", r[1]);
+ assertEquals("three", r[2]);
+
+ assertEquals(0, dt.getValueList(c2, sce).length);
+
+ r = dt.getValueList(asf, sce);
+ assertEquals(2, r.length);
+ assertEquals("bob", r[0]);
+ assertEquals("michael", r[1]);
+
+ r = dt.getValueList(ins, sce);
+ assertEquals(2, r.length);
+ assertEquals("1", r[0]);
+ assertEquals("2", r[1]);
+
+ r = dt.getValueList(ins_, sce);
+ assertEquals(3, r.length);
+ assertEquals("one", r[0]);
+ assertEquals("two", r[1]);
+ assertEquals("three", r[2]);
+
+ assertEquals(0, dt.getValueList(asf_, sce).length);
+
+
+ r = dt.getValueList(asf__, sce);
+ assertEquals(3, r.length);
+ assertEquals("one", r[0]);
+ assertEquals("two", r[1]);
+ assertEquals("three", r[2]);
+
+ AttributeCol at = new AttributeCol();
+ at.attr = "no-loop";
+ dt.attributeCols.add(at);
+
+ r = dt.getValueList(at, sce);
+ assertEquals(2, r.length);
+ assertEquals("true", r[0]);
+ assertEquals("false", r[1]);
+
+ at.attr = "enabled";
+ assertEquals(2, dt.getValueList(at, sce).length);
+
+ at.attr = "salience";
+ assertEquals(0, dt.getValueList(at, sce).length);
+
+ }
+
+
+ public void testNumeric() {
+ SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
+ sce.fieldTypes = new HashMap();
+ sce.fieldTypes.put("Driver.age", SuggestionCompletionEngine.TYPE_NUMERIC);
+ sce.fieldTypes.put("Driver.name", SuggestionCompletionEngine.TYPE_STRING);
+
+ GuidedDecisionTable dt = new GuidedDecisionTable();
+
+ AttributeCol at = new AttributeCol();
+ at.attr = "salience";
+ AttributeCol at_ = new AttributeCol();
+ at_.attr = "enabled";
+
+ dt.attributeCols.add(at);
+ dt.attributeCols.add(at_);
+
+ ConditionCol c1 = new ConditionCol();
+ c1.boundName = "c1";
+ c1.factType = "Driver";
+ c1.factField = "name";
+ c1.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+ dt.conditionCols.add(c1);
+
+ ConditionCol c1_ = new ConditionCol();
+ c1_.boundName = "c1";
+ c1_.factType = "Driver";
+ c1_.factField = "age";
+ c1_.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
+ dt.conditionCols.add(c1_);
+
+ ActionSetFieldCol a = new ActionSetFieldCol();
+ a.boundName = "c1";
+ a.factField = "name";
+ dt.actionCols.add(a);
+
+ ActionSetFieldCol a2 = new ActionSetFieldCol();
+ a2.boundName = "c1";
+ a2.factField = "age";
+ dt.actionCols.add(a2);
+
+ ActionInsertFactCol ins = new ActionInsertFactCol();
+ ins.boundName = "x";
+ ins.factType = "Driver";
+ ins.factField = "name";
+ dt.actionCols.add(ins);
+
+ ActionInsertFactCol ins_ = new ActionInsertFactCol();
+ ins_.boundName = "x";
+ ins_.factType = "Driver";
+ ins_.factField = "age";
+ dt.actionCols.add(ins_);
+
+ assertTrue(dt.isNumeric(at, sce));
+ assertFalse(dt.isNumeric(at_, sce));
+ assertFalse(dt.isNumeric(c1, sce));
+ assertTrue(dt.isNumeric(c1_, sce));
+ assertFalse(dt.isNumeric(a, sce));
+ assertTrue(dt.isNumeric(a2, sce));
+ assertFalse(dt.isNumeric(ins, sce));
+ assertTrue(dt.isNumeric(ins_, sce));
+
+
+
+
+ }
+
+
+}
Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/brms/modeldriven/dt/GuidedDecisionTableTest.java
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the jboss-svn-commits
mailing list