[jboss-svn-commits] JBL Code SVN: r7044 - 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
Mon Oct 23 18:17:54 EDT 2006
Author: tirelli
Date: 2006-10-23 18:17:42 -0400 (Mon, 23 Oct 2006)
New Revision: 7044
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/NotNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.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/TupleSinkPropagator.java
Log:
Fixing integration tests
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-10-23 22:12:30 UTC (rev 7043)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CompositeTupleSinkAdapter.java 2006-10-23 22:17:42 UTC (rev 7044)
@@ -66,24 +66,21 @@
}
}
- public ReteTuple createAndPropagateAssertTuple(final InternalFactHandle handle,
- final PropagationContext context,
- final InternalWorkingMemory workingMemory) {
- // This is the root fact, so we don't need to clone it.
- final ReteTuple tuple = new ReteTuple( handle );
+ public void createAndPropagateAssertTuple(final InternalFactHandle handle,
+ final PropagationContext context,
+ final InternalWorkingMemory workingMemory) {
for ( TupleSinkNode sink = this.sinks.getFirst(); sink != null; sink = sink.getNextTupleSinkNode() ) {
- sink.assertTuple( tuple,
+ sink.assertTuple( new ReteTuple( handle ),
context,
workingMemory );
}
- return tuple;
}
- public void createAndPropagateRetractTuple(final ReteTuple tuple,
+ public void createAndPropagateRetractTuple(final InternalFactHandle handle,
final PropagationContext context,
final InternalWorkingMemory workingMemory) {
for ( TupleSinkNode sink = this.sinks.getFirst(); sink != null; sink = sink.getNextTupleSinkNode() ) {
- sink.retractTuple( tuple,
+ sink.retractTuple( new ReteTuple( handle ),
context,
workingMemory );
}
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-10-23 22:12:30 UTC (rev 7043)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java 2006-10-23 22:17:42 UTC (rev 7044)
@@ -23,9 +23,9 @@
import org.drools.common.NodeMemory;
import org.drools.common.PropagationContextImpl;
import org.drools.spi.PropagationContext;
+import org.drools.util.FactHashTable;
import org.drools.util.Iterator;
-import org.drools.util.ObjectHashMap;
-import org.drools.util.ObjectHashMap.ObjectEntry;
+import org.drools.util.AbstractHashTable.FactEntry;
/**
* All asserting Facts must propagated into the right <code>ObjectSink</code> side of a BetaNode, if this is the first Column
@@ -48,9 +48,9 @@
private static final long serialVersionUID = 320L;
private final ObjectSource objectSource;
- private ObjectSinkNode previousObjectSinkNode;
- private ObjectSinkNode nextObjectSinkNode;
-
+ private ObjectSinkNode previousObjectSinkNode;
+ private ObjectSinkNode nextObjectSinkNode;
+
// private final AlphaNodeFieldConstraint constraints;
// /**
@@ -136,18 +136,15 @@
public void assertObject(final InternalFactHandle handle,
final PropagationContext context,
final InternalWorkingMemory workingMemory) {
- // if ( (this.constraints == null) || (this.constraints.isAllowed( handle.getObject(),
- // workingMemory )) ) {
- final ReteTuple tuple = this.sink.createAndPropagateAssertTuple( handle,
- context,
- workingMemory );
+ this.sink.createAndPropagateAssertTuple( handle,
+ context,
+ workingMemory );
+
if ( this.hasMemory ) {
- final ObjectHashMap map = (ObjectHashMap) workingMemory.getNodeMemory( this );
- map.put( handle,
- tuple,
- false );
- // }
+ final FactHashTable memory = (FactHashTable) workingMemory.getNodeMemory( this );
+ memory.add( handle,
+ false );
}
}
@@ -165,18 +162,17 @@
public void retractObject(final InternalFactHandle handle,
final PropagationContext context,
final InternalWorkingMemory workingMemory) {
- ReteTuple tuple = null;
+ boolean propagate = true;
if ( this.hasMemory ) {
- final ObjectHashMap map = (ObjectHashMap) workingMemory.getNodeMemory( this );
- tuple = (ReteTuple) map.remove( handle );
- } else {
- tuple = new ReteTuple( handle );
- }
+ final FactHashTable memory = (FactHashTable) workingMemory.getNodeMemory( this );
+ propagate = memory.remove( handle );
+ }
- this.sink.createAndPropagateRetractTuple( tuple,
- context,
- workingMemory );
- tuple.release();
+ if( propagate ) {
+ this.sink.createAndPropagateRetractTuple( handle,
+ context,
+ workingMemory );
+ }
}
public void updateSink(final TupleSink sink,
@@ -184,12 +180,11 @@
final InternalWorkingMemory workingMemory) {
if ( this.hasMemory ) {
// We have memory so iterate over all entries
- final ObjectHashMap map = (ObjectHashMap) workingMemory.getNodeMemory( this );
- final Iterator it = map.iterator();
- for ( final ObjectEntry entry = (ObjectEntry) it.next(); entry != null; it.next() ) {
- //final InternalFactHandle handle = (InternalFactHandle) entry.getKey();
- final ReteTuple tuple = (ReteTuple) entry.getValue();
- sink.assertTuple( tuple,
+ final FactHashTable memory = (FactHashTable) workingMemory.getNodeMemory( this );
+ final Iterator it = memory.iterator();
+ for ( final FactEntry entry = (FactEntry) it.next(); entry != null; it.next() ) {
+ final InternalFactHandle handle = (InternalFactHandle) entry.getFactHandle();
+ sink.assertTuple( new ReteTuple(handle),
context,
workingMemory );
}
@@ -251,7 +246,7 @@
public void setPreviousObjectSinkNode(final ObjectSinkNode previous) {
this.previousObjectSinkNode = previous;
}
-
+
public int hashCode() {
return this.objectSource.hashCode();
}
@@ -274,7 +269,7 @@
}
public Object createMemory(final RuleBaseConfiguration config) {
- return new ObjectHashMap();
+ return new FactHashTable();
}
/**
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/NotNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/NotNode.java 2006-10-23 22:12:30 UTC (rev 7043)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/NotNode.java 2006-10-23 22:17:42 UTC (rev 7044)
@@ -218,7 +218,7 @@
}
if ( tuple.getMatches() == 0 ) {
- this.sink.propagateRetractTuple( leftTuple,
+ this.sink.propagateRetractTuple( tuple,
context,
workingMemory );
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java 2006-10-23 22:12:30 UTC (rev 7043)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java 2006-10-23 22:17:42 UTC (rev 7044)
@@ -140,7 +140,7 @@
final Object object = handle.getObject();
// @todo : this is a nasty hack to make manners run, fix asap!!!
- final ObjectTypeNode[] cachedNodes = (ObjectTypeNode[]) memory.get( object.getClass().getSuperclass() );
+ final ObjectTypeNode[] cachedNodes = (ObjectTypeNode[]) memory.get( object.getClass() );
if ( cachedNodes == null ) {
// it is possible that there are no ObjectTypeNodes for an object being retracted
return;
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-23 22:12:30 UTC (rev 7043)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/SingleTupleSinkAdapter.java 2006-10-23 22:17:42 UTC (rev 7044)
@@ -49,21 +49,18 @@
workingMemory );
}
- public ReteTuple createAndPropagateAssertTuple(final InternalFactHandle handle,
- final PropagationContext context,
- final InternalWorkingMemory workingMemory) {
- // This is the root fact, so we don't need to clone it.
- final ReteTuple tuple = new ReteTuple( handle );
- this.sink.assertTuple( tuple,
+ public void createAndPropagateAssertTuple(final InternalFactHandle handle,
+ final PropagationContext context,
+ final InternalWorkingMemory workingMemory) {
+ this.sink.assertTuple( new ReteTuple( handle ),
context,
workingMemory );
- return tuple;
}
- public void createAndPropagateRetractTuple(final ReteTuple tuple,
+ public void createAndPropagateRetractTuple(final InternalFactHandle handle,
final PropagationContext context,
final InternalWorkingMemory workingMemory) {
- this.sink.retractTuple( tuple,
+ this.sink.retractTuple( new ReteTuple( handle ),
context,
workingMemory );
}
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-10-23 22:12:30 UTC (rev 7043)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleSinkPropagator.java 2006-10-23 22:17:42 UTC (rev 7044)
@@ -23,11 +23,11 @@
PropagationContext context,
InternalWorkingMemory workingMemory);
- public ReteTuple createAndPropagateAssertTuple(InternalFactHandle handle,
- PropagationContext context,
- InternalWorkingMemory workingMemory);
+ public void createAndPropagateAssertTuple(InternalFactHandle handle,
+ PropagationContext context,
+ InternalWorkingMemory workingMemory);
- public void createAndPropagateRetractTuple(ReteTuple tuple,
+ public void createAndPropagateRetractTuple(InternalFactHandle handle,
PropagationContext context,
InternalWorkingMemory workingMemory);
More information about the jboss-svn-commits
mailing list