[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