[jboss-svn-commits] JBL Code SVN: r6990 - 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 Oct 20 17:48:12 EDT 2006
Author: tirelli
Date: 2006-10-20 17:48:08 -0400 (Fri, 20 Oct 2006)
New Revision: 6990
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/SingleTupleSinkAdapter.java
Log:
JBRULES-527: fixing compilation problems
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 2006-10-20 21:41:41 UTC (rev 6989)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CollectNode.java 2006-10-20 21:48:08 UTC (rev 6990)
@@ -16,22 +16,16 @@
package org.drools.reteoo;
-import java.util.ArrayList;
import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
import org.drools.common.BetaConstraints;
-import org.drools.common.DefaultBetaConstraints;
import org.drools.common.EmptyBetaConstraints;
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
import org.drools.rule.Collect;
import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.PropagationContext;
-import org.drools.util.LinkedList;
-import org.drools.util.LinkedListEntry;
+import org.drools.util.Iterator;
import org.drools.util.AbstractHashTable.FactEntry;
/**
@@ -130,7 +124,7 @@
memory.getTupleMemory().add( leftTuple );
final Collection result = this.collect.instantiateResultObject();
- final org.drools.util.Iterator it = memory.getObjectMemory().iterator( leftTuple );
+ final Iterator it = memory.getObjectMemory().iterator( leftTuple );
this.constraints.updateFromTuple( workingMemory, leftTuple );
for ( FactEntry entry = (FactEntry) it.next(); entry != null; entry = (FactEntry) it.next() ) {
@@ -167,33 +161,31 @@
public void retractTuple(final ReteTuple leftTuple,
final PropagationContext context,
final InternalWorkingMemory workingMemory) {
- final BetaMemory memory = (BetaMemory) workingMemory.getNodeMemory( this );
- memory.getTupleMemory().remove( leftTuple );
-
-
-
-
- final Map matches = leftTuple.getTupleMatches();
-
- if ( !matches.isEmpty() ) {
- for ( final Iterator it = matches.values().iterator(); it.hasNext(); ) {
- final CompositeTupleMatch compositeTupleMatch = (CompositeTupleMatch) it.next();
- compositeTupleMatch.getObjectMatches().remove( compositeTupleMatch );
- it.remove();
- }
- }
-
- // if tuple was propagated
- if ( (leftTuple.getChildEntries() != null) && (leftTuple.getChildEntries().size() > 0) ) {
- // Need to store the collection result object for later disposal
- final InternalFactHandle lastHandle = ((ReteTuple) ((LinkedListEntry) leftTuple.getChildEntries().getFirst()).getObject()).getLastHandle();
-
- leftTuple.retractChildEntries( context,
- workingMemory );
-
- // Destroying the acumulate result object
- workingMemory.getFactHandleFactory().destroyFactHandle( lastHandle );
- }
+ // FIXME
+// final BetaMemory memory = (BetaMemory) workingMemory.getNodeMemory( this );
+// memory.getTupleMemory().remove( leftTuple );
+//
+// final Map matches = leftTuple.getTupleMatches();
+//
+// if ( !matches.isEmpty() ) {
+// for ( final Iterator it = matches.values().iterator(); it.hasNext(); ) {
+// final CompositeTupleMatch compositeTupleMatch = (CompositeTupleMatch) it.next();
+// compositeTupleMatch.getObjectMatches().remove( compositeTupleMatch );
+// it.remove();
+// }
+// }
+//
+// // if tuple was propagated
+// if ( (leftTuple.getChildEntries() != null) && (leftTuple.getChildEntries().size() > 0) ) {
+// // Need to store the collection result object for later disposal
+// final InternalFactHandle lastHandle = ((ReteTuple) ((LinkedListEntry) leftTuple.getChildEntries().getFirst()).getObject()).getLastHandle();
+//
+// leftTuple.retractChildEntries( context,
+// workingMemory );
+//
+// // Destroying the acumulate result object
+// workingMemory.getFactHandleFactory().destroyFactHandle( lastHandle );
+// }
}
/**
@@ -210,23 +202,16 @@
final InternalWorkingMemory workingMemory) {
final BetaMemory memory = (BetaMemory) workingMemory.getNodeMemory( this );
- memory.add( workingMemory,
- handle );
+ memory.getObjectMemory().add( handle );
- final BetaConstraints binder = constraints();
- for ( final Iterator it = memory.leftTupleIterator( workingMemory,
- handle ); it.hasNext(); ) {
- final ReteTuple leftTuple = (ReteTuple) it.next();
-
- if ( binder.isAllowed( handle,
- leftTuple,
- workingMemory ) ) {
- this.modifyTuple( leftTuple,
- context,
- workingMemory );
+ final Iterator it = memory.getTupleMemory().iterator();
+ this.constraints.updateFromFactHandle( workingMemory, handle );
+ for ( ReteTuple tuple = (ReteTuple) it.next(); tuple != null; tuple = (ReteTuple) it.next() ) {
+ if ( this.constraints.isAllowedCachedRight( tuple ) ) {
+ this.retractTuple( tuple, context, workingMemory );
+ this.assertTuple( tuple, context, workingMemory );
}
}
-
}
/**
@@ -240,18 +225,7 @@
final InternalWorkingMemory workingMemory) {
final BetaMemory memory = (BetaMemory) workingMemory.getNodeMemory( this );
- // Remove the FactHandle from memory
- final ObjectMatches objectMatches = memory.remove( workingMemory,
- handle );
-
- for ( CompositeTupleMatch compositeTupleMatch = objectMatches.getFirstTupleMatch(); compositeTupleMatch != null; compositeTupleMatch = (CompositeTupleMatch) compositeTupleMatch.getNext() ) {
- final ReteTuple leftTuple = compositeTupleMatch.getTuple();
- leftTuple.removeMatch( handle );
-
- this.modifyTuple( leftTuple,
- context,
- workingMemory );
- }
+ // FIXME
}
public String toString() {
@@ -261,8 +235,22 @@
public void updateSink(TupleSink sink,
PropagationContext context,
InternalWorkingMemory workingMemory) {
- // TODO Auto-generated method stub
-
+ final BetaMemory memory = (BetaMemory) workingMemory.getNodeMemory( this );
+
+ final Iterator tupleIter = memory.getTupleMemory().iterator();
+ for ( ReteTuple tuple = (ReteTuple) tupleIter.next(); tuple != null; tuple = (ReteTuple) tupleIter.next() ) {
+ final Iterator objectIter = memory.getObjectMemory().iterator( tuple );
+ this.constraints.updateFromTuple( workingMemory, tuple );
+ for ( FactEntry entry = (FactEntry) objectIter.next(); entry != null; entry = (FactEntry) objectIter.next() ) {
+ final InternalFactHandle handle = entry.getFactHandle();
+ if ( this.constraints.isAllowedCachedLeft( handle.getObject() ) ) {
+ sink.assertTuple( new ReteTuple( tuple,
+ handle ),
+ context,
+ workingMemory );
+ }
+ }
+ }
}
}
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-10-20 21:41:41 UTC (rev 6989)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/SingleTupleSinkAdapter.java 2006-10-20 21:48:08 UTC (rev 6990)
@@ -72,71 +72,6 @@
return new TupleSink[]{this.sink};
}
- // public void propagateNewTupleSink(TupleMatch tupleMatch,
- // PropagationContext context,
- // InternalWorkingMemory workingMemory) {
- //
- // final TupleSink sink = sinks.getLast();
- // final ReteTuple tuple = new ReteTuple( tupleMatch.getTuple(),
- // tupleMatch.getObjectMatches().getFactHandle(),
- // sink );
- // tupleMatch.addJoinedTuple( tuple );
- // tuple.assertTuple( context,
- // workingMemory );
- // }
- //
- // public void propagateNewTupleSink(ReteTuple tuple,
- // PropagationContext context,
- // InternalWorkingMemory workingMemory) {
- //
- // final TupleSink sink = sinks.getLast();
- // ReteTuple child = new ReteTuple( tuple,
- // sink );
- // tuple.addChildEntry( child );
- // child.assertTuple( context,
- // workingMemory );
- // }
- //
- // public void propagateNewTupleSink(InternalFactHandle handle,
- // LinkedList list,
- // PropagationContext context,
- // InternalWorkingMemory workingMemory) {
- // TupleSink sink = this.sinks.getLast();
- // ReteTuple tuple = new ReteTuple( handle,
- // sink );
- // list.add( new LinkedListEntry( tuple ) );
- // tuple.assertTuple( context,
- // workingMemory );
- // }
- //
- // /**
- // * @inheritDoc
- // */
- // public List getPropagatedTuples(final Map memory,
- // final InternalWorkingMemory workingMemory,
- // final TupleSink sink) {
- // int index = 0;
- // for ( TupleSinkNode node = this.sinks.getFirst(); node != null; node = node.getNextTupleSinkNode() ) {
- // if ( node.equals( sink ) ) {
- // break;
- // }
- // index++;
- // }
- //
- // final List propagatedTuples = new ArrayList( memory.size() );
- //
- // for ( final Iterator it = memory.values().iterator(); it.hasNext(); ) {
- // final LinkedList tuples = (LinkedList) it.next();
- // LinkedListEntry wrapper = (LinkedListEntry) tuples.getFirst();
- // for ( int i = 0; i < index; i++ ) {
- // wrapper = (LinkedListEntry) wrapper.getNext();
- // }
- // propagatedTuples.add( wrapper.getObject() );
- // }
- //
- // return propagatedTuples;
- // }
-
public int size() {
return (this.sink != null) ? 1 : 0;
}
More information about the jboss-svn-commits
mailing list