[jboss-svn-commits] JBL Code SVN: r7155 - in labs/jbossrules/trunk/drools-core/src: main/java/org/drools/base main/java/org/drools/base/extractors main/java/org/drools/common main/java/org/drools/facttemplates main/java/org/drools/rule main/java/org/drools/spi main/java/org/drools/util test/java/org/drools/reteoo

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Oct 26 19:14:09 EDT 2006


Author: tirelli
Date: 2006-10-26 19:13:49 -0400 (Thu, 26 Oct 2006)
New Revision: 7155

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseBooleanClassFieldExtractor.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseByteClassFieldExtractor.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseCharClassFieldExtractor.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseDoubleClassFieldExtractor.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseFloatClassFieldExtractor.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseIntClassFieldExtractor.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseLongClassFieldExtractors.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseObjectClassFieldExtractor.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseShortClassFieldExtractor.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EqualityAssertMapComparator.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateFieldExtractor.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Extractor.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/AbstractHashTable.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java
Log:
JBRULES-527: adding primitive support for hashcode calculation on indexing

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java	2006-10-26 21:29:41 UTC (rev 7154)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractor.java	2006-10-26 23:13:49 UTC (rev 7155)
@@ -144,4 +144,8 @@
     public Method getNativeReadMethod() {
         return this.extractor.getNativeReadMethod();
     }
+
+    public int getHashCode(Object object) {
+        return this.extractor.getHashCode( object );
+    }
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseBooleanClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseBooleanClassFieldExtractor.java	2006-10-26 21:29:41 UTC (rev 7154)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseBooleanClassFieldExtractor.java	2006-10-26 23:13:49 UTC (rev 7155)
@@ -78,5 +78,9 @@
             throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
         }
     }
+    
+    public int getHashCode(Object object) {
+        return getBooleanValue( object ) ? 1231 : 1237;
+    }
 
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseByteClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseByteClassFieldExtractor.java	2006-10-26 21:29:41 UTC (rev 7154)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseByteClassFieldExtractor.java	2006-10-26 23:13:49 UTC (rev 7155)
@@ -79,4 +79,7 @@
         }
     }
 
+    public int getHashCode(Object object) {
+        return getByteValue( object );
+    }
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseCharClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseCharClassFieldExtractor.java	2006-10-26 21:29:41 UTC (rev 7154)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseCharClassFieldExtractor.java	2006-10-26 23:13:49 UTC (rev 7155)
@@ -56,4 +56,8 @@
             throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
         }
     }
+
+    public int getHashCode(Object object) {
+        return getCharValue( object );
+    }
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseDoubleClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseDoubleClassFieldExtractor.java	2006-10-26 21:29:41 UTC (rev 7154)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseDoubleClassFieldExtractor.java	2006-10-26 23:13:49 UTC (rev 7155)
@@ -57,4 +57,10 @@
             throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
         }
     }
+    
+    public int getHashCode(Object object) {
+        long temp = Double.doubleToLongBits( getDoubleValue( object ) );
+        return (int) ( temp ^ ( temp >>> 32) );
+    }
+    
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseFloatClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseFloatClassFieldExtractor.java	2006-10-26 21:29:41 UTC (rev 7154)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseFloatClassFieldExtractor.java	2006-10-26 23:13:49 UTC (rev 7155)
@@ -57,4 +57,9 @@
             throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
         }
     }
+    
+    public int getHashCode(Object object) {
+        return Float.floatToIntBits( getFloatValue( object ) );
+    }
+    
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseIntClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseIntClassFieldExtractor.java	2006-10-26 21:29:41 UTC (rev 7154)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseIntClassFieldExtractor.java	2006-10-26 23:13:49 UTC (rev 7155)
@@ -57,4 +57,8 @@
             throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
         }
     }
+
+    public int getHashCode(Object object) {
+        return getIntValue( object );
+    }
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseLongClassFieldExtractors.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseLongClassFieldExtractors.java	2006-10-26 21:29:41 UTC (rev 7154)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseLongClassFieldExtractors.java	2006-10-26 23:13:49 UTC (rev 7155)
@@ -57,4 +57,10 @@
             throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
         }
     }
+    
+    public int getHashCode(Object object) {
+        long temp = getLongValue( object );
+        return (int) ( temp ^ ( temp >>> 32 ));
+    }
+    
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseObjectClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseObjectClassFieldExtractor.java	2006-10-26 21:29:41 UTC (rev 7154)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseObjectClassFieldExtractor.java	2006-10-26 23:13:49 UTC (rev 7155)
@@ -104,4 +104,9 @@
             throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
         }
     }
+    
+    public int getHashCode(Object object) {
+        return getValue( object ).hashCode();
+    }
+    
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseShortClassFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseShortClassFieldExtractor.java	2006-10-26 21:29:41 UTC (rev 7154)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/extractors/BaseShortClassFieldExtractor.java	2006-10-26 23:13:49 UTC (rev 7155)
@@ -57,4 +57,8 @@
             throw new RuntimeDroolsException("This is a bug. Please report to development team: "+e.getMessage(), e);
         }
     }
+
+    public int getHashCode(Object object) {
+        return getShortValue( object );
+    }
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EqualityAssertMapComparator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EqualityAssertMapComparator.java	2006-10-26 21:29:41 UTC (rev 7154)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EqualityAssertMapComparator.java	2006-10-26 23:13:49 UTC (rev 7155)
@@ -71,6 +71,6 @@
     }
 
     public String toString() {
-        return "identity";
+        return "equality";
     }
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateFieldExtractor.java	2006-10-26 21:29:41 UTC (rev 7154)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/facttemplates/FactTemplateFieldExtractor.java	2006-10-26 23:13:49 UTC (rev 7155)
@@ -76,4 +76,7 @@
         }
     }
     
+    public int getHashCode(Object object) {
+        return getValue( object ).hashCode();
+    }
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java	2006-10-26 21:29:41 UTC (rev 7154)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Declaration.java	2006-10-26 23:13:49 UTC (rev 7155)
@@ -188,6 +188,9 @@
         return this.extractor.getBooleanValue( object );
     }
 
+    public int getHashCode(Object object) {
+        return this.extractor.getHashCode( object );
+    }
     // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
     public String toString() {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java	2006-10-26 21:29:41 UTC (rev 7154)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java	2006-10-26 23:13:49 UTC (rev 7155)
@@ -124,4 +124,7 @@
         }
     }
 
+    public int getHashCode(Object object) {
+        return getValue( object ).hashCode();
+    }
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Extractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Extractor.java	2006-10-26 21:29:41 UTC (rev 7154)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Extractor.java	2006-10-26 23:13:49 UTC (rev 7155)
@@ -48,5 +48,7 @@
     public Class getExtractToClass();
     
     public Method getNativeReadMethod();
+    
+    public int getHashCode(Object object);
 
 }
\ No newline at end of file

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	2006-10-26 21:29:41 UTC (rev 7154)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/AbstractHashTable.java	2006-10-26 23:13:49 UTC (rev 7155)
@@ -415,15 +415,13 @@
 
         public int hashCodeOf(final Object object) {
             int hashCode = this.startResult;
-            final Object value = this.extractor.getValue( object );
-            hashCode += TupleIndexHashTable.PRIME * hashCode + ((value == null) ? 0 : value.hashCode());
+            hashCode = TupleIndexHashTable.PRIME * hashCode + this.extractor.getHashCode( object );
             return this.comparator.rehash( hashCode );
         }
 
         public int hashCodeOf(final ReteTuple tuple) {
             int hashCode = this.startResult;
-            final Object value = this.declaration.getValue( tuple.get( this.declaration ).getObject() );
-            hashCode += TupleIndexHashTable.PRIME * hashCode + ((value == null) ? 0 : value.hashCode());
+            hashCode = TupleIndexHashTable.PRIME * hashCode + this.declaration.getHashCode( tuple.get( this.declaration ).getObject() );
             return this.comparator.rehash( hashCode );
         }
 
@@ -479,11 +477,11 @@
         public int hashCodeOf(final Object object) {
             int hashCode = this.startResult;
 
-            Object value = this.index0.extractor.getValue( object );
-            hashCode += TupleIndexHashTable.PRIME * hashCode + ((value == null) ? 0 : value.hashCode());
+            int hash = this.index0.extractor.getHashCode( object );
+            hashCode = TupleIndexHashTable.PRIME * hashCode + hash;
 
-            value = this.index1.extractor.getValue( object );
-            hashCode += TupleIndexHashTable.PRIME * hashCode + ((value == null) ? 0 : value.hashCode());
+            hash = this.index1.extractor.getHashCode( object );
+            hashCode = TupleIndexHashTable.PRIME * hashCode + hash;
 
             return this.comparator.rehash( hashCode );
         }
@@ -491,11 +489,9 @@
         public int hashCodeOf(final ReteTuple tuple) {
             int hashCode = this.startResult;
 
-            Object value = this.index0.declaration.getValue( tuple.get( this.index0.declaration ).getObject() );
-            hashCode += TupleIndexHashTable.PRIME * hashCode + ((value == null) ? 0 : value.hashCode());
+            hashCode = TupleIndexHashTable.PRIME * hashCode + this.index0.declaration.getHashCode( tuple.get( this.index0.declaration ).getObject() );
 
-            value = this.index1.declaration.getValue( tuple.get( this.index1.declaration ).getObject() );
-            hashCode += TupleIndexHashTable.PRIME * hashCode + ((value == null) ? 0 : value.hashCode());
+            hashCode = TupleIndexHashTable.PRIME * hashCode + this.index1.declaration.getHashCode( tuple.get( this.index1.declaration ).getObject() );
 
             return this.comparator.rehash( hashCode );
         }
@@ -590,30 +586,20 @@
         public int hashCodeOf(final Object object) {
             int hashCode = this.startResult;
 
-            Object value = this.index0.extractor.getValue( object );
-            hashCode += TupleIndexHashTable.PRIME * hashCode + ((value == null) ? 0 : value.hashCode());
+            hashCode = TupleIndexHashTable.PRIME * hashCode + this.index0.extractor.getHashCode( object );;
+            hashCode = TupleIndexHashTable.PRIME * hashCode + this.index1.extractor.getHashCode( object );;
+            hashCode = TupleIndexHashTable.PRIME * hashCode + this.index2.extractor.getHashCode( object );;
 
-            value = this.index1.extractor.getValue( object );
-            hashCode += TupleIndexHashTable.PRIME * hashCode + ((value == null) ? 0 : value.hashCode());
-
-            value = this.index2.extractor.getValue( object );
-            hashCode += TupleIndexHashTable.PRIME * hashCode + ((value == null) ? 0 : value.hashCode());
-
             return this.comparator.rehash( hashCode );
         }
 
         public int hashCodeOf(final ReteTuple tuple) {
             int hashCode = this.startResult;
 
-            Object value = this.index0.declaration.getValue( tuple.get( this.index0.declaration ).getObject() );
-            hashCode += TupleIndexHashTable.PRIME * hashCode + ((value == null) ? 0 : value.hashCode());
+            hashCode = TupleIndexHashTable.PRIME * hashCode + this.index0.declaration.getHashCode( tuple.get( this.index0.declaration ).getObject() );
+            hashCode = TupleIndexHashTable.PRIME * hashCode + this.index1.declaration.getHashCode( tuple.get( this.index1.declaration ).getObject() );
+            hashCode = TupleIndexHashTable.PRIME * hashCode + this.index2.declaration.getHashCode( tuple.get( this.index2.declaration ).getObject() );
 
-            value = this.index1.declaration.getValue( tuple.get( this.index1.declaration ).getObject() );
-            hashCode += TupleIndexHashTable.PRIME * hashCode + ((value == null) ? 0 : value.hashCode());
-
-            value = this.index2.declaration.getValue( tuple.get( this.index2.declaration ).getObject() );
-            hashCode += TupleIndexHashTable.PRIME * hashCode + ((value == null) ? 0 : value.hashCode());
-
             return this.comparator.rehash( hashCode );
         }
 

Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java	2006-10-26 21:29:41 UTC (rev 7154)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/CompositeObjectSinkAdapterTest.java	2006-10-26 23:13:49 UTC (rev 7155)
@@ -244,6 +244,10 @@
             //  Auto-generated method stub
             return null;
         }
+
+        public int getHashCode(Object object) {
+            return 0;
+        }
         
     }
     




More information about the jboss-svn-commits mailing list