[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