[jboss-svn-commits] JBL Code SVN: r6006 - in labs/jbossrules/trunk/drools-core/src: main/java/org/drools/base/dataproviders main/java/org/drools/base/resolvers main/java/org/drools/facttemplates test/java/org/drools/base/dataproviders test/java/org/drools/base/resolvers
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Aug 29 13:15:44 EDT 2006
Author: mark.proctor at jboss.com
Date: 2006-08-29 13:15:33 -0400 (Tue, 29 Aug 2006)
New Revision: 6006
Modified:
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/MethodInvoker.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/DeclarationVariable.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/GlobalVariable.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/ListValue.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/LiteralValue.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/MapValue.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/ValueHandler.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateFieldExtractor.java
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/resolvers/GlobalVariableTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/resolvers/ListValueTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/resolvers/LiteralValueTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/resolvers/MapValueTest.java
Log:
JBRULES-339 'from'
-Added unit tests
-Made classes implement getExtractToClass
-MethodDataProvider now uses Collections.singletonList( result ).iterator()
Modified: 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-29 15:49:44 UTC (rev 6005)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/dataproviders/MethodDataProvider.java 2006-08-29 17:15:33 UTC (rev 6006)
@@ -2,6 +2,7 @@
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -33,10 +34,8 @@
return ((Collection) result).iterator();
} else if ( result instanceof Iterator ) {
return (Iterator) result;
- } else {
- List resultAsList = new ArrayList( 1 );
- resultAsList.add( result );
- return resultAsList.iterator();
+ } else {
+ return Collections.singletonList( result ).iterator();
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/dataproviders/MethodInvoker.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/dataproviders/MethodInvoker.java 2006-08-29 15:49:44 UTC (rev 6005)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/dataproviders/MethodInvoker.java 2006-08-29 17:15:33 UTC (rev 6006)
@@ -30,15 +30,27 @@
public MethodInvoker(String methodName,
Class clazz,
ValueHandler[] valueHandlers) {
- this( methodName, clazz, null, valueHandlers );
- // @todo : defensive errors for referencing non static method
+ this.instanceValueHandler = null;
+ this.valueHandlers = valueHandlers;
+
+ // determine required declarations
+ List list = new ArrayList(1);
+ for ( int i = 0, length = valueHandlers.length; i < length; i++ ) {
+ if ( valueHandlers[i].getClass() == DeclarationVariable.class ) {
+ list.add( ( (DeclarationVariable) valueHandlers[i] ).getDeclaration() );
+ }
+ }
+
+ this.requiredDeclarations = ( Declaration[] )list.toArray( new Declaration[ list.size() ] );
+
+ this.method = configureMethod( clazz,
+ methodName,
+ valueHandlers.length );
}
-
/**
* Method invoker for an instance
*/
public MethodInvoker(String methodName,
- Class clazz,
ValueHandler instanceValueHandler,
ValueHandler[] valueHandlers) {
this.instanceValueHandler = instanceValueHandler;
@@ -57,7 +69,7 @@
this.requiredDeclarations = ( Declaration[] )list.toArray( new Declaration[ list.size() ] );
- this.method = configureMethod( clazz,
+ this.method = configureMethod( this.instanceValueHandler.getExtractToClass(),
methodName,
valueHandlers.length );
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/DeclarationVariable.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/DeclarationVariable.java 2006-08-29 15:49:44 UTC (rev 6005)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/DeclarationVariable.java 2006-08-29 17:15:33 UTC (rev 6006)
@@ -33,6 +33,10 @@
return this.declaration;
}
+ public Class getExtractToClass() {
+ return this.declaration.getExtractor().getExtractToClass();
+ }
+
public void reset() {
this.cachedValue = ValueHandler.EMPTY;
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/GlobalVariable.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/GlobalVariable.java 2006-08-29 15:49:44 UTC (rev 6005)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/GlobalVariable.java 2006-08-29 17:15:33 UTC (rev 6006)
@@ -12,12 +12,15 @@
private static final long serialVersionUID = 320L;
- public String globalName;
+ public final String globalName;
+ public final Class clazz;
+
private Object cachedValue = ValueHandler.EMPTY;
- public GlobalVariable(final String name) {
+ public GlobalVariable(final String name, final Class clazz) {
this.globalName = name;
+ this.clazz = clazz;
}
public Object getValue(final Tuple tuple,
@@ -28,6 +31,10 @@
return this.cachedValue;
}
+ public Class getExtractToClass() {
+ return this.clazz;
+ }
+
public void reset() {
this.cachedValue = ValueHandler.EMPTY;
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/ListValue.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/ListValue.java 2006-08-29 15:49:44 UTC (rev 6005)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/ListValue.java 2006-08-29 17:15:33 UTC (rev 6006)
@@ -39,6 +39,10 @@
return this.cachedValue;
}
+ public Class getExtractToClass() {
+ return List.class;
+ }
+
public void reset() {
this.cachedValue = ValueHandler.EMPTY;
}
@@ -66,6 +70,5 @@
final ListValue other = (ListValue) object;
return this.list.equals( other.list );
}
-
-
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/LiteralValue.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/LiteralValue.java 2006-08-29 15:49:44 UTC (rev 6005)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/LiteralValue.java 2006-08-29 17:15:33 UTC (rev 6006)
@@ -3,6 +3,8 @@
*/
package org.drools.base.resolvers;
+import java.util.List;
+
import org.drools.WorkingMemory;
import org.drools.spi.Tuple;
@@ -12,10 +14,13 @@
private static final long serialVersionUID = 320L;
- private String value;
+ private final String value;
+
+ private final Class clazz;
- public LiteralValue(final String value) {
+ public LiteralValue(final String value, final Class clazz) {
this.value = value;
+ this.clazz = clazz;
}
public Object getValue(final Tuple tuple,
@@ -23,6 +28,10 @@
return this.value;
}
+ public Class getExtractToClass() {
+ return this.clazz;
+ }
+
public void reset() {
// N/A
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/MapValue.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/MapValue.java 2006-08-29 15:49:44 UTC (rev 6005)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/MapValue.java 2006-08-29 17:15:33 UTC (rev 6006)
@@ -5,6 +5,7 @@
import java.io.Serializable;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import org.drools.WorkingMemory;
@@ -42,6 +43,10 @@
return this.cachedValue;
}
+
+ public Class getExtractToClass() {
+ return Map.class;
+ }
public void reset() {
this.cachedValue = ValueHandler.EMPTY;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/ValueHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/ValueHandler.java 2006-08-29 15:49:44 UTC (rev 6005)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/resolvers/ValueHandler.java 2006-08-29 17:15:33 UTC (rev 6006)
@@ -25,6 +25,8 @@
*/
public Object getValue(Tuple tuple,
WorkingMemory wm);
+
+ public Class getExtractToClass() ;
/**
* NULL the cached value
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateFieldExtractor.java 2006-08-29 15:49:44 UTC (rev 6005)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateFieldExtractor.java 2006-08-29 17:15:33 UTC (rev 6006)
@@ -20,7 +20,7 @@
public ValueType getValueType() {
return this.factTemplate.getFieldTemplate( fieldIndex ).getValueType();
- }
+ }
public Object getValue(Object object) {
return ((Fact) object).getFieldValue( this.fieldIndex );
Modified: 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-29 15:49:44 UTC (rev 6005)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/dataproviders/MethodDataProviderTest.java 2006-08-29 17:15:33 UTC (rev 6006)
@@ -71,12 +71,11 @@
var2Dec );
List args = new ArrayList();
- args.add( new LiteralValue( "boo" ) );
- args.add( new LiteralValue( "42" ) );
+ args.add( new LiteralValue( "boo", String.class ) );
+ args.add( new LiteralValue( "42", Integer.class ) );
args.add( new DeclarationVariable( var2Dec ) );
MethodInvoker invoker = new MethodInvoker( "helloWorld",
- TestVariable.class,
new DeclarationVariable( varDec ),
(ValueHandler[]) args.toArray( new ValueHandler[args.size()] ) );
@@ -115,8 +114,7 @@
new TestVariable() );
MethodInvoker invoker = new MethodInvoker( "otherMethod",
- TestVariable.class,
- new GlobalVariable( "foo" ),
+ new GlobalVariable( "foo", TestVariable.class ),
new ValueHandler[0] );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/resolvers/GlobalVariableTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/resolvers/GlobalVariableTest.java 2006-08-29 15:49:44 UTC (rev 6005)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/resolvers/GlobalVariableTest.java 2006-08-29 17:15:33 UTC (rev 6006)
@@ -23,7 +23,7 @@
rb.addPackage( pkg );
WorkingMemory wm = rb.newWorkingMemory();
- GlobalVariable global = new GlobalVariable( "list" );
+ GlobalVariable global = new GlobalVariable( "list", List.class );
Cheese stilton = new Cheese( "stilton",
20 );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/resolvers/ListValueTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/resolvers/ListValueTest.java 2006-08-29 15:49:44 UTC (rev 6005)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/resolvers/ListValueTest.java 2006-08-29 17:15:33 UTC (rev 6006)
@@ -31,17 +31,17 @@
wm.setGlobal( "list",
list );
- LiteralValue literal = new LiteralValue( "literal" );
+ LiteralValue literal = new LiteralValue( "literal", String.class );
Column column = new Column( 0,
new ClassObjectType( Cheese.class ),
"stilton" );
DeclarationVariable declaration = new DeclarationVariable( column.getDeclaration() );
- GlobalVariable global = new GlobalVariable( "list" );
+ GlobalVariable global = new GlobalVariable( "list", List.class );
- LiteralValue literalKey = new LiteralValue( "literalKey" );
- LiteralValue literalValue = new LiteralValue( "literalValue" );
+ LiteralValue literalKey = new LiteralValue( "literalKey", String.class );
+ LiteralValue literalValue = new LiteralValue( "literalValue", String.class );
MapValue.KeyValuePair literalPair = new MapValue.KeyValuePair( literalKey,
literalValue );
MapValue mapValue = new MapValue( new MapValue.KeyValuePair[]{literalPair} );
@@ -74,7 +74,7 @@
RuleBase rb = RuleBaseFactory.newRuleBase();
WorkingMemory wm = rb.newWorkingMemory();
- LiteralValue literal = new LiteralValue( "literal" );
+ LiteralValue literal = new LiteralValue( "literal", String.class );
List nestedListValueHandlers = new ArrayList();
nestedListValueHandlers.add( literal );
ListValue nestedListValue = new ListValue( nestedListValueHandlers );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/resolvers/LiteralValueTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/resolvers/LiteralValueTest.java 2006-08-29 15:49:44 UTC (rev 6005)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/resolvers/LiteralValueTest.java 2006-08-29 17:15:33 UTC (rev 6006)
@@ -18,7 +18,7 @@
rb.addPackage( pkg );
WorkingMemory wm = rb.newWorkingMemory();
- LiteralValue literal = new LiteralValue( "literal" );
+ LiteralValue literal = new LiteralValue( "literal", String.class );
Cheese stilton = new Cheese( "stilton",
20 );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/resolvers/MapValueTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/resolvers/MapValueTest.java 2006-08-29 15:49:44 UTC (rev 6005)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/resolvers/MapValueTest.java 2006-08-29 17:15:33 UTC (rev 6006)
@@ -27,8 +27,8 @@
WorkingMemory wm = rb.newWorkingMemory();
// Make a literal key/value pair
- LiteralValue literalKey = new LiteralValue( "literalKey1" );
- LiteralValue literalValue = new LiteralValue( "literalValue" );
+ LiteralValue literalKey = new LiteralValue( "literalKey1", String.class );
+ LiteralValue literalValue = new LiteralValue( "literalValue", String.class );
MapValue.KeyValuePair literalPair = new MapValue.KeyValuePair( literalKey,
literalValue );
@@ -41,17 +41,17 @@
literalValue );
// Make a literal/declaration key/value pair
- LiteralValue literalKey2 = new LiteralValue( "literalKey2" );
+ LiteralValue literalKey2 = new LiteralValue( "literalKey2", String.class );
MapValue.KeyValuePair literalDeclarationPair = new MapValue.KeyValuePair( literalKey2,
declaration );
// Make a global/declaration key/value pair
- GlobalVariable global = new GlobalVariable( "list" );
+ GlobalVariable global = new GlobalVariable( "list", List.class );
MapValue.KeyValuePair globalDeclarationPair = new MapValue.KeyValuePair( global,
declaration );
// Make a literal/global key/value pair
- LiteralValue literalKey3 = new LiteralValue( "literalKey3" );
+ LiteralValue literalKey3 = new LiteralValue( "literalKey3", String.class );
MapValue.KeyValuePair LiteralGlobalPair = new MapValue.KeyValuePair( literalKey3,
global );
@@ -88,13 +88,13 @@
WorkingMemory wm = rb.newWorkingMemory();
// Make a literal key/value pair
- LiteralValue literalKey1 = new LiteralValue( "literalKey1" );
- LiteralValue literalValue1 = new LiteralValue( "literalValue1" );
+ LiteralValue literalKey1 = new LiteralValue( "literalKey1", String.class );
+ LiteralValue literalValue1 = new LiteralValue( "literalValue1", String.class );
MapValue.KeyValuePair literalPair = new MapValue.KeyValuePair( literalKey1,
literalValue1 );
MapValue nestedMapValue = new MapValue( new MapValue.KeyValuePair[]{literalPair} );
- LiteralValue literalKey2 = new LiteralValue( "literalKey2" );
+ LiteralValue literalKey2 = new LiteralValue( "literalKey2", String.class );
MapValue.KeyValuePair nestedMapPair = new MapValue.KeyValuePair( literalKey2,
nestedMapValue );
More information about the jboss-svn-commits
mailing list