[jboss-svn-commits] JBL Code SVN: r6547 - labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Oct 3 09:43:03 EDT 2006


Author: mark.proctor at jboss.com
Date: 2006-10-03 09:43:00 -0400 (Tue, 03 Oct 2006)
New Revision: 6547

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FieldIndexHashTable.java
Log:
JBRULES-498 Optimised HashMap implementations
-added  contains mehtod to FieldIndexHashTable

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FieldIndexHashTable.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FieldIndexHashTable.java	2006-10-03 13:41:59 UTC (rev 6546)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/FieldIndexHashTable.java	2006-10-03 13:43:00 UTC (rev 6547)
@@ -193,14 +193,27 @@
         return false;
     }
 
+    public boolean contains(InternalFactHandle handle) {
+        Object value = this.extractor.getValue( handle.getObject() );
+        int hashCode = PRIME * startResult + ((value == null) ? 0 : value.hashCode());
+
+        int index = indexOf( hashCode,
+                             table.length );
+
+        FieldIndexEntry current = (FieldIndexEntry) this.table[index];
+        while ( current != null ) {
+            if ( hashCode == current.hashCode && value.equals( current.getValue() ) ) {
+                return  true;
+            }
+            current = (FieldIndexEntry) current.next;
+        }
+        return false;
+    }
+    
     public FieldIndexEntry get(ReteTuple tuple) {
         Object value = this.declaration.getValue( tuple.get( this.declaration ).getObject() );
         int hashCode = PRIME * startResult + ((value == null) ? 0 : value.hashCode());
 
-        if ( !tuple.isFieldIndexed() ) {
-            tuple.setFieldIndexHashCode( hashCode );
-        }
-
         int index = indexOf( hashCode,
                              table.length );
         FieldIndexEntry entry = (FieldIndexEntry) this.table[index];




More information about the jboss-svn-commits mailing list