[jboss-svn-commits] JBL Code SVN: r19285 - in labs/jbossrules/trunk/drools-core/src: test/java/org/drools/reteoo and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Mar 28 00:57:45 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-03-28 00:57:45 -0400 (Fri, 28 Mar 2008)
New Revision: 19285
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/BetaMemory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CollectNode.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CollectNodeTest.java
Log:
JBRULES-1520 RightTuple merge for asymmetrical Rete propagations
-CollectNode no longer needs a Fact map.
-Fixed CollectNode and CollectNodeTest
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/BetaMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/BetaMemory.java 2008-03-28 04:00:54 UTC (rev 19284)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/BetaMemory.java 2008-03-28 04:57:45 UTC (rev 19285)
@@ -54,13 +54,6 @@
return this.leftTupleMemory;
}
- public ObjectHashMap getCreatedHandles() {
- if ( this.createdHandles == null ) {
- this.createdHandles = new ObjectHashMap();
- }
- return this.createdHandles;
- }
-
/**
* @return the context
*/
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 2008-03-28 04:00:54 UTC (rev 19284)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CollectNode.java 2008-03-28 04:57:45 UTC (rev 19285)
@@ -34,6 +34,7 @@
import org.drools.spi.PropagationContext;
import org.drools.util.ArrayUtils;
import org.drools.util.Entry;
+import org.drools.util.Iterator;
/**
* @author etirelli
@@ -138,9 +139,6 @@
// do not add tuple and result to the memory in sequential mode
if ( this.tupleMemoryEnabled ) {
memory.betaMemory.getLeftTupleMemory().add( leftTuple );
- memory.betaMemory.getCreatedHandles().put( leftTuple,
- resultTuple,
- false );
}
this.constraints.updateFromTuple( memory.betaMemory.getContext(),
@@ -199,14 +197,7 @@
final CollectMemory memory = (CollectMemory) workingMemory.getNodeMemory( this );
memory.betaMemory.getLeftTupleMemory().remove( leftTuple );
- final RightTuple resultTuple = (RightTuple) memory.betaMemory.getCreatedHandles().remove( leftTuple );
-
- if ( leftTuple.getBetaChildren() != null ) {
- this.sink.propagateRetractLeftTuple( leftTuple,
- context,
- workingMemory );
- }
- workingMemory.getFactHandleFactory().destroyFactHandle( resultTuple.getFactHandle() );
+ this.sink.propagateRetractLeftTupleDestroyRightTuple( leftTuple, context, workingMemory );
}
/**
@@ -296,7 +287,7 @@
final CollectMemory memory = (CollectMemory) workingMemory.getNodeMemory( this );
- RightTuple result = (RightTuple) memory.betaMemory.getCreatedHandles().get( leftTuple );
+ RightTuple result = leftTuple.getBetaChildren().getRightParent();
// if tuple was propagated
if ( leftTuple.getBetaChildren() != null ) {
@@ -353,17 +344,13 @@
public void updateSink(final LeftTupleSink sink,
final PropagationContext context,
final InternalWorkingMemory workingMemory) {
- // final CollectMemory memory = (CollectMemory) workingMemory.getNodeMemory( this );
- //
- // final Iterator it = memory.betaMemory.getCreatedHandles().iterator();
- //
- // for ( ObjectEntry entry = (ObjectEntry) it.next(); entry != null; entry = (ObjectEntry) it.next() ) {
- // CollectResult result = (CollectResult) entry.getValue();
- // sink.assertLeftTuple( new LeftTuple( (LeftTuple) entry.getKey(),
- // result.handle ),
- // context,
- // workingMemory );
- // }
+ final CollectMemory memory = (CollectMemory) workingMemory.getNodeMemory( this );
+
+ final Iterator tupleIter = memory.betaMemory.getLeftTupleMemory().iterator();
+ for ( LeftTuple leftTuple = (LeftTuple) tupleIter.next(); leftTuple != null; leftTuple = (LeftTuple) tupleIter.next() ) {
+ RightTuple rightTuple = leftTuple.getBetaChildren().getRightParent();
+ sink.assertLeftTuple( new LeftTuple( leftTuple, rightTuple, sink), context, workingMemory );
+ }
}
/* (non-Javadoc)
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 2008-03-28 04:00:54 UTC (rev 19284)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CollectNodeTest.java 2008-03-28 04:57:45 UTC (rev 19285)
@@ -50,7 +50,7 @@
ReteooWorkingMemory workingMemory;
MockObjectSource objectSource;
MockTupleSource tupleSource;
- MockLeftTupleSink sink;
+ MockLeftTupleSink sink;
BetaNode node;
CollectMemory memory;
MockConstraint constraint = new MockConstraint();
More information about the jboss-svn-commits
mailing list