[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