[jboss-svn-commits] JBL Code SVN: r13109 - labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Jul 5 10:18:11 EDT 2007
Author: tirelli
Date: 2007-07-05 10:18:11 -0400 (Thu, 05 Jul 2007)
New Revision: 13109
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CollectNode.java
Log:
JBRULES-967: adding support to sequential mode into collect and accumulate node
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java 2007-07-05 13:05:54 UTC (rev 13108)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java 2007-07-05 14:18:11 UTC (rev 13109)
@@ -29,7 +29,6 @@
import org.drools.util.Entry;
import org.drools.util.FactEntry;
import org.drools.util.Iterator;
-import org.drools.util.AbstractHashTable.FactEntryImpl;
import org.drools.util.ObjectHashMap.ObjectEntry;
/**
@@ -119,13 +118,15 @@
final BetaMemory memory = (BetaMemory) workingMemory.getNodeMemory( this );
- memory.getTupleMemory().add( leftTuple );
-
AccumulateResult accresult = new AccumulateResult();
- memory.getCreatedHandles().put( leftTuple,
- accresult,
- false );
+ if ( !workingMemory.isSequential() ) {
+ memory.getTupleMemory().add( leftTuple );
+ memory.getCreatedHandles().put( leftTuple,
+ accresult,
+ false );
+ }
+
final Object accContext = this.accumulate.createContext();
accresult.context = accContext;
@@ -223,6 +224,11 @@
final BetaMemory memory = (BetaMemory) workingMemory.getNodeMemory( this );
memory.getFactHandleMemory().add( handle );
+ if ( workingMemory.isSequential() ) {
+ // do nothing here, as we know there are no left tuples at this stage in sequential mode.
+ return;
+ }
+
this.constraints.updateFromFactHandle( workingMemory,
handle );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CollectNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CollectNode.java 2007-07-05 13:05:54 UTC (rev 13108)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CollectNode.java 2007-07-05 14:18:11 UTC (rev 13109)
@@ -30,7 +30,6 @@
import org.drools.util.Entry;
import org.drools.util.FactEntry;
import org.drools.util.Iterator;
-import org.drools.util.AbstractHashTable.FactEntryImpl;
import org.drools.util.ObjectHashMap.ObjectEntry;
/**
@@ -130,17 +129,21 @@
final BetaMemory memory = (BetaMemory) workingMemory.getNodeMemory( this );
- memory.getTupleMemory().add( leftTuple );
-
final Collection result = this.collect.instantiateResultObject();
final InternalFactHandle resultHandle = workingMemory.getFactHandleFactory().newFactHandle( result );
CollectResult colresult = new CollectResult();
colresult.handle = resultHandle;
colresult.propagated = false;
- memory.getCreatedHandles().put( leftTuple,
- colresult,
- false );
+
+ // do not add tuple and result to the memory in sequential mode
+ if( ! workingMemory.isSequential() ) {
+ memory.getTupleMemory().add( leftTuple );
+ memory.getCreatedHandles().put( leftTuple,
+ colresult,
+ false );
+ }
+
final Iterator it = memory.getFactHandleMemory().iterator( leftTuple );
this.constraints.updateFromTuple( workingMemory,
leftTuple );
@@ -217,6 +220,11 @@
final BetaMemory memory = (BetaMemory) workingMemory.getNodeMemory( this );
memory.getFactHandleMemory().add( handle );
+
+ if ( workingMemory.isSequential() ) {
+ // do nothing here, as we know there are no left tuples at this stage in sequential mode.
+ return;
+ }
this.constraints.updateFromFactHandle( workingMemory,
handle );
More information about the jboss-svn-commits
mailing list