[jboss-svn-commits] JBL Code SVN: r19197 - 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
Fri Mar 21 17:31:12 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-03-21 17:31:12 -0400 (Fri, 21 Mar 2008)
New Revision: 19197
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CompositeLeftTupleSinkAdapter.java
Log:
JBRULES-1520 RightTuple merge for asynchronous Rete propagations
-removed old, incorrect code, in CompositeLeftTuplesinkAdapter.
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CompositeLeftTupleSinkAdapter.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CompositeLeftTupleSinkAdapter.java 2008-03-21 21:23:11 UTC (rev 19196)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CompositeLeftTupleSinkAdapter.java 2008-03-21 21:31:12 UTC (rev 19197)
@@ -1,13 +1,13 @@
package org.drools.reteoo;
-import org.drools.common.InternalFactHandle;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.spi.PropagationContext;
-
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
+import org.drools.common.InternalFactHandle;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.spi.PropagationContext;
+
public class CompositeLeftTupleSinkAdapter
implements
LeftTupleSinkPropagator {
@@ -17,15 +17,6 @@
this.sinks = new LeftTupleSinkNodeList();
}
- public void readExternal(ObjectInput in) throws IOException,
- ClassNotFoundException {
- sinks = (LeftTupleSinkNodeList) in.readObject();
- }
-
- public void writeExternal(ObjectOutput out) throws IOException {
- out.writeObject( sinks );
- }
-
public void addTupleSink(final LeftTupleSink sink) {
this.sinks.add( (LeftTupleSinkNode) sink );
}
@@ -34,55 +25,48 @@
this.sinks.remove( (LeftTupleSinkNode) sink );
}
- public void propagateAssertLeftTuple(final LeftTuple tuple,
- final RightTuple rightTuple,
- final PropagationContext context,
- final InternalWorkingMemory workingMemory) {
+ public void propagateAssertLeftTuple(final LeftTuple leftTuple,
+ final RightTuple rightTuple,
+ final PropagationContext context,
+ final InternalWorkingMemory workingMemory) {
for ( LeftTupleSinkNode sink = this.sinks.getFirst(); sink != null; sink = sink.getNextLeftTupleSinkNode() ) {
- sink.assertLeftTuple( new LeftTuple( tuple,
- rightTuple,
- sink ),
- context,
- workingMemory );
+ sink.assertLeftTuple( new LeftTuple( leftTuple,
+ rightTuple,
+ sink ),
+ context,
+ workingMemory );
}
}
public void propagateAssertLeftTuple(final LeftTuple tuple,
- final PropagationContext context,
- final InternalWorkingMemory workingMemory) {
+ final PropagationContext context,
+ final InternalWorkingMemory workingMemory) {
for ( LeftTupleSinkNode sink = this.sinks.getFirst(); sink != null; sink = sink.getNextLeftTupleSinkNode() ) {
sink.assertLeftTuple( new LeftTuple( tuple,
- sink ),
- context,
- workingMemory );
+ sink ),
+ context,
+ workingMemory );
}
}
- public void propagateRetractLeftTuple(final LeftTuple tuple,
- final RightTuple rightTuple,
+ public void propagateRetractLeftTuple(final LeftTuple leftTuple,
final PropagationContext context,
final InternalWorkingMemory workingMemory) {
- for ( LeftTupleSinkNode sink = this.sinks.getFirst(); sink != null; sink = sink.getNextLeftTupleSinkNode() ) {
- sink.retractLeftTuple( new LeftTuple( tuple,
- rightTuple,
- sink ),
- context,
- workingMemory );
+ LeftTuple child = leftTuple.getBetaChildren();
+ while ( child != null ) {
+ LeftTuple temp = child.getLeftParentNext();
+ //child.unlinkFromParents();
+ child.getSink().retractLeftTuple( child,
+ context,
+ workingMemory );
+ child.unlinkFromRightParent();
+ //child = child.getLeftParentNext();
+ child = temp;
}
+ leftTuple.setBetaChildren( null );
}
- public void propagateRetractLeftTuple(final LeftTuple tuple,
- final PropagationContext context,
- final InternalWorkingMemory workingMemory) {
- for ( LeftTupleSinkNode sink = this.sinks.getFirst(); sink != null; sink = sink.getNextLeftTupleSinkNode() ) {
- sink.retractLeftTuple( new LeftTuple( tuple,
- sink ),
- context,
- workingMemory );
- }
- }
-
public void propagateRetractRightTuple(final RightTuple rightTuple,
final PropagationContext context,
final InternalWorkingMemory workingMemory) {
@@ -91,9 +75,9 @@
LeftTuple temp = child.getRightParentNext();
//child.unlinkFromParents();
child.getSink().retractLeftTuple( child,
- context,
- workingMemory );
- child.unlinkFromLeftParent();
+ context,
+ workingMemory );
+ child.unlinkFromLeftParent();
//child = child.getRightParentNext();
child = temp;
}
@@ -101,13 +85,13 @@
}
public void createAndPropagateAssertLeftTuple(final InternalFactHandle factHandle,
- final PropagationContext context,
- final InternalWorkingMemory workingMemory) {
+ final PropagationContext context,
+ final InternalWorkingMemory workingMemory) {
for ( LeftTupleSinkNode sink = this.sinks.getFirst(); sink != null; sink = sink.getNextLeftTupleSinkNode() ) {
sink.assertLeftTuple( new LeftTuple( factHandle,
- sink ),
- context,
- workingMemory );
+ sink ),
+ context,
+ workingMemory );
}
}
@@ -190,4 +174,15 @@
public int size() {
return this.sinks.size();
}
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ // TODO Auto-generated method stub
+
+ }
}
More information about the jboss-svn-commits
mailing list