[jboss-svn-commits] JBL Code SVN: r19402 - 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 Apr 3 19:00:35 EDT 2008
Author: tirelli
Date: 2008-04-03 19:00:35 -0400 (Thu, 03 Apr 2008)
New Revision: 19402
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/JoinNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java
Log:
JBRULES-1520: fixing dynamic rules propagation
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 2008-04-03 22:25:53 UTC (rev 19401)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FromNode.java 2008-04-03 23:00:35 UTC (rev 19402)
@@ -1,9 +1,9 @@
package org.drools.reteoo;
-import java.io.Serializable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
+import java.io.Serializable;
import org.drools.RuleBaseConfiguration;
import org.drools.common.BaseNode;
@@ -18,8 +18,6 @@
import org.drools.spi.DataProvider;
import org.drools.spi.PropagationContext;
import org.drools.util.Iterator;
-import org.drools.util.LinkedList;
-import org.drools.util.LinkedListEntry;
import org.drools.util.LeftTupleList;
public class FromNode extends LeftTupleSource
@@ -201,22 +199,25 @@
final InternalWorkingMemory workingMemory) {
final FromMemory memory = (FromMemory) workingMemory.getNodeMemory( this );
- // @TODO
-//
-// final Iterator tupleIter = memory.betaMemory.getLeftTupleMemory().iterator();
-// for ( LeftTuple tuple = (LeftTuple) tupleIter.next(); tuple != null; tuple = (LeftTuple) tupleIter.next() ) {
-// final LinkedList list = (LinkedList) memory.betaMemory.getCreatedHandles().remove( tuple );
-// if ( list == null ) {
-// continue;
-// }
-// for ( LinkedListEntry entry = (LinkedListEntry) list.getFirst(); entry != null; entry = (LinkedListEntry) entry.getNext() ) {
-// final InternalFactHandle handle = (InternalFactHandle) entry.getObject();
-// this.sink.propagateAssertLeftTuple( tuple,
-// handle,
-// context,
-// workingMemory );
-// }
-// }
+
+ final Iterator tupleIter = memory.betaMemory.getLeftTupleMemory().iterator();
+ for ( LeftTuple leftTuple = (LeftTuple) tupleIter.next(); leftTuple != null; leftTuple = (LeftTuple) tupleIter.next() ) {
+ LeftTuple child = leftTuple.getBetaChildren();
+ RightTuple match = null;
+ while( child != null ) {
+ if( match != child.getRightParent() ) {
+ match = child.getRightParent();
+ sink.assertLeftTuple( new LeftTuple( leftTuple,
+ match,
+ sink,
+ this.tupleMemoryEnabled ),
+ context,
+ workingMemory );
+
+ }
+ child = child.getLeftParentNext();
+ }
+ }
}
public Object createMemory(final RuleBaseConfiguration config) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/JoinNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/JoinNode.java 2008-04-03 22:25:53 UTC (rev 19401)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/JoinNode.java 2008-04-03 23:00:35 UTC (rev 19402)
@@ -235,7 +235,7 @@
rightTuple.getFactHandle() ) ) {
sink.assertLeftTuple( new LeftTuple( leftTuple,
rightTuple,
- this,
+ sink,
this.tupleMemoryEnabled ),
context,
workingMemory );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java 2008-04-03 22:25:53 UTC (rev 19401)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java 2008-04-03 23:00:35 UTC (rev 19402)
@@ -182,7 +182,6 @@
final PropagationContext context,
final InternalWorkingMemory workingMemory,
final boolean fireActivationCreated) {
-
//check if the rule is effective
if ( !this.rule.isEffective( workingMemory.getTimeMachine() ) ) {
return;
More information about the jboss-svn-commits
mailing list