[jboss-svn-commits] JBL Code SVN: r19289 - in labs/jbossrules/trunk/drools-core/src: test/java/org/drools/examples/manners and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Mar 28 01:47:54 EDT 2008


Author: mark.proctor at jboss.com
Date: 2008-03-28 01:47:53 -0400 (Fri, 28 Mar 2008)
New Revision: 19289

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/ReteooMannersTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/MockObjectSink.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ObjectTypeNodeTest.java
Log:
JBRULES-1520 RightTuple merge for asymmetrical Rete propagations
-Fixed ObjectTypeNode and ObjectTypeNodeTest

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java	2008-03-28 05:39:57 UTC (rev 19288)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java	2008-03-28 05:47:53 UTC (rev 19289)
@@ -39,6 +39,7 @@
 import org.drools.util.RightTupleList;
 import org.drools.util.Iterator;
 import org.drools.util.ObjectHashSet;
+import org.drools.util.ObjectHashSet.ObjectEntry;
 
 /**
  * <code>ObjectTypeNodes<code> are responsible for filtering and propagating the matching
@@ -220,13 +221,11 @@
     public void updateSink(final ObjectSink sink,
                            final PropagationContext context,
                            final InternalWorkingMemory workingMemory) {
-//        final ObjectHashSet memory = (ObjectHashSet) workingMemory.getNodeMemory( this );
-        //for ( RightTuple rightTuple = (RightTuple) memory.getFirst( null ); rightTuple != null; rightTuple = (RightTuple) rightTuple.getNext() ) {
-            //@ TODO
-            //            sink.assertRightTuple( rightTuple,
-            //                                   context,
-            //                                   workingMemory );
-//        }
+        final ObjectHashSet memory = (ObjectHashSet) workingMemory.getNodeMemory( this );
+        Iterator it = memory.iterator();
+        for ( ObjectEntry entry = ( ObjectEntry ) it.next(); entry != null; entry = ( ObjectEntry ) it.next() ) {
+            sink.assertObject( (InternalFactHandle) entry.getValue(), context, workingMemory );
+        }
     }
 
     /**

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/ReteooMannersTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/ReteooMannersTest.java	2008-03-28 05:39:57 UTC (rev 19288)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/ReteooMannersTest.java	2008-03-28 05:47:53 UTC (rev 19289)
@@ -65,7 +65,7 @@
         };
 
         //workingMemory.addEventListener(listener );
-        final InputStream is = getClass().getResourceAsStream( "/manners8.dat" );
+        final InputStream is = getClass().getResourceAsStream( "/manners5.dat" );
         final List list = getInputObjects( is );
         for ( final Iterator it = list.iterator(); it.hasNext(); ) {
             final Object object = it.next();

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/MockObjectSink.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/MockObjectSink.java	2008-03-28 05:39:57 UTC (rev 19288)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/MockObjectSink.java	2008-03-28 05:47:53 UTC (rev 19289)
@@ -25,7 +25,8 @@
 
 public class MockObjectSink
     implements
-    ObjectTupleSinkNode {
+    ObjectTupleSinkNode,
+    RightTupleSink {
     private final List     asserted  = new ArrayList();
     private final List     retracted = new ArrayList();
 
@@ -35,13 +36,14 @@
     public void assertObject(final InternalFactHandle factHandle,
                              final PropagationContext context,
                              final InternalWorkingMemory workingMemory) {
+        new RightTuple( factHandle, this );
         this.asserted.add( new Object[]{factHandle, context, workingMemory} );
     }
 
-    public void retractObject(final InternalFactHandle handle,
+    public void retractRightTuple(final RightTuple rightTuple,
                               final PropagationContext context,
                               final InternalWorkingMemory workingMemory) {
-        this.retracted.add( new Object[]{handle, context, workingMemory} );
+        this.retracted.add( new Object[]{rightTuple.getFactHandle(), context, workingMemory} );
     }
 
     public List getAsserted() {

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ObjectTypeNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ObjectTypeNodeTest.java	2008-03-28 05:39:57 UTC (rev 19288)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/ObjectTypeNodeTest.java	2008-03-28 05:47:53 UTC (rev 19289)
@@ -39,6 +39,7 @@
 import org.drools.rule.EntryPoint;
 import org.drools.spi.ObjectType;
 import org.drools.spi.PropagationContext;
+import org.drools.util.ObjectHashSet;
 import org.drools.util.RightTupleList;
 import org.drools.util.ObjectHashMap;
 
@@ -129,7 +130,7 @@
                     workingMemory.getObject( (DefaultFactHandle) ((Object[]) asserted.get( 0 ))[0] ) );
 
         // check asserted object was added to memory
-        final RightTupleList memory = (RightTupleList) workingMemory.getNodeMemory( objectTypeNode );
+        final ObjectHashSet memory = (ObjectHashSet) workingMemory.getNodeMemory( objectTypeNode );
         assertEquals( 1,
                       memory.size() );
         assertTrue( memory.contains( handle1 ) );
@@ -182,7 +183,7 @@
                     workingMemory.getObject( (DefaultFactHandle) ((Object[]) asserted.get( 0 ))[0] ) );
 
         // it's sequential, so check the asserted object was not added to the node memory
-        final RightTupleList memory = (RightTupleList) workingMemory.getNodeMemory( objectTypeNode );
+        final ObjectHashSet memory = (ObjectHashSet) workingMemory.getNodeMemory( objectTypeNode );
         assertEquals( 0,
                       memory.size() );
     }
@@ -198,7 +199,7 @@
                                                                   new ClassObjectType( String.class ),
                                                                   buildContext );
 
-        final RightTupleList memory = (RightTupleList) workingMemory.getNodeMemory( objectTypeNode );
+        final ObjectHashSet memory = (ObjectHashSet) workingMemory.getNodeMemory( objectTypeNode );
 
         assertNotNull( memory );
     }
@@ -253,24 +254,24 @@
         final DefaultFactHandle handle1 = new DefaultFactHandle( 1,
                                                                  string1 );
 
-        /* should assert as ObjectType matches */
+        // should assert as ObjectType matches
         objectTypeNode.assertObject( handle1,
                                      context,
                                      workingMemory );
-        /* check asserted object was added to memory */
-        final RightTupleList memory = (RightTupleList) workingMemory.getNodeMemory( objectTypeNode );
+        // check asserted object was added to memory
+        final ObjectHashSet memory = (ObjectHashSet) workingMemory.getNodeMemory( objectTypeNode );
         assertEquals( 1,
                       memory.size() );
 
-        /* should retract as ObjectType matches */
+        // should retract as ObjectType matches
         objectTypeNode.retractObject( handle1,
                                       context,
                                       workingMemory );
-        /* check asserted object was removed from memory */
+        // check asserted object was removed from memory
         assertEquals( 0,
                       memory.size() );
 
-        /* make sure its just the handle1 for string1 that was propagated */
+        // make sure its just the handle1 for string1 that was propagated
         final List retracted = sink.getRetracted();
         assertLength( 1,
                       retracted );
@@ -386,7 +387,7 @@
                       ((InternalFactHandle) ((Object[]) asserted.get( 0 ))[0]).getObject() );
 
         // check asserted object was added to memory
-        final RightTupleList memory = (RightTupleList) workingMemory.getNodeMemory( objectTypeNode );
+        final ObjectHashSet memory = (ObjectHashSet) workingMemory.getNodeMemory( objectTypeNode );
         assertEquals( 1,
                       memory.size() );
         assertTrue( memory.contains( handle1 ) );
@@ -437,7 +438,7 @@
                       person );
 
         // check asserted object was added to memory
-        final RightTupleList memory = (RightTupleList) workingMemory.getNodeMemory( objectTypeNode );
+        final ObjectHashSet memory = (ObjectHashSet) workingMemory.getNodeMemory( objectTypeNode );
         assertEquals( 1,
                       memory.size() );
         assertTrue( memory.contains( handle1 ) );




More information about the jboss-svn-commits mailing list