[jboss-svn-commits] JBL Code SVN: r5894 - in labs/jbossrules/trunk/drools-core/src: main/java/org/drools/base main/java/org/drools/base/dataproviders main/java/org/drools/base/evaluators main/java/org/drools/common main/java/org/drools/facttemplates main/java/org/drools/reteoo main/java/org/drools/reteoo/beta main/java/org/drools/rule main/java/org/drools/spi main/java/org/drools/util/concurrent/locks test/java/org/drools/base test/java/org/drools/base/dataproviders test/java/org/drools/examples/manners test/java/org/drools/examples/waltz test/java/org/drools/facttemplates test/java/org/drools/reteoo test/java/org/drools/rule
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Aug 15 11:20:57 EDT 2006
Author: michael.neale at jboss.com
Date: 2006-08-15 11:20:13 -0400 (Tue, 15 Aug 2006)
New Revision: 5894
Added:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/dataproviders/
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/dataproviders/ArgumentValueDescr.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/dataproviders/MethodDataProvider.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/dataproviders/
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/dataproviders/MethodDataProviderTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/dataproviders/TestVariable.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/ColumnTest.java
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseClassFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassObjectType.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/FieldFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ValueType.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DateFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FieldTemplateImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FromNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/HashedObjectSinkList.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteTuple.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/beta/BetaMemoryFactory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/AndCompositeRestriction.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralRestriction.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MultiRestrictionFieldConstraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/OrCompositeRestriction.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueRestriction.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableRestriction.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/DataProvider.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/PredicateExpression.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/concurrent/locks/Lock.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/FieldFactoryTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/ReteooMannersTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/waltz/BaseWaltzTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/waltz/ReteooWaltzTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/FactTemplateFieldExtractorTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/FactTemplateTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/FieldTemplateTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/FromNodeTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/DeclarationTest.java
Log:
JBRULES-340 - "from" core functionality and improved unit test
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseClassFieldExtractor.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/BaseClassFieldExtractor.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -18,7 +18,6 @@
import org.drools.RuntimeDroolsException;
import org.drools.spi.FieldExtractor;
-import org.drools.spi.ObjectType;
import org.drools.util.asm.ClassFieldInspector;
/**
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -21,7 +21,6 @@
import org.drools.RuntimeDroolsException;
import org.drools.spi.FieldExtractor;
-import org.drools.spi.ObjectType;
/**
* This provides access to fields, and what their numerical index/object type is.
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -16,7 +16,6 @@
* limitations under the License.
*/
-import java.beans.IntrospectionException;
import java.lang.reflect.Method;
import org.drools.RuntimeDroolsException;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassObjectType.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassObjectType.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassObjectType.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -16,8 +16,6 @@
* limitations under the License.
*/
-import org.drools.RuntimeDroolsException;
-import org.drools.spi.Evaluator;
import org.drools.spi.ObjectType;
/**
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/FieldFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/FieldFactory.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/FieldFactory.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -19,7 +19,6 @@
import java.math.BigDecimal;
import java.math.BigInteger;
-import org.drools.spi.Evaluator;
import org.drools.spi.FieldValue;
public class FieldFactory {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ValueType.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ValueType.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ValueType.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -14,6 +14,7 @@
import org.drools.base.evaluators.CharacterFactory;
import org.drools.base.evaluators.DateFactory;
import org.drools.base.evaluators.DoubleFactory;
+import org.drools.base.evaluators.EvaluatorFactory;
import org.drools.base.evaluators.FloatFactory;
import org.drools.base.evaluators.IntegerFactory;
import org.drools.base.evaluators.LongFactory;
@@ -21,9 +22,8 @@
import org.drools.base.evaluators.Operator;
import org.drools.base.evaluators.ShortFactory;
import org.drools.base.evaluators.StringFactory;
+import org.drools.facttemplates.FactTemplate;
import org.drools.spi.Evaluator;
-import org.drools.base.evaluators.EvaluatorFactory;
-import org.drools.facttemplates.FactTemplate;
public class ValueType implements Serializable {
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/dataproviders/ArgumentValueDescr.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/dataproviders/ArgumentValueDescr.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/dataproviders/ArgumentValueDescr.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -0,0 +1,55 @@
+package org.drools.base.dataproviders;
+
+import java.io.Serializable;
+
+/**
+ * This holds the value of an argument that has been parsed.
+ * The argument would then be passed to a method, or function etc.
+ *
+ * @author Michael Neale
+ *
+ */
+public class ArgumentValueDescr implements Serializable {
+
+ private static final long serialVersionUID = -8921442520702424678L;
+
+ /** Obviously if it was in quotes, its a string literal (which could be anything) */
+ public static final int STRING = 1;
+
+ /** Means true integer, not Javas interpretation of it */
+ public static final int INTEGRAL = 2;
+
+ /** Means a decimal number, which may or may not be floating */
+ public static final int DECIMAL = 4;
+
+ /** If its none of the above, then its a variable */
+ public static final int VARIABLE = 8;
+
+ public static final int BOOLEAN = 16;
+
+ public static final int NULL = 32;
+
+ private final int type;
+ private final String value;
+
+ /**
+ * @param type One of the constant types.
+ * @param value
+ */
+ public ArgumentValueDescr(int type, String value) {
+ this.type = type;
+ this.value = value;
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+
+
+
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/dataproviders/MethodDataProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/dataproviders/MethodDataProvider.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/dataproviders/MethodDataProvider.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -0,0 +1,246 @@
+package org.drools.base.dataproviders;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.RuntimeDroolsException;
+import org.drools.WorkingMemory;
+import org.drools.base.evaluators.DateFactory;
+import org.drools.rule.Declaration;
+import org.drools.spi.DataProvider;
+import org.drools.spi.PropagationContext;
+import org.drools.spi.Tuple;
+
+public class MethodDataProvider
+ implements
+ DataProvider {
+
+ private final Declaration[] requiredDeclarations;
+ private final boolean variableIsDeclaration;
+ private final Declaration variableDeclaration;
+ private final String variableName;
+
+ private final ValueHandler[] valueHandlers;
+
+ private final Method method;
+ private final Class variableClass;
+
+ public MethodDataProvider(String variableName,
+ String methodName,
+ List arguments,
+ Map declarations,
+ Map globals) {
+
+ List requiredDecs = new ArrayList();
+
+ //work out where variable comes from, is it a dec or a global
+ this.variableName = variableName;
+ if (declarations.containsKey( variableName )) {
+ variableDeclaration = (Declaration) declarations.get( variableName );
+ requiredDecs.add( variableDeclaration );
+ variableIsDeclaration = true;
+ this.variableClass = variableDeclaration.getExtractor().getExtractToClass();
+ } else if (globals.containsKey( variableName )) {
+ variableIsDeclaration = false;
+ this.variableClass = (Class) globals.get( variableName );
+ variableDeclaration = null;
+ } else {
+ variableDeclaration = null;
+ throw new IllegalArgumentException("The variable name [" + variableName + "] was not a global or declaration.");
+ }
+
+ //now handle arguments
+ List argumentData = new ArrayList();
+
+ for ( Iterator iter = arguments.iterator(); iter.hasNext(); ) {
+ ArgumentValueDescr desc = (ArgumentValueDescr) iter.next();
+ if ( desc.getType() == ArgumentValueDescr.VARIABLE ) {
+ if ( declarations.containsKey( desc.getValue() ) ) {
+ Declaration dec = (Declaration) declarations.get( desc.getValue() );
+ requiredDecs.add( dec );
+ argumentData.add( new DeclaredVariable(dec) );
+ } else if ( globals.containsKey( desc.getValue() ) ) {
+ argumentData.add( new GlobalVariable(desc.getValue()) );
+ } else {
+ throw new IllegalArgumentException( "Uknown variable: " + desc.getValue() );
+ }
+ } else {
+ // handling a literal
+ argumentData.add( new LiteralValue(desc.getValue()) );
+ }
+ }
+
+ //now find the method
+ method = configureMethod(methodName, variableClass, arguments.size());
+
+ valueHandlers = (ValueHandler[]) argumentData.toArray(new ValueHandler[argumentData.size()]);
+ requiredDeclarations = new Declaration[requiredDecs.size()];
+ requiredDecs.toArray( requiredDeclarations );
+ }
+
+ /**
+ * work out what method we will be calling at runtime, based on the name and number of parameters.
+ */
+ private Method configureMethod(String methodName, Class variableClass, int numOfArgs) {
+ Method[] methods = this.variableClass.getMethods();
+ for ( int i = 0; i < methods.length; i++ ) {
+ if (methods[i].getName().equals(methodName)) {
+ if (methods[i].getParameterTypes().length == numOfArgs) {
+ return methods[i];
+ }
+ }
+ }
+ return null;
+ }
+
+ public Declaration[] getRequiredDeclarations() {
+ return requiredDeclarations;
+ }
+
+ public Iterator getResults(Tuple tuple,
+ WorkingMemory wm,
+ PropagationContext ctx) {
+ //get the variable value that we are operating on
+ Object variable = null;
+ if (variableIsDeclaration) {
+ variable = tuple.get( this.variableDeclaration ).getObject();
+ } else {
+ variable = wm.getGlobal( this.variableName );
+ }
+
+
+ //the types we have to convert the arguments to
+ Class[] parameterTypes = this.method.getParameterTypes();
+
+ //the args values that we will pass
+ Object[] args = new Object[this.valueHandlers.length];
+
+
+ //now we need to set all the values, convert if literal
+ for ( int i = 0; i < this.valueHandlers.length; i++ ) {
+ ValueHandler handler = valueHandlers[i];
+ if (handler instanceof LiteralValue) {
+ String text = (String) handler.getValue( tuple, wm );
+ Class type = parameterTypes[i];
+ if (type == String.class) {
+ args[i] = text;
+ } else {
+ args[i] = convert(text, type);
+ }
+ } else {
+ args[i] = handler.getValue( tuple, wm );
+ }
+ }
+
+ //now the actual invoking of the method
+ try {
+ Object result = this.method.invoke( variable, args );
+ if (result instanceof Collection) {
+ return ((Collection) result).iterator();
+ } else if (result instanceof Iterator) {
+ return (Iterator) result;
+ } else {
+ List resultAsList = new ArrayList(1);
+ resultAsList.add( result );
+ return resultAsList.iterator();
+ }
+ } catch ( IllegalArgumentException e ) {
+ throw new RuntimeDroolsException(e);
+ } catch ( IllegalAccessException e ) {
+ throw new RuntimeDroolsException(e);
+ } catch ( InvocationTargetException e ) {
+ throw new RuntimeDroolsException(e);
+ }
+
+ }
+
+
+ /** Attempt to convert text to the target class type */
+ private Object convert(String text,
+ Class type) {
+ if ( type == Integer.class || type == int.class) {
+ return new Integer( text ) ;
+ } else if ( text == "null" ) {
+ return null;
+ } else if ( type == Character.class || type == char.class ) {
+ return ( new Character( text.charAt( 0 ) ) );
+ } else if ( type == Short.class || type == short.class) {
+ return new Short( text );
+ } else if ( type == Long.class || type == long.class ) {
+ return new Long( text );
+ } else if ( type == Float.class || type == float.class) {
+ return new Float( text );
+ } else if ( type == Double.class || type == double.class) {
+ return new Double( text );
+ } else if ( type == Boolean.class || type == boolean.class) {
+ return new Boolean( text );
+ } else if ( type == Date.class ) {
+ return DateFactory.parseDate( text );
+ } else if ( type == BigDecimal.class ) {
+ return new BigDecimal(text);
+ } else if ( type == BigInteger.class ) {
+ return new BigInteger(text);
+ } else {
+ throw new IllegalArgumentException("Unable to convert [" + text + "] to type: [" + type.getName() + "]");
+ }
+ }
+
+
+ static interface ValueHandler {
+
+ Object getValue(Tuple tuple, WorkingMemory wm);
+ }
+
+ static class GlobalVariable implements ValueHandler {
+ public String globalName;
+ public GlobalVariable(String name) {
+ this.globalName = name;
+ }
+ public Object getValue(Tuple tuple,
+ WorkingMemory wm) {
+ return wm.getGlobal( globalName );
+
+ }
+ }
+
+ static class DeclaredVariable implements ValueHandler {
+
+ private Declaration declaration;
+
+ public DeclaredVariable(Declaration dec) {
+ this.declaration = dec;
+ }
+
+ public Object getValue(Tuple tuple,
+ WorkingMemory wm) {
+ return tuple.get( this.declaration ).getObject();
+ }
+
+ }
+
+ static class LiteralValue implements ValueHandler {
+
+ private String value;
+
+ public LiteralValue(String value) {
+ this.value = value;
+ }
+
+ public Object getValue(Tuple tuple,
+ WorkingMemory wm) {
+ return value;
+ }
+
+ }
+
+
+
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DateFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DateFactory.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/DateFactory.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -22,12 +22,6 @@
import org.drools.base.BaseEvaluator;
import org.drools.base.ValueType;
-import org.drools.base.evaluators.ShortFactory.ShortEqualEvaluator;
-import org.drools.base.evaluators.ShortFactory.ShortGreaterEvaluator;
-import org.drools.base.evaluators.ShortFactory.ShortGreaterOrEqualEvaluator;
-import org.drools.base.evaluators.ShortFactory.ShortLessEvaluator;
-import org.drools.base.evaluators.ShortFactory.ShortLessOrEqualEvaluator;
-import org.drools.base.evaluators.ShortFactory.ShortNotEqualEvaluator;
import org.drools.spi.Evaluator;
/**
@@ -256,7 +250,7 @@
}
/** Use the simple date formatter to read the date from a string */
- private static Date parseDate(final String input) {
+ public static Date parseDate(final String input) {
final SimpleDateFormat df = new SimpleDateFormat( DateFactory.DATE_FORMAT_MASK );
try {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -24,7 +24,6 @@
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
-import java.io.Serializable;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactImpl.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactImpl.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -17,7 +17,6 @@
package org.drools.facttemplates;
import java.io.Serializable;
-import java.util.ArrayList;
import java.util.Arrays;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateImpl.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateImpl.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -17,8 +17,6 @@
package org.drools.facttemplates;
import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
import org.drools.rule.Package;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateObjectType.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -17,10 +17,7 @@
* limitations under the License.
*/
-import org.drools.RuntimeDroolsException;
import org.drools.base.ValueType;
-import org.drools.facttemplates.FieldTemplate;
-import org.drools.spi.Evaluator;
import org.drools.spi.ObjectType;
/**
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FieldTemplateImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FieldTemplateImpl.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FieldTemplateImpl.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -1,8 +1,6 @@
package org.drools.facttemplates;
-import org.drools.RuntimeDroolsException;
import org.drools.base.ValueType;
-import org.drools.spi.Evaluator;
public class FieldTemplateImpl
implements
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FromNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FromNode.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FromNode.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -10,10 +10,6 @@
import org.drools.common.InternalFactHandle;
import org.drools.common.NodeMemory;
import org.drools.common.PropagationContextImpl;
-import org.drools.rule.Declaration;
-import org.drools.rule.EvalCondition;
-import org.drools.rule.From;
-import org.drools.spi.Constraint;
import org.drools.spi.DataProvider;
import org.drools.spi.FieldConstraint;
import org.drools.spi.PropagationContext;
@@ -62,7 +58,7 @@
memory.add( workingMemory,
leftTuple );
- for ( Iterator it = this.dataProvider.getResults( leftTuple ); it.hasNext(); ) {
+ for ( Iterator it = this.dataProvider.getResults( leftTuple, workingMemory, context ); it.hasNext(); ) {
Object object = it.next();
// First alpha node filters
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/HashedObjectSinkList.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/HashedObjectSinkList.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/HashedObjectSinkList.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -29,7 +29,6 @@
import org.drools.base.evaluators.Operator;
import org.drools.common.DefaultFactHandle;
import org.drools.rule.LiteralConstraint;
-import org.drools.spi.Evaluator;
import org.drools.spi.FieldConstraint;
/**
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteTuple.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteTuple.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteTuple.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -96,7 +96,7 @@
*
* @param tuple
*/
- ReteTuple(final ReteTuple tuple) {
+ public ReteTuple(final ReteTuple tuple) {
this.key = new TupleKey( tuple.key );
}
@@ -108,7 +108,7 @@
* @param handle
* the <code>FactHandleImpl</code> to be joined.
*/
- ReteTuple(final ReteTuple left,
+ public ReteTuple(final ReteTuple left,
final DefaultFactHandle handle) {
this.key = new TupleKey( left.key,
handle );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -35,7 +35,6 @@
import org.drools.common.BetaNodeBinder;
import org.drools.common.InstanceEqualsConstraint;
import org.drools.common.InstanceNotEqualsConstraint;
-import org.drools.facttemplates.FactTemplateObjectType;
import org.drools.rule.And;
import org.drools.rule.Column;
import org.drools.rule.Declaration;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/beta/BetaMemoryFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/beta/BetaMemoryFactory.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/beta/BetaMemoryFactory.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -23,7 +23,6 @@
import org.drools.base.evaluators.Operator;
import org.drools.common.BetaNodeBinder;
import org.drools.rule.VariableConstraint;
-import org.drools.spi.Evaluator;
import org.drools.spi.FieldConstraint;
/**
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/AndCompositeRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/AndCompositeRestriction.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/AndCompositeRestriction.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -1,8 +1,5 @@
package org.drools.rule;
-import java.util.HashSet;
-import java.util.Set;
-
import org.drools.WorkingMemory;
import org.drools.spi.Restriction;
import org.drools.spi.Tuple;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -44,7 +44,6 @@
import org.drools.base.ValueType;
import org.drools.spi.Extractor;
-import org.drools.spi.ObjectType;
/*
* Copyright 2005 JBoss Inc
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralRestriction.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralRestriction.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -18,8 +18,6 @@
import org.drools.WorkingMemory;
import org.drools.spi.Evaluator;
-import org.drools.spi.FieldConstraint;
-import org.drools.spi.FieldExtractor;
import org.drools.spi.FieldValue;
import org.drools.spi.Restriction;
import org.drools.spi.Tuple;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MultiRestrictionFieldConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MultiRestrictionFieldConstraint.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MultiRestrictionFieldConstraint.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -1,14 +1,8 @@
package org.drools.rule;
-import java.util.HashSet;
-import java.util.Set;
-
import org.drools.WorkingMemory;
-import org.drools.spi.Evaluator;
-import org.drools.spi.Extractor;
import org.drools.spi.FieldConstraint;
import org.drools.spi.FieldExtractor;
-import org.drools.spi.FieldValue;
import org.drools.spi.Restriction;
import org.drools.spi.Tuple;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/OrCompositeRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/OrCompositeRestriction.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/OrCompositeRestriction.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -1,9 +1,5 @@
package org.drools.rule;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
import org.drools.WorkingMemory;
import org.drools.spi.Restriction;
import org.drools.spi.Tuple;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -16,7 +16,6 @@
* limitations under the License.
*/
-import org.drools.RuntimeDroolsException;
import org.drools.WorkingMemory;
import org.drools.spi.Evaluator;
import org.drools.spi.FieldConstraint;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueRestriction.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueRestriction.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -21,8 +21,6 @@
import org.drools.RuntimeDroolsException;
import org.drools.WorkingMemory;
import org.drools.spi.Evaluator;
-import org.drools.spi.FieldConstraint;
-import org.drools.spi.FieldExtractor;
import org.drools.spi.Restriction;
import org.drools.spi.ReturnValueExpression;
import org.drools.spi.Tuple;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableRestriction.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableRestriction.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -20,8 +20,6 @@
import org.drools.WorkingMemory;
import org.drools.spi.Evaluator;
-import org.drools.spi.FieldConstraint;
-import org.drools.spi.FieldExtractor;
import org.drools.spi.Restriction;
import org.drools.spi.Tuple;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -3,7 +3,6 @@
import org.drools.base.ClassObjectType;
import org.drools.base.ValueType;
import org.drools.facttemplates.Fact;
-import org.drools.facttemplates.FactTemplate;
/*
* Copyright 2005 JBoss Inc
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/DataProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/DataProvider.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/DataProvider.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -1,13 +1,13 @@
package org.drools.spi;
import java.util.Iterator;
-import java.util.List;
+import org.drools.WorkingMemory;
import org.drools.rule.Declaration;
public interface DataProvider {
public Declaration[] getRequiredDeclarations();
- public Iterator getResults(Tuple tuple);
+ public Iterator getResults(Tuple tuple, WorkingMemory wm, PropagationContext ctx);
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/PredicateExpression.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/PredicateExpression.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/PredicateExpression.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -16,7 +16,6 @@
* limitations under the License.
*/
-import org.drools.FactHandle;
import org.drools.WorkingMemory;
import org.drools.rule.Declaration;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/concurrent/locks/Lock.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/concurrent/locks/Lock.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/concurrent/locks/Lock.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -6,6 +6,10 @@
package org.drools.util.concurrent.locks;
+import EDU.oswego.cs.dl.util.concurrent.ReadWriteLock;
+
+import com.sun.corba.se.internal.orbutil.Condition;
+
//import edu.emory.mathcs.backport.java.util.concurrent.locks.*; // for javadoc (till 6280605 is fixed)
//import edu.emory.mathcs.backport.java.util.concurrent.TimeUnit;
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/FieldFactoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/FieldFactoryTest.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/FieldFactoryTest.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -3,10 +3,10 @@
import java.math.BigDecimal;
import java.math.BigInteger;
+import junit.framework.TestCase;
+
import org.drools.spi.FieldValue;
-import junit.framework.TestCase;
-
public class FieldFactoryTest extends TestCase {
public void testBigDecimal() {
Added: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/dataproviders/MethodDataProviderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/dataproviders/MethodDataProviderTest.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/dataproviders/MethodDataProviderTest.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -0,0 +1,97 @@
+package org.drools.base.dataproviders;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.drools.FactHandle;
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.WorkingMemory;
+import org.drools.base.ClassObjectType;
+import org.drools.common.DefaultFactHandle;
+import org.drools.common.PropagationContextImpl;
+import org.drools.reteoo.ReteTuple;
+import org.drools.reteoo.ReteooRuleBase;
+import org.drools.reteoo.ReteooWorkingMemory;
+import org.drools.rule.Declaration;
+import org.drools.rule.Package;
+import org.drools.spi.ColumnExtractor;
+import org.drools.spi.Extractor;
+import org.drools.spi.PropagationContext;
+
+public class MethodDataProviderTest extends TestCase {
+
+ private PropagationContext context;
+ private ReteooWorkingMemory workingMemory;
+ private Map declarations;
+ private Map globals;
+
+ protected void setUp() {
+ context = new PropagationContextImpl( 0,
+ PropagationContext.ASSERTION,
+ null,
+ null );
+ workingMemory = new ReteooWorkingMemory( 1,
+ (ReteooRuleBase) RuleBaseFactory.newRuleBase() );
+
+ declarations = new HashMap();
+ globals = new HashMap();
+ }
+
+ public void testWithDeclarationsHelloWorld() throws Exception {
+
+ Extractor ex = new ColumnExtractor(new ClassObjectType(TestVariable.class));
+ Declaration varDec = new Declaration("var", ex, 0);
+ declarations.put("var", varDec);
+
+ ex = new ColumnExtractor(new ClassObjectType(String.class));
+ Declaration var2Dec = new Declaration("var2", ex, 1);
+ declarations.put( "var2", var2Dec );
+
+ List args = new ArrayList();
+ args.add( new ArgumentValueDescr(ArgumentValueDescr.STRING, "boo") );
+ args.add( new ArgumentValueDescr(ArgumentValueDescr.INTEGRAL, "42") );
+ args.add( new ArgumentValueDescr(ArgumentValueDescr.VARIABLE, "var2") );
+ MethodDataProvider prov = new MethodDataProvider("var", "helloWorld", args, declarations, globals);
+
+ TestVariable var = new TestVariable();
+ FactHandle varHandle = workingMemory.assertObject( var );
+ FactHandle var2Handle = workingMemory.assertObject( "hola" );
+
+ ReteTuple tuple = new ReteTuple(new ReteTuple( (DefaultFactHandle) varHandle ), (DefaultFactHandle) var2Handle );
+
+ Iterator it = prov.getResults( tuple, workingMemory, context );
+
+ Object result = it.next();
+ assertEquals("boo42hola", result);
+
+
+ }
+
+ public void testWithGlobals() throws Exception {
+ globals.put( "foo", TestVariable.class );
+
+ Package pkg = new Package("nothing");
+ pkg.addGlobal( "foo", TestVariable.class );
+ RuleBase rb = RuleBaseFactory.newRuleBase();
+ rb.addPackage( pkg );
+
+ WorkingMemory wm = rb.newWorkingMemory();
+
+ wm.setGlobal( "foo", new TestVariable() );
+
+ MethodDataProvider prov = new MethodDataProvider("foo", "otherMethod", new ArrayList(), declarations, globals);
+
+ Iterator it = prov.getResults( null, wm, null );
+ assertTrue(it.hasNext());
+ assertEquals("boo", it.next());
+ }
+
+
+
+}
Added: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/dataproviders/TestVariable.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/dataproviders/TestVariable.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/dataproviders/TestVariable.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -0,0 +1,23 @@
+package org.drools.base.dataproviders;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TestVariable {
+
+
+ public String helloWorld(String a1, int a2, String a3) {
+ return a1 + a2 + a3;
+ }
+
+ public List otherMethod() {
+ List list = new ArrayList();
+ list.add( "boo" );
+ return list;
+ }
+
+ public String helloWorld() {
+ return "another one";
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -37,7 +37,6 @@
import org.drools.base.ClassObjectType;
import org.drools.base.ValueType;
import org.drools.base.evaluators.Operator;
-import org.drools.rule.VariableConstraint;
import org.drools.rule.Column;
import org.drools.rule.Declaration;
import org.drools.rule.InvalidRuleException;
@@ -45,6 +44,7 @@
import org.drools.rule.Not;
import org.drools.rule.Package;
import org.drools.rule.Rule;
+import org.drools.rule.VariableConstraint;
import org.drools.spi.Consequence;
import org.drools.spi.ConsequenceException;
import org.drools.spi.Evaluator;
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/ReteooMannersTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/ReteooMannersTest.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/ReteooMannersTest.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -16,22 +16,13 @@
* limitations under the License.
*/
-import java.beans.IntrospectionException;
-import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;
-import org.drools.FactException;
-import org.drools.PackageIntegrationException;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
-import org.drools.RuleIntegrationException;
import org.drools.WorkingMemory;
-import org.drools.leaps.LeapsRuleBase;
-import org.drools.rule.DuplicateRuleNameException;
-import org.drools.rule.InvalidPatternException;
-import org.drools.rule.InvalidRuleException;
public class ReteooMannersTest extends BaseMannersTest {
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/waltz/BaseWaltzTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/waltz/BaseWaltzTest.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/waltz/BaseWaltzTest.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -33,7 +33,6 @@
import org.drools.base.ClassObjectType;
import org.drools.base.ValueType;
import org.drools.base.evaluators.Operator;
-import org.drools.rule.VariableConstraint;
import org.drools.rule.Column;
import org.drools.rule.Declaration;
import org.drools.rule.InvalidRuleException;
@@ -42,6 +41,7 @@
import org.drools.rule.Or;
import org.drools.rule.Package;
import org.drools.rule.Rule;
+import org.drools.rule.VariableConstraint;
import org.drools.spi.Consequence;
import org.drools.spi.ConsequenceException;
import org.drools.spi.Evaluator;
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/waltz/ReteooWaltzTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/waltz/ReteooWaltzTest.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/waltz/ReteooWaltzTest.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -21,19 +21,9 @@
*
*/
-import java.beans.IntrospectionException;
-import java.io.IOException;
-
-import org.drools.FactException;
-import org.drools.PackageIntegrationException;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
-import org.drools.RuleIntegrationException;
import org.drools.WorkingMemory;
-import org.drools.leaps.LeapsRuleBase;
-import org.drools.rule.DuplicateRuleNameException;
-import org.drools.rule.InvalidPatternException;
-import org.drools.rule.InvalidRuleException;
/**
*
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/FactTemplateFieldExtractorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/FactTemplateFieldExtractorTest.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/FactTemplateFieldExtractorTest.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -1,12 +1,11 @@
package org.drools.facttemplates;
-import org.drools.Cheese;
+import junit.framework.TestCase;
+
import org.drools.rule.Declaration;
import org.drools.rule.Package;
import org.drools.spi.Extractor;
-import junit.framework.TestCase;
-
public class FactTemplateFieldExtractorTest extends TestCase {
public void testExtractor() {
Package pkg = new Package( "org.store" );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/FactTemplateTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/FactTemplateTest.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/FactTemplateTest.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -1,9 +1,9 @@
package org.drools.facttemplates;
+import junit.framework.TestCase;
+
import org.drools.rule.Package;
-import junit.framework.TestCase;
-
public class FactTemplateTest extends TestCase {
public void testFieldsAndGetters() {
Package pkg = new Package( "org.store" );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/FieldTemplateTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/FieldTemplateTest.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/FieldTemplateTest.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -1,9 +1,9 @@
package org.drools.facttemplates;
+import junit.framework.TestCase;
+
import org.drools.base.ValueType;
-import junit.framework.TestCase;
-
public class FieldTemplateTest extends TestCase {
public void testFieldTemplate() {
FieldTemplate cheeseName = new FieldTemplateImpl("name", 5, String.class);
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/AlphaNodeTest.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -29,7 +29,6 @@
import org.drools.base.evaluators.Operator;
import org.drools.common.DefaultFactHandle;
import org.drools.common.PropagationContextImpl;
-import org.drools.facttemplates.FactTemplateFieldExtractor;
import org.drools.rule.LiteralConstraint;
import org.drools.rule.Rule;
import org.drools.spi.Evaluator;
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/FromNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/FromNodeTest.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/FromNodeTest.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -2,35 +2,30 @@
import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import junit.framework.TestCase;
+
import org.drools.Cheese;
import org.drools.FactHandle;
import org.drools.RuleBaseFactory;
+import org.drools.WorkingMemory;
import org.drools.base.ClassFieldExtractor;
-import org.drools.base.ClassObjectType;
import org.drools.base.ValueType;
import org.drools.base.evaluators.Operator;
import org.drools.common.DefaultFactHandle;
-import org.drools.common.InternalFactHandle;
import org.drools.common.PropagationContextImpl;
-import org.drools.rule.Column;
import org.drools.rule.Declaration;
-import org.drools.rule.From;
import org.drools.rule.LiteralConstraint;
import org.drools.rule.VariableConstraint;
import org.drools.spi.DataProvider;
-import org.drools.spi.Evaluator;
import org.drools.spi.FieldConstraint;
import org.drools.spi.FieldValue;
import org.drools.spi.MockField;
import org.drools.spi.PropagationContext;
import org.drools.spi.Tuple;
-import junit.framework.TestCase;
-
public class FromNodeTest extends TestCase {
public void testAlphaNode() {
@@ -396,7 +391,7 @@
this.collection = collection;
}
- public Iterator getResults(Tuple tuple) {
+ public Iterator getResults(Tuple tuple, WorkingMemory wm, PropagationContext ctx) {
return this.collection.iterator();
}
}
Added: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/ColumnTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/ColumnTest.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/ColumnTest.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -0,0 +1,63 @@
+package org.drools.rule;
+
+import junit.framework.TestCase;
+
+import org.drools.Cheese;
+import org.drools.base.ClassObjectType;
+import org.drools.facttemplates.Fact;
+import org.drools.facttemplates.FactTemplate;
+import org.drools.facttemplates.FactTemplateImpl;
+import org.drools.facttemplates.FactTemplateObjectType;
+import org.drools.facttemplates.FieldTemplate;
+import org.drools.facttemplates.FieldTemplateImpl;
+import org.drools.spi.Extractor;
+import org.drools.spi.ObjectType;
+
+public class ColumnTest extends TestCase {
+
+ public void testDeclarationsObjectType() throws Exception {
+ ObjectType type = new ClassObjectType(Cheese.class);
+ Column col = new Column(0, type, "foo");
+ Declaration dec = col.getDeclaration();
+ Extractor ext = dec.getExtractor();
+ assertEquals(Cheese.class, ext.getExtractToClass());
+
+ Cheese stilton = new Cheese("stilton", 42);
+
+ assertEquals(stilton, dec.getValue( stilton ));
+
+
+
+ }
+
+ public void testDeclarationsFactTemplate() throws Exception {
+
+
+ Package pkg = new Package( "org.store" );
+ FieldTemplate cheeseName = new FieldTemplateImpl( "name",
+ 0,
+ String.class );
+ FieldTemplate cheesePrice = new FieldTemplateImpl( "price",
+ 1,
+ Integer.class );
+ FieldTemplate[] fields = new FieldTemplate[]{cheeseName, cheesePrice};
+ FactTemplate cheese = new FactTemplateImpl( pkg,
+ "Cheese",
+ fields );
+
+ ObjectType type = new FactTemplateObjectType(cheese);
+
+ Column col = new Column(0, type, "foo");
+ Declaration dec = col.getDeclaration();
+ Extractor ext = dec.getExtractor();
+ assertEquals(Fact.class, ext.getExtractToClass());
+
+ Fact stilton = cheese.createFact( 10 );
+ stilton.setFieldValue( "name", "stilton" );
+ stilton.setFieldValue( "price", new Integer( 200 ) );
+
+ assertEquals(stilton, dec.getValue( stilton ));
+ }
+
+
+}
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/DeclarationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/DeclarationTest.java 2006-08-15 14:39:42 UTC (rev 5893)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/DeclarationTest.java 2006-08-15 15:20:13 UTC (rev 5894)
@@ -24,7 +24,6 @@
import org.drools.Cheese;
import org.drools.base.ClassFieldExtractor;
-import org.drools.base.ClassObjectType;
import org.drools.spi.FieldExtractor;
public class DeclarationTest extends TestCase {
More information about the jboss-svn-commits
mailing list