[jboss-svn-commits] JBL Code SVN: r12983 - in labs/jbossrules/trunk/drools-core/src: main/java/org/drools/util and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Jul 1 20:58:15 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-07-01 20:58:14 -0400 (Sun, 01 Jul 2007)
New Revision: 12983

Added:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactEntry.java
Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CollectNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ExistsNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/JoinNode.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/ObjectTypeNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/AbstractHashTable.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactHandleIndexHashTable.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactHashTable.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactList.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/JoinNodeTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexEntryTest.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexHashTableTest.java
Log:
JBRULES-947 sequential rete
-Fixed a cast issue for FactEnry

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java	2007-07-02 00:26:56 UTC (rev 12982)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java	2007-07-02 00:58:14 UTC (rev 12983)
@@ -27,8 +27,9 @@
 import org.drools.spi.PropagationContext;
 import org.drools.util.ArrayUtils;
 import org.drools.util.Entry;
+import org.drools.util.FactEntry;
 import org.drools.util.Iterator;
-import org.drools.util.AbstractHashTable.FactEntry;
+import org.drools.util.AbstractHashTable.FactEntryImpl;
 import org.drools.util.ObjectHashMap.ObjectEntry;
 
 /**

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java	2007-07-02 00:26:56 UTC (rev 12982)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java	2007-07-02 00:58:14 UTC (rev 12983)
@@ -24,9 +24,10 @@
 import org.drools.common.PropagationContextImpl;
 import org.drools.spi.AlphaNodeFieldConstraint;
 import org.drools.spi.PropagationContext;
+import org.drools.util.FactEntry;
 import org.drools.util.FactHashTable;
 import org.drools.util.Iterator;
-import org.drools.util.AbstractHashTable.FactEntry;
+import org.drools.util.AbstractHashTable.FactEntryImpl;
 
 /**
  * <code>AlphaNodes</code> are nodes in the <code>Rete</code> network used

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	2007-07-02 00:26:56 UTC (rev 12982)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CollectNode.java	2007-07-02 00:58:14 UTC (rev 12983)
@@ -28,8 +28,9 @@
 import org.drools.spi.PropagationContext;
 import org.drools.util.ArrayUtils;
 import org.drools.util.Entry;
+import org.drools.util.FactEntry;
 import org.drools.util.Iterator;
-import org.drools.util.AbstractHashTable.FactEntry;
+import org.drools.util.AbstractHashTable.FactEntryImpl;
 import org.drools.util.ObjectHashMap.ObjectEntry;
 
 /**

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ExistsNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ExistsNode.java	2007-07-02 00:26:56 UTC (rev 12982)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ExistsNode.java	2007-07-02 00:58:14 UTC (rev 12983)
@@ -21,8 +21,9 @@
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.spi.PropagationContext;
+import org.drools.util.FactEntry;
 import org.drools.util.Iterator;
-import org.drools.util.AbstractHashTable.FactEntry;
+import org.drools.util.AbstractHashTable.FactEntryImpl;
 
 /**
  * <code>ExistsNode</code> extends <code>BetaNode</code> to perform tests for

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/JoinNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/JoinNode.java	2007-07-02 00:26:56 UTC (rev 12982)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/JoinNode.java	2007-07-02 00:58:14 UTC (rev 12983)
@@ -20,8 +20,9 @@
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.spi.PropagationContext;
+import org.drools.util.FactEntry;
 import org.drools.util.Iterator;
-import org.drools.util.AbstractHashTable.FactEntry;
+import org.drools.util.AbstractHashTable.FactEntryImpl;
 
 /**
  * <code>JoinNode</code> extends <code>BetaNode</code> to perform

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	2007-07-02 00:26:56 UTC (rev 12982)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java	2007-07-02 00:58:14 UTC (rev 12983)
@@ -23,9 +23,10 @@
 import org.drools.common.NodeMemory;
 import org.drools.common.PropagationContextImpl;
 import org.drools.spi.PropagationContext;
+import org.drools.util.FactEntry;
 import org.drools.util.FactHashTable;
 import org.drools.util.Iterator;
-import org.drools.util.AbstractHashTable.FactEntry;
+import org.drools.util.AbstractHashTable.FactEntryImpl;
 
 /**
  * All asserting Facts must propagated into the right <code>ObjectSink</code> side of a BetaNode, if this is the first Pattern
@@ -175,7 +176,7 @@
             // We have memory so iterate over all entries
             final FactHashTable memory = (FactHashTable) workingMemory.getNodeMemory( this );
             final Iterator it = memory.iterator();
-            for ( final FactEntry entry = (FactEntry) it.next(); entry != null; it.next() ) {
+            for ( FactEntry entry = (FactEntry) it.next(); entry != null; entry = (FactEntry) it.next() ) {
                 final InternalFactHandle handle = entry.getFactHandle();
                 sink.assertTuple( new ReteTuple( handle ),
                                   context,

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	2007-07-02 00:26:56 UTC (rev 12982)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/NotNode.java	2007-07-02 00:58:14 UTC (rev 12983)
@@ -21,8 +21,9 @@
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.spi.PropagationContext;
+import org.drools.util.FactEntry;
 import org.drools.util.Iterator;
-import org.drools.util.AbstractHashTable.FactEntry;
+import org.drools.util.AbstractHashTable.FactEntryImpl;
 
 /**
  * <code>NotNode</code> extends <code>BetaNode</code> to perform tests for

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	2007-07-02 00:26:56 UTC (rev 12982)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java	2007-07-02 00:58:14 UTC (rev 12983)
@@ -28,9 +28,10 @@
 import org.drools.spi.Constraint;
 import org.drools.spi.ObjectType;
 import org.drools.spi.PropagationContext;
+import org.drools.util.FactEntry;
 import org.drools.util.FactHashTable;
 import org.drools.util.Iterator;
-import org.drools.util.AbstractHashTable.FactEntry;
+import org.drools.util.AbstractHashTable.FactEntryImpl;
 
 /**
  * <code>ObjectTypeNodes<code> are responsible for filtering and propagating the matching

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/AbstractHashTable.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/AbstractHashTable.java	2007-07-02 00:26:56 UTC (rev 12982)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/AbstractHashTable.java	2007-07-02 00:58:14 UTC (rev 12983)
@@ -339,8 +339,9 @@
         }
     }
 
-    public static class FactEntry
+    public static class FactEntryImpl
         implements
+        FactEntry,
         Entry {
 
         private static final long serialVersionUID = 1776798977330980128L;
@@ -353,13 +354,13 @@
 
         //        private LinkedList              list;
 
-        public FactEntry(final InternalFactHandle handle) {
+        public FactEntryImpl(final InternalFactHandle handle) {
             this.handle = handle;
             this.hashCode = handle.hashCode();
             //            this.list = new LinkedList();
         }
 
-        public FactEntry(final InternalFactHandle handle,
+        public FactEntryImpl(final InternalFactHandle handle,
                          final int hashCode) {
             this.handle = handle;
             this.hashCode = hashCode;
@@ -391,7 +392,7 @@
         }
 
         public boolean equals(final Object object) {
-            return (object == this) || (this.handle == ((FactEntry) object).handle);
+            return (object == this) || (this.handle == ((FactEntryImpl) object).handle);
         }
 
         public String toString() {

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactEntry.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactEntry.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactEntry.java	2007-07-02 00:58:14 UTC (rev 12983)
@@ -0,0 +1,7 @@
+package org.drools.util;
+
+import org.drools.common.InternalFactHandle;
+
+public interface FactEntry {
+    public InternalFactHandle getFactHandle();
+}

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactHandleIndexHashTable.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactHandleIndexHashTable.java	2007-07-02 00:26:56 UTC (rev 12982)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactHandleIndexHashTable.java	2007-07-02 00:58:14 UTC (rev 12983)
@@ -268,7 +268,7 @@
 
         private static final long serialVersionUID = -577270475161063671L;
         private Entry             next;
-        private FactEntry         first;
+        private FactEntryImpl         first;
         private final int         hashCode;
         private Index             index;
 
@@ -286,35 +286,35 @@
             this.next = next;
         }
 
-        public FactEntry getFirst() {
+        public FactEntryImpl getFirst() {
             return this.first;
         }
 
         public void add(final InternalFactHandle handle) {
-            final FactEntry entry = new FactEntry( handle );
+            final FactEntryImpl entry = new FactEntryImpl( handle );
             entry.next = this.first;
             this.first = entry;
         }
 
-        public FactEntry get(final InternalFactHandle handle) {
+        public FactEntryImpl get(final InternalFactHandle handle) {
             final long id = handle.getId();
-            FactEntry current = this.first;
+            FactEntryImpl current = this.first;
             while ( current != null ) {
                 if ( current.handle.getId() == id ) {
                     return current;
                 }
-                current = (FactEntry) current.next;
+                current = (FactEntryImpl) current.next;
             }
             return null;
         }
 
-        public FactEntry remove(final InternalFactHandle handle) {
+        public FactEntryImpl remove(final InternalFactHandle handle) {
             final long id = handle.getId();
 
-            FactEntry previous = this.first;
-            FactEntry current = previous;
+            FactEntryImpl previous = this.first;
+            FactEntryImpl current = previous;
             while ( current != null ) {
-                final FactEntry next = (FactEntry) current.next;
+                final FactEntryImpl next = (FactEntryImpl) current.next;
                 if ( current.handle.getId() == id ) {
                     if ( this.first == current ) {
                         this.first = next;

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactHashTable.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactHashTable.java	2007-07-02 00:26:56 UTC (rev 12982)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactHashTable.java	2007-07-02 00:58:14 UTC (rev 12983)
@@ -40,17 +40,17 @@
 
         // scan the linked entries to see if it exists
         if ( checkExists ) {
-            FactEntry current = (FactEntry) this.table[index];
+            FactEntryImpl current = (FactEntryImpl) this.table[index];
             while ( current != null ) {
                 if ( hashCode == current.hashCode && handle.getId() == current.handle.getId() ) {
                     return false;
                 }
-                current = (FactHashTable.FactEntry) current.getNext();
+                current = (FactHashTable.FactEntryImpl) current.getNext();
             }
         }
 
         // We aren't checking the key exists, or it didn't find the key
-        final FactEntry entry = new FactEntry( handle,
+        final FactEntryImpl entry = new FactEntryImpl( handle,
                                                hashCode );
         entry.next = this.table[index];
         this.table[index] = entry;
@@ -66,12 +66,12 @@
         final int index = indexOf( hashCode,
                                    this.table.length );
 
-        FactEntry current = (FactEntry) this.table[index];
+        FactEntryImpl current = (FactEntryImpl) this.table[index];
         while ( current != null ) {
             if ( hashCode == current.hashCode && handle.getId() == current.handle.getId() ) {
                 return true;
             }
-            current = (FactEntry) current.getNext();
+            current = (FactEntryImpl) current.getNext();
         }
         return false;
     }
@@ -81,10 +81,10 @@
         final int index = indexOf( hashCode,
                                    this.table.length );
 
-        FactEntry previous = (FactEntry) this.table[index];
-        FactEntry current = previous;
+        FactEntryImpl previous = (FactEntryImpl) this.table[index];
+        FactEntryImpl current = previous;
         while ( current != null ) {
-            final FactEntry next = (FactEntry) current.getNext();
+            final FactEntryImpl next = (FactEntryImpl) current.getNext();
             if ( hashCode == current.hashCode && handle.getId() == current.handle.getId() ) {
                 if ( previous == current ) {
                     this.table[index] = next;

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactList.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactList.java	2007-07-02 00:26:56 UTC (rev 12982)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FactList.java	2007-07-02 00:58:14 UTC (rev 12983)
@@ -3,6 +3,8 @@
  */
 package org.drools.util;
 
+import java.io.Serializable;
+
 import org.drools.common.InternalFactHandle;
 import org.drools.reteoo.FactHandleMemory;
 import org.drools.reteoo.ReteTuple;
@@ -29,7 +31,7 @@
 
     public boolean add(final InternalFactHandle handle,
                        final boolean checkExists) {
-        this.list.add( new LinkedListEntry( handle ) );
+        this.list.add( new FactEntryImpl( handle ) );
         return true;
     }
 
@@ -65,4 +67,15 @@
     public boolean isIndexed() {
         return false;
     }
+    
+    public static class FactEntryImpl extends LinkedListEntry implements FactEntry, Serializable {    
+        public FactEntryImpl(InternalFactHandle handle) {
+            super(handle);
+        }
+
+        public InternalFactHandle getFactHandle() {
+            return (InternalFactHandle) getObject();
+        }
+        
+    }
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/JoinNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/JoinNodeTest.java	2007-07-02 00:26:56 UTC (rev 12982)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/JoinNodeTest.java	2007-07-02 00:58:14 UTC (rev 12983)
@@ -31,8 +31,9 @@
 import org.drools.spi.BetaNodeFieldConstraint;
 import org.drools.spi.MockConstraint;
 import org.drools.spi.PropagationContext;
+import org.drools.util.FactEntry;
 import org.drools.util.Iterator;
-import org.drools.util.AbstractHashTable.FactEntry;
+import org.drools.util.AbstractHashTable.FactEntryImpl;
 
 public class JoinNodeTest extends DroolsTestCase {
     Rule                rule;

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexEntryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexEntryTest.java	2007-07-02 00:26:56 UTC (rev 12982)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexEntryTest.java	2007-07-02 00:58:14 UTC (rev 12983)
@@ -9,7 +9,7 @@
 import org.drools.base.evaluators.StringFactory;
 import org.drools.common.DefaultFactHandle;
 import org.drools.common.InternalFactHandle;
-import org.drools.util.AbstractHashTable.FactEntry;
+import org.drools.util.AbstractHashTable.FactEntryImpl;
 import org.drools.util.AbstractHashTable.FieldIndex;
 import org.drools.util.AbstractHashTable.SingleIndex;
 import org.drools.util.FactHandleIndexHashTable.FieldIndexEntry;
@@ -43,7 +43,7 @@
         // test add
         index.add( h1 );
 
-        final FactEntry entry1 = index.getFirst();
+        final FactEntryImpl entry1 = index.getFirst();
         assertSame( h1,
                     entry1.getFactHandle() );
         assertNull( entry1.getNext() );
@@ -51,7 +51,7 @@
                     index.get( h1 ) );
 
         // test get
-        final FactEntry entry2 = index.get( h1 );
+        final FactEntryImpl entry2 = index.get( h1 );
         assertSame( entry1,
                     entry2 );
 
@@ -88,7 +88,7 @@
         assertEquals( h2,
                       index.getFirst().getFactHandle() );
         assertEquals( h1,
-                      ((FactEntry) index.getFirst().getNext()).getFactHandle() );
+                      ((FactEntryImpl) index.getFirst().getNext()).getFactHandle() );
 
         // test get
         assertEquals( h1,
@@ -145,9 +145,9 @@
         assertEquals( h3,
                       index.getFirst().getFactHandle() );
         assertEquals( h2,
-                      ((FactEntry) index.getFirst().getNext()).getFactHandle() );
+                      ((FactEntryImpl) index.getFirst().getNext()).getFactHandle() );
         assertEquals( h1,
-                      ((FactEntry) index.getFirst().getNext().getNext()).getFactHandle() );
+                      ((FactEntryImpl) index.getFirst().getNext().getNext()).getFactHandle() );
 
         // test get
         assertEquals( h1,
@@ -163,21 +163,21 @@
         assertEquals( h2,
                       index.getFirst().getFactHandle() );
         assertEquals( h1,
-                      ((FactEntry) index.getFirst().getNext()).getFactHandle() );
+                      ((FactEntryImpl) index.getFirst().getNext()).getFactHandle() );
 
         index.add( h3 );
         index.remove( h2 );
         assertEquals( h3,
                       index.getFirst().getFactHandle() );
         assertEquals( h1,
-                      ((FactEntry) index.getFirst().getNext()).getFactHandle() );
+                      ((FactEntryImpl) index.getFirst().getNext()).getFactHandle() );
 
         index.add( h2 );
         index.remove( h1 );
         assertEquals( h2,
                       index.getFirst().getFactHandle() );
         assertEquals( h3,
-                      ((FactEntry) index.getFirst().getNext()).getFactHandle() );
+                      ((FactEntryImpl) index.getFirst().getNext()).getFactHandle() );
 
         index.remove( index.getFirst().getFactHandle() );
         // check index type does not change, as this fact is removed

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexHashTableTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexHashTableTest.java	2007-07-02 00:26:56 UTC (rev 12982)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/util/FieldIndexHashTableTest.java	2007-07-02 00:58:14 UTC (rev 12983)
@@ -19,7 +19,7 @@
 import org.drools.rule.Pattern;
 import org.drools.rule.Declaration;
 import org.drools.spi.FieldExtractor;
-import org.drools.util.AbstractHashTable.FactEntry;
+import org.drools.util.AbstractHashTable.FactEntryImpl;
 import org.drools.util.AbstractHashTable.FieldIndex;
 import org.drools.util.FactHandleIndexHashTable.FieldIndexEntry;
 import org.drools.util.ObjectHashMap.ObjectEntry;
@@ -186,7 +186,7 @@
         assertSame( stiltonHandle2,
                     stiltonEntry.getFirst().getFactHandle() );
         assertSame( stiltonHandle1,
-                    ((FactEntry) stiltonEntry.getFirst().getNext()).getFactHandle() );
+                    ((FactEntryImpl) stiltonEntry.getFirst().getNext()).getFactHandle() );
     }
 
     public void testTwoDifferentEntriesSameHashCode() throws Exception {




More information about the jboss-svn-commits mailing list