[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