[jboss-svn-commits] JBL Code SVN: r6207 - 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
Wed Sep 13 14:58:10 EDT 2006
Author: mark.proctor at jboss.com
Date: 2006-09-13 14:58:07 -0400 (Wed, 13 Sep 2006)
New Revision: 6207
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CompositeTupleSinkAdapter.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/SingleTupleSinkAdapter.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleMatch.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleSinkPropagator.java
Log:
JBRULES-484 refactor the core reteoo code for sinle and composite propagations
-made memory self contained again
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CompositeTupleSinkAdapter.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CompositeTupleSinkAdapter.java 2006-09-13 18:33:18 UTC (rev 6206)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CompositeTupleSinkAdapter.java 2006-09-13 18:58:07 UTC (rev 6207)
@@ -54,17 +54,16 @@
}
}
- public void createAndAssertTuple(InternalFactHandle handle,
+ public LinkedList createAndAssertTuple(InternalFactHandle handle,
PropagationContext context,
- InternalWorkingMemory workingMemory,
- Map memory) {
+ InternalWorkingMemory workingMemory) {
final LinkedList list = new LinkedList();
- memory.put( handle, list );
for ( TupleSinkNode sink = this.sinks.getFirst(); sink != null; sink = sink.getNextTupleSinkNode() ) {
ReteTuple tuple = new ReteTuple( handle, sink );
list.add( new LinkedListObjectWrapper( tuple ) );
tuple.assertTuple( context, workingMemory );
}
+ return list;
}
public TupleSink[] getSinks() {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java 2006-09-13 18:33:18 UTC (rev 6206)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java 2006-09-13 18:58:07 UTC (rev 6207)
@@ -140,10 +140,10 @@
if ( (this.binder == null) || (this.binder.isAllowed( handle,
null,
workingMemory )) ) {
- this.sink.createAndAssertTuple( handle,
- context,
- workingMemory,
- memory );
+ memory.put( handle,
+ this.sink.createAndAssertTuple( handle,
+ context,
+ workingMemory ) );
}
}
@@ -166,9 +166,10 @@
// the handle might have been filtered out by the binder
if ( list != null ) {
- for ( LinkedListNode node = list.removeFirst(); node != null; node = list.removeFirst() ) {
- ReteTuple reteTuple = ( ReteTuple ) ((LinkedListObjectWrapper) node).getObject();
- reteTuple.retractTuple( context, workingMemory );
+ for ( LinkedListNode node = list.removeFirst(); node != null; node = list.removeFirst() ) {
+ ReteTuple reteTuple = (ReteTuple) ((LinkedListObjectWrapper) node).getObject();
+ reteTuple.retractTuple( context,
+ workingMemory );
}
}
}
@@ -186,23 +187,25 @@
if ( list != null ) {
// already existed, so propagate as a modify
for ( LinkedListNode node = list.getFirst(); node != null; node = node.getNext() ) {
- ReteTuple reteTuple = ( ReteTuple ) ((LinkedListObjectWrapper) node).getObject();
- reteTuple.modifyTuple( context, workingMemory );
+ ReteTuple reteTuple = (ReteTuple) ((LinkedListObjectWrapper) node).getObject();
+ reteTuple.modifyTuple( context,
+ workingMemory );
}
} else {
// didn't existed, so propagate as an assert
- this.sink.createAndAssertTuple( handle,
- context,
- workingMemory,
- memory );
+ memory.put( handle,
+ this.sink.createAndAssertTuple( handle,
+ context,
+ workingMemory ) );
}
} else {
final LinkedList list = (LinkedList) memory.remove( handle );
if ( list != null ) {
for ( LinkedListNode node = list.getFirst(); node != null; node = node.getNext() ) {
- ReteTuple reteTuple = ( ReteTuple ) ((LinkedListObjectWrapper) node).getObject();
- reteTuple.retractTuple( context, workingMemory );
+ ReteTuple reteTuple = (ReteTuple) ((LinkedListObjectWrapper) node).getObject();
+ reteTuple.retractTuple( context,
+ workingMemory );
}
}
}
@@ -216,17 +219,20 @@
this.attachingNewNode = true;
// Get the newly attached TupleSink
-// final TupleSink sink = (TupleSink) getTupleSinks().get( getTupleSinks().size() - 1 );
+ // final TupleSink sink = (TupleSink) getTupleSinks().get( getTupleSinks().size() - 1 );
// Iterate the memory and assert all tuples into the newly attached TupleSink
final Map memory = (Map) workingMemory.getNodeMemory( this );
-
+
for ( final Iterator it = memory.entrySet().iterator(); it.hasNext(); ) {
- Entry entry = ( Entry ) it.next();
-
- final InternalFactHandle handle = ( InternalFactHandle ) entry.getKey();
+ Entry entry = (Entry) it.next();
+
+ final InternalFactHandle handle = (InternalFactHandle) entry.getKey();
final LinkedList list = (LinkedList) entry.getValue();
- this.sink.propagateNewTupleSink( handle, list, context, workingMemory );
+ this.sink.propagateNewTupleSink( handle,
+ list,
+ context,
+ workingMemory );
}
this.attachingNewNode = false;
@@ -235,7 +241,7 @@
public void remove(final BaseNode node,
final InternalWorkingMemory[] workingMemories) {
if ( !node.isInUse() ) {
- removeTupleSink( (TupleSink ) node );
+ removeTupleSink( (TupleSink) node );
}
removeShare();
if ( !this.isInUse() ) {
@@ -282,6 +288,8 @@
public List getPropagatedTuples(final InternalWorkingMemory workingMemory,
final TupleSink sink) {
final Map memory = (Map) workingMemory.getNodeMemory( this );
- return this.sink.getPropagatedTuples( memory, workingMemory, sink );
+ return this.sink.getPropagatedTuples( memory,
+ workingMemory,
+ sink );
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/SingleTupleSinkAdapter.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/SingleTupleSinkAdapter.java 2006-09-13 18:33:18 UTC (rev 6206)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/SingleTupleSinkAdapter.java 2006-09-13 18:58:07 UTC (rev 6207)
@@ -33,17 +33,16 @@
workingMemory );
}
- public void createAndAssertTuple(InternalFactHandle handle,
+ public LinkedList createAndAssertTuple(InternalFactHandle handle,
PropagationContext context,
- InternalWorkingMemory workingMemory,
- Map memory) {
+ InternalWorkingMemory workingMemory) {
final LinkedList list = new LinkedList();
ReteTuple tuple = new ReteTuple( handle,
sink );
list.add( new LinkedListObjectWrapper( tuple ) );
- memory.put( handle, list );
tuple.assertTuple( context,
workingMemory );
+ return list;
}
public void propagateAssertTuple(ReteTuple tuple,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleMatch.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleMatch.java 2006-09-13 18:33:18 UTC (rev 6206)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleMatch.java 2006-09-13 18:58:07 UTC (rev 6207)
@@ -86,15 +86,15 @@
public void propagateRetractTuple(final PropagationContext context,
final InternalWorkingMemory workingMemory) {
this.children.propagateRetractTuple( context,
- workingMemory );
+ workingMemory );
}
public void propagateModifyTuple(final PropagationContext context,
final InternalWorkingMemory workingMemory) {
this.children.propagateModifyTuple( context,
- workingMemory );
+ workingMemory );
}
-
+
public ReteTuple getTupleForSink(TupleSink sink) {
return this.children.getTupleForSink( sink );
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleSinkPropagator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleSinkPropagator.java 2006-09-13 18:33:18 UTC (rev 6206)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleSinkPropagator.java 2006-09-13 18:58:07 UTC (rev 6207)
@@ -19,10 +19,9 @@
PropagationContext context,
InternalWorkingMemory workingMemory);
- public void createAndAssertTuple(InternalFactHandle handle,
+ public LinkedList createAndAssertTuple(InternalFactHandle handle,
PropagationContext context,
- InternalWorkingMemory workingMemory,
- Map memory);
+ InternalWorkingMemory workingMemory);
public TupleSink[] getSinks();
More information about the jboss-svn-commits
mailing list