[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