[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