[jboss-svn-commits] JBL Code SVN: r7023 - in labs/jbossrules/trunk: drools-compiler/src/main/resources/org/drools/semantics/java drools-compiler/src/test/java/org/drools/integrationtests drools-compiler/src/test/java/org/drools/integrationtests/waltz drools-compiler/src/test/java/org/drools/reteoo drools-compiler/src/test/java/org/drools/semantics/java drools-compiler/src/test/resources/org/drools/integrationtests/waltz drools-core/src/main/java/org/drools/base drools-core/src/main/java/org/drools/base/extractors drools-core/src/main/java/org/drools/facttemplates drools-core/src/main/java/org/drools/rule drools-core/src/main/java/org/drools/spi drools-core/src/test/java/org/drools/reteoo
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Oct 23 13:39:01 EDT 2006
Author: tirelli
Date: 2006-10-23 13:36:46 -0400 (Mon, 23 Oct 2006)
New Revision: 7023
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/semantics/java/javaInvokers.stg
labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/semantics/java/javaRule.stg
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ReteTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/waltz/ReteOOWaltzTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/reteoo/ReteooBuilderTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/semantics/java/AccumulateTemplateTest.java
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/waltz/waltz.drl
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.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/extractors/BaseBooleanClassFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseByteClassFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseCharClassFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseDoubleClassFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseFloatClassFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseIntClassFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseLongClassFieldExtractors.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseObjectClassFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseShortClassFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PredicateConstraint.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/spi/ColumnExtractor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Extractor.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CollectNodeTest.java
Log:
Fixing integration tests
Modified: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/semantics/java/javaInvokers.stg
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/semantics/java/javaInvokers.stg 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/semantics/java/javaInvokers.stg 2006-10-23 17:36:46 UTC (rev 7023)
@@ -64,7 +64,7 @@
org.drools.rule.Declaration[] declarations,
org.drools.WorkingMemory workingMemory) throws Exception {
- <declarationTypes, declarations:{ type, declr| <type> <declr.identifier> = ( <type> ) declarations[<i0>].getValue( ( (org.drools.common.InternalFactHandle) tuple.get( declarations[<i0>] ) ).getObject() );<\n>}>
+ <declarationTypes, declarations:{ type, declr| <type> <declr.identifier> = ( <type> ) declarations[<i0>].<declr.extractor.nativeReadMethod.name>( ( (org.drools.common.InternalFactHandle) tuple.get( declarations[<i0>] ) ).getObject() );<\n>}>
<globalTypes, globals:{ type, identifier | <type> <identifier> = ( <type> ) workingMemory.getGlobal( "<identifier>" );<\n>}>
return <ruleClassName>.<methodName>(
@@ -93,8 +93,8 @@
org.drools.rule.Declaration declaration,
org.drools.rule.Declaration[] declarations,
org.drools.WorkingMemory workingMemory) throws Exception {
- <declarationType> <declaration.identifier> = (<declarationType>) declaration.getValue( object );
- <declarationTypes, declarations:{ type, declr| <type> <declr.identifier> = ( <type> ) declarations[<i0>].getValue( ( (org.drools.common.InternalFactHandle) tuple.get( declarations[<i0>] ) ).getObject() );<\n>}>
+ <declarationType> <declaration.identifier> = (<declarationType>) declaration.<declaration.extractor.nativeReadMethod.name>( object );
+ <declarationTypes, declarations:{ type, declr| <type> <declr.identifier> = ( <type> ) declarations[<i0>].<declr.extractor.nativeReadMethod.name>( ( (org.drools.common.InternalFactHandle) tuple.get( declarations[<i0>] ) ).getObject() );<\n>}>
<globalTypes, globals:{ type, identifier | <type> <identifier> = ( <type> ) workingMemory.getGlobal( "<identifier>" );<\n>}>
return <ruleClassName>.<methodName>(
@@ -127,7 +127,7 @@
org.drools.rule.Declaration[] declarations,
org.drools.WorkingMemory workingMemory) throws Exception {
- <declarationTypes, declarations:{ type, declr| <type> <declr.identifier> = ( <type> ) declarations[<i0>].getValue( ( (org.drools.common.InternalFactHandle) tuple.get( declarations[<i0>] ) ).getObject() );<\n>}>
+ <declarationTypes, declarations:{ type, declr| <type> <declr.identifier> = ( <type> ) declarations[<i0>].<declr.extractor.nativeReadMethod.name>( ( (org.drools.common.InternalFactHandle) tuple.get( declarations[<i0>] ) ).getObject() );<\n>}>
<globalTypes, globals:{ type, identifier | <type> <identifier> = ( <type> ) workingMemory.getGlobal( "<identifier>" );<\n>}>
return <ruleClassName>.<methodName>(
@@ -160,7 +160,7 @@
org.drools.rule.Declaration[] innerDeclarations,
org.drools.WorkingMemory workingMemory) throws Exception {
- <declarationTypes, declarations:{ type, declr| <type> <declr.identifier> = ( <type> ) declarations[<i0>].getValue( ( (org.drools.common.InternalFactHandle) tuple.get( declarations[<i0>] ) ).getObject() );<\n>}>
+ <declarationTypes, declarations:{ type, declr| <type> <declr.identifier> = ( <type> ) declarations[<i0>].<declr.extractor.nativeReadMethod.name>( ( (org.drools.common.InternalFactHandle) tuple.get( declarations[<i0>] ) ).getObject() );<\n>}>
<globalTypes, globals:{ type, identifier | <type> <identifier> = ( <type> ) workingMemory.getGlobal( "<identifier>" );<\n>}>
return <ruleClassName>.<methodName>(
@@ -194,7 +194,7 @@
<declarations, indexes:{ declr, index| org.drools.common.InternalFactHandle <declr.identifier>__Handle__ = ( org.drools.common.InternalFactHandle ) tuple.get( declarations[<index>] );<\n>}>
- <declarationTypes, declarations, indexes :{ type, declr, index| <type> <declr.identifier> = ( <type> ) declarations[<index>].getValue( <declr.identifier>__Handle__.getObject() );<\n>}>
+ <declarationTypes, declarations, indexes :{ type, declr, index| <type> <declr.identifier> = ( <type> ) declarations[<index>].<declr.extractor.nativeReadMethod.name>( <declr.identifier>__Handle__.getObject() );<\n>}>
<globalTypes, globals:{ type, identifier | <type> <identifier> = ( <type> ) workingMemory.getGlobal( "<identifier>" );<\n>}>
Modified: labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/semantics/java/javaRule.stg
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/semantics/java/javaRule.stg 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-compiler/src/main/resources/org/drools/semantics/java/javaRule.stg 2006-10-23 17:36:46 UTC (rev 7023)
@@ -23,7 +23,7 @@
<initCode>
for( java.util.Iterator it = matchingObjects.iterator(); it.hasNext(); ) {
Object __itNextElem__ = it.next();
- <innerDeclarations:{ declr | <declr.extractor.extractToClass.name> <declr.identifier> = (<declr.extractor.extractToClass.name>) innerDeclarations[<i0>].getValue( __itNextElem__ );}; separator="\n">
+ <innerDeclarations:{ declr | <declr.extractor.extractToClass.name> <declr.identifier> = (<declr.extractor.extractToClass.name>) innerDeclarations[<i0>].<declr.extractor.nativeReadMethod.name>( __itNextElem__ );}; separator="\n">
<actionCode>
}
return ( <resultCode> );
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -1894,13 +1894,13 @@
final Package pkg = builder.getPackage();
org.drools.reteoo.ReteooRuleBase reteooRuleBase = null;
- org.drools.leaps.LeapsRuleBase leapsRuleBase = null;
+ //org.drools.leaps.LeapsRuleBase leapsRuleBase = null;
final RuleBase ruleBase = getRuleBase();
//org.drools.reteoo.RuleBaseImpl ruleBase = new org.drools.reteoo.RuleBaseImpl();
if ( ruleBase instanceof org.drools.reteoo.ReteooRuleBase ) {
reteooRuleBase = (org.drools.reteoo.ReteooRuleBase) ruleBase;
- } else if ( ruleBase instanceof org.drools.leaps.LeapsRuleBase ) {
- leapsRuleBase = (org.drools.leaps.LeapsRuleBase) ruleBase;
+// } else if ( ruleBase instanceof org.drools.leaps.LeapsRuleBase ) {
+// leapsRuleBase = (org.drools.leaps.LeapsRuleBase) ruleBase;
}
ruleBase.addPackage( pkg );
PackageBuilder builder2 = new PackageBuilder();
@@ -1961,27 +1961,27 @@
assertEquals( 0,
workingMemory.getAgenda().getActivations().length );
- } else if ( leapsRuleBase != null ) {
- leapsRuleBase.removeRule( "org.drools.test",
- "Who likes Stilton" );
- assertEquals( 8,
- workingMemory.getAgenda().getActivations().length );
-
- leapsRuleBase.removeRule( "org.drools.test",
- "like cheese" );
-
- final Cheese muzzarela = new Cheese( "muzzarela",
- 5 );
- workingMemory.assertObject( muzzarela );
-
- assertEquals( 4,
- workingMemory.getAgenda().getActivations().length );
-
- leapsRuleBase.removePackage( "org.drools.test" );
-
- assertEquals( 0,
- workingMemory.getAgenda().getActivations().length );
-
+// } else if ( leapsRuleBase != null ) {
+// leapsRuleBase.removeRule( "org.drools.test",
+// "Who likes Stilton" );
+// assertEquals( 8,
+// workingMemory.getAgenda().getActivations().length );
+//
+// leapsRuleBase.removeRule( "org.drools.test",
+// "like cheese" );
+//
+// final Cheese muzzarela = new Cheese( "muzzarela",
+// 5 );
+// workingMemory.assertObject( muzzarela );
+//
+// assertEquals( 4,
+// workingMemory.getAgenda().getActivations().length );
+//
+// leapsRuleBase.removePackage( "org.drools.test" );
+//
+// assertEquals( 0,
+// workingMemory.getAgenda().getActivations().length );
+//
}
}
@@ -1995,13 +1995,13 @@
final Package pkg = builder.getPackage();
org.drools.reteoo.ReteooRuleBase reteooRuleBase = null;
- org.drools.leaps.LeapsRuleBase leapsRuleBase = null;
+// org.drools.leaps.LeapsRuleBase leapsRuleBase = null;
final RuleBase ruleBase = getRuleBase();
//org.drools.reteoo.RuleBaseImpl ruleBase = new org.drools.reteoo.RuleBaseImpl();
if ( ruleBase instanceof org.drools.reteoo.ReteooRuleBase ) {
reteooRuleBase = (org.drools.reteoo.ReteooRuleBase) ruleBase;
- } else if ( ruleBase instanceof org.drools.leaps.LeapsRuleBase ) {
- leapsRuleBase = (org.drools.leaps.LeapsRuleBase) ruleBase;
+// } else if ( ruleBase instanceof org.drools.leaps.LeapsRuleBase ) {
+// leapsRuleBase = (org.drools.leaps.LeapsRuleBase) ruleBase;
}
ruleBase.addPackage( pkg );
@@ -2026,25 +2026,25 @@
reteooRuleBase.removePackage( "org.drools.test" );
assertEquals( 0,
reteooRuleBase.getPackages().length );
- } else if ( leapsRuleBase != null ) {
- assertEquals( 1,
- leapsRuleBase.getPackages().length );
- assertEquals( 4,
- leapsRuleBase.getPackages()[0].getRules().length );
-
- leapsRuleBase.removeRule( "org.drools.test",
- "Who likes Stilton" );
- assertEquals( 3,
- leapsRuleBase.getPackages()[0].getRules().length );
-
- leapsRuleBase.removeRule( "org.drools.test",
- "like cheese" );
- assertEquals( 2,
- leapsRuleBase.getPackages()[0].getRules().length );
-
- leapsRuleBase.removePackage( "org.drools.test" );
- assertEquals( 0,
- leapsRuleBase.getPackages().length );
+// } else if ( leapsRuleBase != null ) {
+// assertEquals( 1,
+// leapsRuleBase.getPackages().length );
+// assertEquals( 4,
+// leapsRuleBase.getPackages()[0].getRules().length );
+//
+// leapsRuleBase.removeRule( "org.drools.test",
+// "Who likes Stilton" );
+// assertEquals( 3,
+// leapsRuleBase.getPackages()[0].getRules().length );
+//
+// leapsRuleBase.removeRule( "org.drools.test",
+// "like cheese" );
+// assertEquals( 2,
+// leapsRuleBase.getPackages()[0].getRules().length );
+//
+// leapsRuleBase.removePackage( "org.drools.test" );
+// assertEquals( 0,
+// leapsRuleBase.getPackages().length );
}
}
@@ -2490,12 +2490,12 @@
final Package pkg = builder.getPackage();
org.drools.reteoo.ReteooRuleBase reteooRuleBase = null;
- org.drools.leaps.LeapsRuleBase leapsRuleBase = null;
+// org.drools.leaps.LeapsRuleBase leapsRuleBase = null;
final RuleBase ruleBase = getRuleBase();
if ( ruleBase instanceof org.drools.reteoo.ReteooRuleBase ) {
reteooRuleBase = (org.drools.reteoo.ReteooRuleBase) ruleBase;
- } else if ( ruleBase instanceof org.drools.leaps.LeapsRuleBase ) {
- leapsRuleBase = (org.drools.leaps.LeapsRuleBase) ruleBase;
+// } else if ( ruleBase instanceof org.drools.leaps.LeapsRuleBase ) {
+// leapsRuleBase = (org.drools.leaps.LeapsRuleBase) ruleBase;
}
ruleBase.addPackage( pkg );
final WorkingMemory workingMemory = ruleBase.newWorkingMemory();
@@ -2549,9 +2549,9 @@
if ( reteooRuleBase != null ) {
reteooRuleBase.removeRule( ruleBase.getPackages()[0].getName(),
ruleBase.getPackages()[0].getRules()[0].getName() );
- } else if ( leapsRuleBase != null ) {
- leapsRuleBase.removeRule( ruleBase.getPackages()[0].getName(),
- ruleBase.getPackages()[0].getRules()[0].getName() );
+// } else if ( leapsRuleBase != null ) {
+// leapsRuleBase.removeRule( ruleBase.getPackages()[0].getName(),
+// ruleBase.getPackages()[0].getRules()[0].getName() );
}
assertEquals( 0,
@@ -2589,9 +2589,9 @@
if ( reteooRuleBase != null ) {
reteooRuleBase.removeRule( ruleBase.getPackages()[1].getName(),
ruleBase.getPackages()[1].getRules()[0].getName() );
- } else if ( leapsRuleBase != null ) {
- leapsRuleBase.removeRule( ruleBase.getPackages()[1].getName(),
- ruleBase.getPackages()[1].getRules()[0].getName() );
+// } else if ( leapsRuleBase != null ) {
+// leapsRuleBase.removeRule( ruleBase.getPackages()[1].getName(),
+// ruleBase.getPackages()[1].getRules()[0].getName() );
}
assertEquals( 0,
ruleBase.getPackages()[0].getRules().length );
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ReteTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ReteTest.java 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ReteTest.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -18,8 +18,6 @@
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
-import org.drools.leaps.LeapsRuleBase;
-import org.drools.reteoo.ReteooRuleBase;
/** Run all the tests with the ReteOO engine implementation */
public class ReteTest extends IntegrationCases {
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/waltz/ReteOOWaltzTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/waltz/ReteOOWaltzTest.java 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/waltz/ReteOOWaltzTest.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -18,8 +18,6 @@
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
-import org.drools.leaps.LeapsRuleBase;
-import org.drools.reteoo.ReteooRuleBase;
public class ReteOOWaltzTest extends Waltz {
protected RuleBase getRuleBase() throws Exception {
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/reteoo/ReteooBuilderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/reteoo/ReteooBuilderTest.java 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/reteoo/ReteooBuilderTest.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -58,21 +58,6 @@
final ReteooRuleBase ruleBase = (ReteooRuleBase) getRuleBase();
ruleBase.addPackage( pkg );
- if ( this.showRete ) {
- final ReteooJungViewer viewer = new ReteooJungViewer( ruleBase );
-
- javax.swing.SwingUtilities.invokeLater( new Runnable() {
- public void run() {
- viewer.showGUI();
- }
- } );
-
- while ( viewer.isRunning() ) {
- Thread.yield();
- Thread.sleep( 100 );
- }
- }
-
if ( this.writeTree ) {
writeRuleBase( ruleBase,
name );
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/semantics/java/AccumulateTemplateTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/semantics/java/AccumulateTemplateTest.java 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/semantics/java/AccumulateTemplateTest.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -10,6 +10,7 @@
import org.antlr.stringtemplate.StringTemplateGroup;
import org.antlr.stringtemplate.language.AngleBracketTemplateLexer;
import org.drools.Cheese;
+import org.drools.Person;
import org.drools.base.ClassFieldExtractor;
import org.drools.base.ClassObjectType;
import org.drools.rule.Declaration;
@@ -30,7 +31,7 @@
AngleBracketTemplateLexer.class );
StringTemplate accMethod = ruleGroup.getInstanceOf( "accumulateMethod" );
- final String[] declarationTypes = new String[]{"String", "Integer"};
+ final String[] declarationTypes = new String[]{"String", "int"};
final Declaration[] declarations = new Declaration[]{new Declaration( "name",
null,
null ),
@@ -69,7 +70,7 @@
accMethod.setAttribute( "resultCode",
"x + 10" );
-// System.out.println( accMethod.toString() );
+ System.out.println( accMethod.toString() );
}
public void testInvokerGeneration() {
@@ -77,11 +78,11 @@
AngleBracketTemplateLexer.class );
StringTemplate accMethod = ruleGroup.getInstanceOf( "accumulateInvoker" );
- final String[] declarationTypes = new String[]{"String", "Integer"};
+ final String[] declarationTypes = new String[]{"String", "int"};
final Declaration[] declarations = new Declaration[]{new Declaration( "name",
- null,
+ new ClassFieldExtractor(Person.class, "name"),
null ), new Declaration( "age",
- null,
+ new ClassFieldExtractor(Person.class, "age"),
null )};
final String[] globals = new String[]{"aGlobal", "anotherGlobal"};
final List globalTypes = Arrays.asList( new String[]{"String", "String"} );
@@ -105,6 +106,6 @@
accMethod.setAttribute( "hashCode",
new Integer(13) );
-// System.out.println( accMethod.toString() );
+ System.out.println( accMethod.toString() );
}
}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/waltz/waltz.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/waltz/waltz.drl 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/waltz/waltz.drl 2006-10-23 17:36:46 UTC (rev 7023)
@@ -45,8 +45,8 @@
$line : Line ( $p1:p1, $p2:p2 )
then
System.out.println("Draw "+$p1+" "+$p2);
- assert( new Edge ( $p1.intValue(), $p2.intValue(), false, Edge.NIL, false ) );
- assert( new Edge ( $p2.intValue(), $p1.intValue(), false, Edge.NIL, false ) );
+ assert( new Edge ( $p1, $p2, false, Edge.NIL, false ) );
+ assert( new Edge ( $p2, $p1, false, Edge.NIL, false ) );
retract( $line );
end
@@ -73,7 +73,7 @@
$edge2: Edge( p1==$basePoint, $edge2P2:p2 != $edge1P2, joined == false )
$edge3: Edge( p1==$basePoint, $edge3P2:p2 != $edge1P2, p2 != $edge2P2, joined == false )
then
- Junction junction = WaltzUtil.make_3_junction ( $basePoint.intValue(), $edge1P2.intValue(), $edge2P2.intValue(), $edge3P2.intValue() );
+ Junction junction = WaltzUtil.make_3_junction ( $basePoint, $edge1P2, $edge2P2, $edge3P2 );
assert( junction );
$edge1.setJoined(true);
$edge2.setJoined(true);
@@ -92,7 +92,7 @@
$edge2: Edge( p1==$basePoint, $edge2P2:p2 != $edge1P2, joined == false )
not Edge( p1==$basePoint, p2 != $edge1P2, p2 != $edge2P2 )
then
- assert( new Junction($edge1P2.intValue(), $edge2P2.intValue(), 0, $basePoint.intValue(), Junction.L) );
+ assert( new Junction($edge1P2, $edge2P2, 0, $basePoint, Junction.L) );
$edge1.setJoined(true);
$edge2.setJoined(true);
modify( $edge1 );
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-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -18,6 +18,7 @@
import java.io.IOException;
import java.io.ObjectInputStream;
+import java.lang.reflect.Method;
import org.drools.RuntimeDroolsException;
import org.drools.spi.FieldExtractor;
@@ -139,4 +140,8 @@
public short getShortValue(final Object object) {
return this.extractor.getShortValue( object );
}
+
+ public Method getNativeReadMethod() {
+ return this.extractor.getNativeReadMethod();
+ }
}
\ No newline at end of file
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-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/FieldFactory.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -45,22 +45,38 @@
if ( valueType == ValueType.NULL_TYPE ) {
field = new ObjectFieldImpl( null );
+ } else if ( valueType == ValueType.PCHAR_TYPE ) {
+ field = new LongFieldImpl( value.charAt( 0 ) );
+ } else if ( valueType == ValueType.PBYTE_TYPE ) {
+ field = new LongFieldImpl( Long.parseLong( value ) );
+ } else if ( valueType == ValueType.PSHORT_TYPE ) {
+ field = new LongFieldImpl( Long.parseLong( value ) );
+ } else if ( valueType == ValueType.PINTEGER_TYPE ) {
+ field = new LongFieldImpl( Long.parseLong( stripNumericType( value ) ) );
+ } else if ( valueType == ValueType.PLONG_TYPE ) {
+ field = new LongFieldImpl( Long.parseLong( stripNumericType( value ) ) );
+ } else if ( valueType == ValueType.PFLOAT_TYPE ) {
+ field = new DoubleFieldImpl( Float.parseFloat( stripNumericType( value ) ) );
+ } else if ( valueType == ValueType.PDOUBLE_TYPE ) {
+ field = new DoubleFieldImpl( Double.parseDouble( stripNumericType( value ) ) );
+ } else if ( valueType == ValueType.PBOOLEAN_TYPE ) {
+ field = new BooleanFieldImpl( Boolean.valueOf( value ).booleanValue() );
} else if ( valueType == ValueType.CHAR_TYPE ) {
- field = new LongFieldImpl( value.charAt( 0 ) );
+ field = new ObjectFieldImpl( new Character( value.charAt( 0 ) ) );
} else if ( valueType == ValueType.BYTE_TYPE ) {
- field = new LongFieldImpl( Long.parseLong( value ) );
+ field = new ObjectFieldImpl( new Byte( value ) );
} else if ( valueType == ValueType.SHORT_TYPE ) {
- field = new LongFieldImpl( Long.parseLong( value ) );
+ field = new ObjectFieldImpl( new Short( value ) );
} else if ( valueType == ValueType.INTEGER_TYPE ) {
- field = new LongFieldImpl( Long.parseLong( stripNumericType( value ) ) );
+ field = new ObjectFieldImpl( new Integer( stripNumericType( value ) ) );
} else if ( valueType == ValueType.LONG_TYPE ) {
- field = new LongFieldImpl( Long.parseLong( stripNumericType( value ) ) );
+ field = new ObjectFieldImpl( new Long( stripNumericType( value ) ) );
} else if ( valueType == ValueType.FLOAT_TYPE ) {
- field = new DoubleFieldImpl( Float.parseFloat( stripNumericType( value ) ) );
+ field = new ObjectFieldImpl( new Float( stripNumericType( value ) ) );
} else if ( valueType == ValueType.DOUBLE_TYPE ) {
- field = new DoubleFieldImpl( Double.parseDouble( stripNumericType( value ) ) );
+ field = new ObjectFieldImpl( new Double( stripNumericType( value ) ) );
} else if ( valueType == ValueType.BOOLEAN_TYPE ) {
- field = new BooleanFieldImpl( Boolean.valueOf( value ).booleanValue() );
+ field = new ObjectFieldImpl( Boolean.valueOf( value ) );
} else if ( valueType == ValueType.STRING_TYPE ) {
field = new ObjectFieldImpl( value.intern() );
} else if ( valueType == ValueType.DATE_TYPE ) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseBooleanClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseBooleanClassFieldExtractor.java 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseBooleanClassFieldExtractor.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -16,6 +16,8 @@
package org.drools.base.extractors;
+import java.lang.reflect.Method;
+
import org.drools.RuntimeDroolsException;
import org.drools.base.BaseClassFieldExtractor;
@@ -68,5 +70,13 @@
public short getShortValue(final Object object) {
throw new RuntimeDroolsException( "Conversion to short not supported from boolean" );
}
+
+ public Method getNativeReadMethod() {
+ try {
+ return this.getClass().getDeclaredMethod( "getBooleanValue", new Class[] { Object.class } );
+ } catch ( Exception e ) {
+ throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
+ }
+ }
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseByteClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseByteClassFieldExtractor.java 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseByteClassFieldExtractor.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -16,6 +16,8 @@
package org.drools.base.extractors;
+import java.lang.reflect.Method;
+
import org.drools.RuntimeDroolsException;
import org.drools.base.BaseClassFieldExtractor;
@@ -68,5 +70,13 @@
public short getShortValue(final Object object) {
return getByteValue( object );
}
+
+ public Method getNativeReadMethod() {
+ try {
+ return this.getClass().getDeclaredMethod( "getByteValue", new Class[] { Object.class } );
+ } catch ( Exception e ) {
+ throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
+ }
+ }
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseCharClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseCharClassFieldExtractor.java 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseCharClassFieldExtractor.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -1,5 +1,7 @@
package org.drools.base.extractors;
+import java.lang.reflect.Method;
+
import org.drools.RuntimeDroolsException;
import org.drools.base.BaseClassFieldExtractor;
@@ -22,29 +24,36 @@
}
public byte getByteValue(final Object object) {
- throw new RuntimeDroolsException( "Conversion to byte not supported from char" );
+ return (byte) getCharValue( object );
}
public abstract char getCharValue(Object object);
public double getDoubleValue(final Object object) {
- throw new RuntimeDroolsException( "Conversion to double not supported from char" );
+ return (double) getCharValue( object );
}
public float getFloatValue(final Object object) {
- throw new RuntimeDroolsException( "Conversion to float not supported from char" );
+ return (float) getCharValue( object );
}
public int getIntValue(final Object object) {
- throw new RuntimeDroolsException( "Conversion to int not supported from char" );
+ return (int) getCharValue( object );
}
public long getLongValue(final Object object) {
- throw new RuntimeDroolsException( "Conversion to long not supported from char" );
+ return (long) getCharValue( object );
}
public short getShortValue(final Object object) {
- throw new RuntimeDroolsException( "Conversion to short not supported from char" );
+ return (short) getCharValue( object );
}
+ public Method getNativeReadMethod() {
+ try {
+ return this.getClass().getDeclaredMethod( "getCharValue", new Class[] { Object.class } );
+ } catch ( Exception e ) {
+ throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
+ }
+ }
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseDoubleClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseDoubleClassFieldExtractor.java 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseDoubleClassFieldExtractor.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -1,5 +1,7 @@
package org.drools.base.extractors;
+import java.lang.reflect.Method;
+
import org.drools.RuntimeDroolsException;
import org.drools.base.BaseClassFieldExtractor;
@@ -48,4 +50,11 @@
return (short) getDoubleValue( object );
}
+ public Method getNativeReadMethod() {
+ try {
+ return this.getClass().getDeclaredMethod( "getDoubleValue", new Class[] { Object.class } );
+ } catch ( Exception e ) {
+ throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
+ }
+ }
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseFloatClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseFloatClassFieldExtractor.java 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseFloatClassFieldExtractor.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -1,5 +1,7 @@
package org.drools.base.extractors;
+import java.lang.reflect.Method;
+
import org.drools.RuntimeDroolsException;
import org.drools.base.BaseClassFieldExtractor;
@@ -48,4 +50,11 @@
return (short) getFloatValue( object );
}
+ public Method getNativeReadMethod() {
+ try {
+ return this.getClass().getDeclaredMethod( "getFloatValue", new Class[] { Object.class } );
+ } catch ( Exception e ) {
+ throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
+ }
+ }
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseIntClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseIntClassFieldExtractor.java 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseIntClassFieldExtractor.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -1,5 +1,7 @@
package org.drools.base.extractors;
+import java.lang.reflect.Method;
+
import org.drools.RuntimeDroolsException;
import org.drools.base.BaseClassFieldExtractor;
@@ -48,4 +50,11 @@
return (short) getIntValue( object );
}
+ public Method getNativeReadMethod() {
+ try {
+ return this.getClass().getDeclaredMethod( "getIntValue", new Class[] { Object.class } );
+ } catch ( Exception e ) {
+ throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
+ }
+ }
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseLongClassFieldExtractors.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseLongClassFieldExtractors.java 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseLongClassFieldExtractors.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -1,5 +1,7 @@
package org.drools.base.extractors;
+import java.lang.reflect.Method;
+
import org.drools.RuntimeDroolsException;
import org.drools.base.BaseClassFieldExtractor;
@@ -48,4 +50,11 @@
return (short) getLongValue( object );
}
+ public Method getNativeReadMethod() {
+ try {
+ return this.getClass().getDeclaredMethod( "getLongValue", new Class[] { Object.class } );
+ } catch ( Exception e ) {
+ throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
+ }
+ }
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseObjectClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseObjectClassFieldExtractor.java 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseObjectClassFieldExtractor.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -1,5 +1,7 @@
package org.drools.base.extractors;
+import java.lang.reflect.Method;
+
import org.drools.RuntimeDroolsException;
import org.drools.base.BaseClassFieldExtractor;
@@ -95,4 +97,11 @@
throw new RuntimeDroolsException( "Conversion to short not supported from " + value.getClass().getName() );
}
+ public Method getNativeReadMethod() {
+ try {
+ return this.getClass().getDeclaredMethod( "getValue", new Class[] { Object.class } );
+ } catch ( Exception e ) {
+ throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
+ }
+ }
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseShortClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseShortClassFieldExtractor.java 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseShortClassFieldExtractor.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -1,5 +1,7 @@
package org.drools.base.extractors;
+import java.lang.reflect.Method;
+
import org.drools.RuntimeDroolsException;
import org.drools.base.BaseClassFieldExtractor;
@@ -48,4 +50,11 @@
public abstract short getShortValue(Object object);
+ public Method getNativeReadMethod() {
+ try {
+ return this.getClass().getDeclaredMethod( "getShortValue", new Class[] { Object.class } );
+ } catch ( Exception e ) {
+ throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
+ }
+ }
}
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-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateFieldExtractor.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -1,5 +1,8 @@
package org.drools.facttemplates;
+import java.lang.reflect.Method;
+
+import org.drools.RuntimeDroolsException;
import org.drools.base.ValueType;
import org.drools.spi.FieldExtractor;
@@ -64,4 +67,13 @@
public short getShortValue(final Object object) {
return ((Number) ((Fact) object).getFieldValue( this.fieldIndex )).shortValue();
}
+
+ public Method getNativeReadMethod() {
+ try {
+ return this.getClass().getDeclaredMethod( "getValue", new Class[] { Object.class } );
+ } catch ( Exception e ) {
+ throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
+ }
+ }
+
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -20,12 +20,14 @@
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
import org.drools.reteoo.ReteTuple;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.BetaNodeFieldConstraint;
import org.drools.spi.PredicateExpression;
public class PredicateConstraint
implements
- BetaNodeFieldConstraint {
+ BetaNodeFieldConstraint,
+ AlphaNodeFieldConstraint {
/**
*
@@ -129,17 +131,32 @@
return new PredicateContextEntry();
}
+ public boolean isAllowed(Object object,
+ InternalWorkingMemory workingMemory) {
+ try {
+ return this.expression.evaluate( object,
+ null,
+ declaration,
+ requiredDeclarations,
+ workingMemory );
+ } catch ( Exception e ) {
+ throw new RuntimeDroolsException( "Exception executing predicate " + this.expression,
+ e );
+ }
+ }
+
public boolean isAllowedCachedLeft(ContextEntry context,
Object object) {
try {
PredicateContextEntry ctx = (PredicateContextEntry) context;
return this.expression.evaluate( object,
- ctx.leftTuple,
- declaration,
- requiredDeclarations,
- ctx.workingMemory );
+ ctx.leftTuple,
+ declaration,
+ requiredDeclarations,
+ ctx.workingMemory );
} catch ( Exception e ) {
- throw new RuntimeDroolsException("Exception executing predicate "+this.expression, e);
+ throw new RuntimeDroolsException( "Exception executing predicate " + this.expression,
+ e );
}
}
@@ -148,12 +165,13 @@
try {
PredicateContextEntry ctx = (PredicateContextEntry) context;
return this.expression.evaluate( ctx.rightObject,
- tuple,
- declaration,
- requiredDeclarations,
- ctx.workingMemory );
+ tuple,
+ declaration,
+ requiredDeclarations,
+ ctx.workingMemory );
} catch ( Exception e ) {
- throw new RuntimeDroolsException("Exception executing predicate "+this.expression, e);
+ throw new RuntimeDroolsException( "Exception executing predicate " + this.expression,
+ e );
}
}
@@ -163,7 +181,7 @@
public ReteTuple leftTuple;
public Object rightObject;
public InternalWorkingMemory workingMemory;
-
+
private ContextEntry entry;
public PredicateContextEntry() {
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-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -17,8 +17,10 @@
*/
import org.drools.RuntimeDroolsException;
+import org.drools.common.InternalWorkingMemory;
import org.drools.reteoo.ReteTuple;
import org.drools.rule.ReturnValueRestriction.ReturnValueContextEntry;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.BetaNodeFieldConstraint;
import org.drools.spi.Evaluator;
import org.drools.spi.FieldExtractor;
@@ -26,7 +28,8 @@
public class ReturnValueConstraint
implements
- BetaNodeFieldConstraint {
+ BetaNodeFieldConstraint,
+ AlphaNodeFieldConstraint {
/**
*
@@ -108,6 +111,20 @@
return this.restriction.getContextEntry();
}
+ public boolean isAllowed(Object object,
+ InternalWorkingMemory workingMemory) {
+ try {
+ return this.restriction.isAllowed( this.fieldExtractor,
+ object,
+ null,
+ workingMemory );
+ } catch ( Exception e ) {
+ throw new RuntimeDroolsException( "Exception executing ReturnValue constraint " + this.restriction +
+ " : "+e.getMessage(),
+ e );
+ }
+ }
+
public boolean isAllowedCachedLeft(ContextEntry context,
Object object) {
try {
@@ -117,7 +134,8 @@
ctx.getTuple(),
ctx.getWorkingMemory() );
} catch ( Exception e ) {
- throw new RuntimeDroolsException( "Exception executing ReturnValue constraint " + this.restriction,
+ throw new RuntimeDroolsException( "Exception executing ReturnValue constraint " + this.restriction +
+ " : "+e.getMessage(),
e );
}
}
@@ -131,9 +149,11 @@
tuple,
ctx.getWorkingMemory() );
} catch ( Exception e ) {
- throw new RuntimeDroolsException( "Exception executing ReturnValue constraint " + this.restriction,
+ throw new RuntimeDroolsException( "Exception executing ReturnValue constraint " + this.restriction +
+ " : "+e.getMessage(),
e );
}
}
+
}
\ No newline at end of file
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-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueRestriction.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -121,8 +121,8 @@
public int hashCode() {
final int PRIME = 31;
int result = 1;
- result = this.evaluator.hashCode();
- result = this.expression.hashCode();
+ result = PRIME * result + this.evaluator.hashCode();
+ result = PRIME * result + ( ( this.expression != null ) ? this.expression.hashCode() : 0 );
result = PRIME * result + ReturnValueRestriction.hashCode( this.requiredDeclarations );
return result;
}
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-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -1,5 +1,7 @@
package org.drools.spi;
+import java.lang.reflect.Method;
+
import org.drools.RuntimeDroolsException;
import org.drools.base.ClassObjectType;
import org.drools.base.ValueType;
@@ -112,4 +114,12 @@
throw new RuntimeDroolsException( "Conversion to short not supported for type: " + object.getClass() );
}
+ public Method getNativeReadMethod() {
+ try {
+ return this.getClass().getDeclaredMethod( "getValue", new Class[] { Object.class } );
+ } catch ( Exception e ) {
+ throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
+ }
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Extractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Extractor.java 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Extractor.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -17,6 +17,7 @@
*/
import java.io.Serializable;
+import java.lang.reflect.Method;
import org.drools.base.ValueType;
@@ -45,5 +46,7 @@
public ValueType getValueType();
public Class getExtractToClass();
+
+ public Method getNativeReadMethod();
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CollectNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CollectNodeTest.java 2006-10-23 14:49:57 UTC (rev 7022)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CollectNodeTest.java 2006-10-23 17:36:46 UTC (rev 7023)
@@ -18,7 +18,6 @@
import java.util.Collection;
import java.util.LinkedList;
-import java.util.List;
import junit.framework.Assert;
@@ -88,9 +87,9 @@
// check memories are empty
assertEquals( 0,
- this.memory.getLeftTupleMemory().size() );
+ this.memory.getTupleMemory().size() );
assertEquals( 0,
- this.memory.getRightObjectMemory().size() );
+ this.memory.getObjectMemory().size() );
}
/* (non-Javadoc)
@@ -101,8 +100,7 @@
}
public void testUpdateNewNode() {
- this.node.updateNewNode( this.workingMemory,
- this.context );
+ this.node.updateSink( this.sink, this.context, this.workingMemory );
Assert.assertEquals( "No tuple should be propagated",
0,
this.sink.getAsserted().size() );
@@ -121,41 +119,13 @@
final MockTupleSink otherSink = new MockTupleSink();
this.node.addTupleSink( otherSink );
- this.node.updateNewNode( this.workingMemory,
- this.context );
+ this.node.updateSink( otherSink, this.context, this.workingMemory );
Assert.assertEquals( "Two tuples should have been propagated",
2,
otherSink.getAsserted().size() );
}
- public void testGetPropagatedTuples() {
-
- this.node.assertTuple( new ReteTuple( this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" ) ),
- this.context,
- this.workingMemory );
- this.node.assertTuple( new ReteTuple( this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese" ) ),
- this.context,
- this.workingMemory );
-
- Assert.assertEquals( "Two tuples should have been propagated",
- 2,
- this.sink.getAsserted().size() );
-
- final Tuple t1 = (Tuple) ((Object[]) this.sink.getAsserted().get( 0 ))[0];
- final Tuple t2 = (Tuple) ((Object[]) this.sink.getAsserted().get( 1 ))[0];
-
- final List propagated = this.node.getPropagatedTuples( this.workingMemory,
- this.sink );
- Assert.assertEquals( "Wrong Tuple propagated",
- t1,
- propagated.get( 0 ) );
- Assert.assertEquals( "Wrong Tuple propagated",
- t2,
- propagated.get( 1 ) );
-
- }
-
public void testAssertTuple() {
final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
final ReteTuple tuple0 = new ReteTuple( f0 );
@@ -166,9 +136,9 @@
this.workingMemory );
// check memories
assertEquals( 1,
- this.memory.getLeftTupleMemory().size() );
+ this.memory.getTupleMemory().size() );
assertEquals( 0,
- this.memory.getRightObjectMemory().size() );
+ this.memory.getObjectMemory().size() );
Assert.assertTrue( "An empty collection should be propagated",
((Collection) ((DefaultFactHandle) ((Tuple) ((Object[]) this.sink.getAsserted().get( 0 ))[0]).get( 1 )).getObject()).isEmpty() );
@@ -180,12 +150,11 @@
this.context,
this.workingMemory );
assertEquals( 2,
- this.memory.getLeftTupleMemory().size() );
+ this.memory.getTupleMemory().size() );
Assert.assertTrue( "An empty collection should be propagated",
((Collection) ((DefaultFactHandle) ((Tuple) ((Object[]) this.sink.getAsserted().get( 1 ))[0]).get( 1 )).getObject()).isEmpty() );
- final ReteTuple tuple = (ReteTuple) this.memory.getLeftTupleMemory().iterator( this.workingMemory,
- f0 ).next();
+ final ReteTuple tuple = (ReteTuple) this.memory.getTupleMemory().iterator( ).next();
assertEquals( tuple0,
tuple );
assertEquals( tuple1,
@@ -215,9 +184,9 @@
this.workingMemory );
// check memories
assertEquals( 1,
- this.memory.getLeftTupleMemory().size() );
+ this.memory.getTupleMemory().size() );
assertEquals( 2,
- this.memory.getRightObjectMemory().size() );
+ this.memory.getObjectMemory().size() );
Assert.assertEquals( "Wrong number of elements in matching objects list ",
2,
((Collection) ((DefaultFactHandle) ((Tuple) ((Object[]) this.sink.getAsserted().get( 0 ))[0]).get( 1 )).getObject()).size() );
@@ -228,13 +197,12 @@
this.context,
this.workingMemory );
assertEquals( 2,
- this.memory.getLeftTupleMemory().size() );
+ this.memory.getTupleMemory().size() );
Assert.assertEquals( "Wrong number of elements in matching objects list ",
2,
((Collection) ((DefaultFactHandle) ((Tuple) ((Object[]) this.sink.getAsserted().get( 1 ))[0]).get( 1 )).getObject()).size() );
- final ReteTuple tuple = (ReteTuple) this.memory.getLeftTupleMemory().iterator( this.workingMemory,
- f0 ).next();
+ final ReteTuple tuple = (ReteTuple) this.memory.getTupleMemory().iterator( ).next();
assertEquals( tuple0,
tuple );
assertEquals( tuple1,
@@ -245,36 +213,6 @@
this.sink.getAsserted().size() );
}
- public void testModifyTuple() {
- final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
-
- final ReteTuple tuple0 = new ReteTuple( f0 );
-
- // assert tuple, should add one to left memory
- this.node.assertTuple( tuple0,
- this.context,
- this.workingMemory );
- // check memories
- assertEquals( 1,
- this.memory.getLeftTupleMemory().size() );
- assertEquals( 0,
- this.memory.getRightObjectMemory().size() );
- Assert.assertTrue( "An empty collection should be propagated",
- ((Collection) ((DefaultFactHandle) ((Tuple) ((Object[]) this.sink.getAsserted().get( 0 ))[0]).get( 1 )).getObject()).isEmpty() );
-
- this.node.modifyTuple( tuple0,
- this.context,
- this.workingMemory );
- assertEquals( 1,
- this.memory.getLeftTupleMemory().size() );
- assertEquals( 1,
- this.sink.getRetracted().size() );
- assertEquals( 2,
- this.sink.getAsserted().size() );
- Assert.assertTrue( "An empty collection should be propagated",
- ((Collection) ((DefaultFactHandle) ((Tuple) ((Object[]) this.sink.getAsserted().get( 1 ))[0]).get( 1 )).getObject()).isEmpty() );
- }
-
public void testRetractTuple() {
final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
@@ -286,9 +224,9 @@
this.workingMemory );
// check memories
assertEquals( 1,
- this.memory.getLeftTupleMemory().size() );
+ this.memory.getTupleMemory().size() );
assertEquals( 0,
- this.memory.getRightObjectMemory().size() );
+ this.memory.getObjectMemory().size() );
Assert.assertTrue( "An empty collection should be propagated",
((Collection) ((DefaultFactHandle) ((Tuple) ((Object[]) this.sink.getAsserted().get( 0 ))[0]).get( 1 )).getObject()).isEmpty() );
@@ -296,7 +234,7 @@
this.context,
this.workingMemory );
assertEquals( 0,
- this.memory.getLeftTupleMemory().size() );
+ this.memory.getTupleMemory().size() );
assertEquals( 1,
this.sink.getRetracted().size() );
assertEquals( 1,
@@ -316,7 +254,7 @@
// check memory
assertEquals( 1,
- this.memory.getLeftTupleMemory().size() );
+ this.memory.getTupleMemory().size() );
assertEquals( 1,
this.sink.getAsserted().size() );
Assert.assertTrue( "An empty collection should be propagated",
@@ -326,7 +264,7 @@
this.context,
this.workingMemory );
assertEquals( 1,
- this.memory.getRightObjectMemory().size() );
+ this.memory.getObjectMemory().size() );
assertEquals( 2,
this.sink.getAsserted().size() );
Assert.assertEquals( "Wrong number of elements in matching objects list ",
@@ -338,7 +276,7 @@
this.workingMemory );
assertEquals( 2,
- this.memory.getRightObjectMemory().size() );
+ this.memory.getObjectMemory().size() );
assertEquals( 3,
this.sink.getAsserted().size() );
Assert.assertEquals( "Wrong number of elements in matching objects list ",
@@ -347,57 +285,6 @@
}
- public void testModifyObject() {
- final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
- final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese" );
-
- final ReteTuple tuple0 = new ReteTuple( f0 );
-
- this.node.assertObject( f0,
- this.context,
- this.workingMemory );
- this.node.assertObject( f1,
- this.context,
- this.workingMemory );
-
- // assert tuple, should add one to left memory
- this.node.assertTuple( tuple0,
- this.context,
- this.workingMemory );
- // check memories
- assertEquals( 1,
- this.memory.getLeftTupleMemory().size() );
- assertEquals( 2,
- this.memory.getRightObjectMemory().size() );
- assertEquals( 1,
- this.sink.getAsserted().size() );
- assertEquals( 0,
- this.sink.getRetracted().size() );
- Assert.assertEquals( "Wrong number of elements in matching objects list ",
- 2,
- ((Collection) ((DefaultFactHandle) ((Tuple) ((Object[]) this.sink.getAsserted().get( 0 ))[0]).get( 1 )).getObject()).size() );
-
- // assert tuple, should add left memory
- this.node.modifyObject( f0,
- this.context,
- this.workingMemory );
- assertEquals( 2,
- this.memory.getRightObjectMemory().size() );
- assertEquals( 2,
- this.sink.getAsserted().size() );
- assertEquals( 1,
- this.sink.getRetracted().size() );
- Assert.assertEquals( "Wrong number of elements in matching objects list ",
- 2,
- ((Collection) ((DefaultFactHandle) ((Tuple) ((Object[]) this.sink.getAsserted().get( 1 ))[0]).get( 1 )).getObject()).size() );
-
- final Tuple tuple = (Tuple) this.memory.getLeftTupleMemory().iterator( this.workingMemory,
- f0 ).next();
- assertEquals( tuple0,
- tuple );
-
- }
-
public void testRetractObject() {
final DefaultFactHandle f0 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "cheese" );
final DefaultFactHandle f1 = (DefaultFactHandle) this.workingMemory.getFactHandleFactory().newFactHandle( "other cheese" );
@@ -411,7 +298,7 @@
this.context,
this.workingMemory );
assertEquals( 2,
- this.memory.getRightObjectMemory().size() );
+ this.memory.getObjectMemory().size() );
// assert tuple, should add one to left memory
this.node.assertTuple( tuple0,
@@ -420,7 +307,7 @@
// check memory
assertEquals( 1,
- this.memory.getLeftTupleMemory().size() );
+ this.memory.getTupleMemory().size() );
assertEquals( 0,
this.sink.getRetracted().size() );
assertEquals( 1,
@@ -433,7 +320,7 @@
this.context,
this.workingMemory );
assertEquals( 1,
- this.memory.getRightObjectMemory().size() );
+ this.memory.getObjectMemory().size() );
assertEquals( 1,
this.sink.getRetracted().size() );
assertEquals( 2,
@@ -446,7 +333,7 @@
this.context,
this.workingMemory );
assertEquals( 0,
- this.memory.getRightObjectMemory().size() );
+ this.memory.getObjectMemory().size() );
assertEquals( 2,
this.sink.getRetracted().size() );
assertEquals( 3,
@@ -457,31 +344,6 @@
}
- public void testAttach() throws Exception {
- assertEquals( 15,
- this.node.getId() );
-
- assertLength( 0,
- this.objectSource.getObjectSinksAsList() );
-
- assertLength( 0,
- this.tupleSource.getTupleSinks() );
-
- this.node.attach();
-
- assertLength( 1,
- this.objectSource.getObjectSinksAsList() );
-
- assertLength( 1,
- this.tupleSource.getTupleSinks() );
-
- assertSame( this.node,
- this.objectSource.getObjectSinks().getLastObjectSink() );
-
- assertSame( this.node,
- this.tupleSource.getTupleSinks().get( 0 ) );
- }
-
public void testMemory() {
final ReteooWorkingMemory workingMemory = new ReteooWorkingMemory( 1,
(ReteooRuleBase) RuleBaseFactory.newRuleBase() );
More information about the jboss-svn-commits
mailing list