[jboss-svn-commits] JBL Code SVN: r6749 - in labs/jbossrules/trunk/drools-core/src/main/java/org/drools: base/evaluators reteoo util

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Oct 11 16:27:35 EDT 2006


Author: mark.proctor at jboss.com
Date: 2006-10-11 16:27:30 -0400 (Wed, 11 Oct 2006)
New Revision: 6749

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/IntegerFactory.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/BetaNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/LinkedList.java
Log:
JBRULES-498 Optimised HashMap implementations
-minor tweaks

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/IntegerFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/IntegerFactory.java	2006-10-11 19:54:48 UTC (rev 6748)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/evaluators/IntegerFactory.java	2006-10-11 20:27:30 UTC (rev 6749)
@@ -71,13 +71,11 @@
         }
 
         public boolean evaluate(final Object object1,
-                                final Object object2) {
-//            return ((Integer) object1).intValue() == ((Integer) object2).intValue(); 
-            
+                                final Object object2) {             
             if ( object1 == null ) {
                 return object2 == null;
             }
-            return ((Number) object1).equals( object2 );
+            return object1.equals( object2 );
         }
 
         public String toString() {
@@ -98,12 +96,11 @@
         }
 
         public boolean evaluate(final Object object1,
-                                final Object object2) {
-//            return ((Integer) object1).intValue() != ((Integer) object2).intValue();             
+                                final Object object2) {             
             if ( object1 == null ) {
                 return (object2 != null);
             }
-            return !((Number) object1).equals( object2 );
+            return !object1.equals( object2 );
         }
 
         public String toString() {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/BetaNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/BetaNode.java	2006-10-11 19:54:48 UTC (rev 6748)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/BetaNode.java	2006-10-11 20:27:30 UTC (rev 6749)
@@ -242,6 +242,7 @@
         BetaMemory memory = null;
         
         if ( constraints != null ) {
+            
             for ( LinkedListEntry entry = (LinkedListEntry) constraints.getFirst(); entry != null; entry = (LinkedListEntry) entry.getNext() ) {
                 BetaNodeFieldConstraint constraint = (BetaNodeFieldConstraint) entry.getObject();
                 if ( constraint.getClass() == VariableConstraint.class ) {
@@ -249,8 +250,11 @@
                     FieldExtractor extractor = variableConstraint.getFieldExtractor();
                     Evaluator evaluator = variableConstraint.getEvaluator();
                     if ( evaluator.getOperator() == Operator.EQUAL ) {
-                        // remove this entry                    
-                        //constraints.remove( entry );
+                        // make suret the indexed constraint is first
+                        if  ( constraints.getFirst() != entry  ) {
+                            constraints.remove( entry );
+                            constraints.insertAfter( null, entry );
+                        }
                         memory = new BetaMemory( new TupleHashTable(),
                                                  new FieldIndexHashTable( extractor,
                                                                           variableConstraint.getRequiredDeclarations()[0] ) );

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/LinkedList.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/LinkedList.java	2006-10-11 19:54:48 UTC (rev 6748)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/LinkedList.java	2006-10-11 20:27:30 UTC (rev 6749)
@@ -145,6 +145,27 @@
         return node;
     }
 
+    public void insertAfter(LinkedListNode existingNode, LinkedListNode newNode) {
+        if  ( newNode.getPrevious() != null || newNode.getNext() != null ) {
+            //do nothing if this node is already inserted somewhere
+            return;
+        }
+
+        if (existingNode == null ) {
+            // if existing node is null, then insert it as a first node
+            LinkedListNode node = this.firstNode;
+            node.setPrevious( newNode );
+            newNode.setNext( node );
+            this.firstNode = newNode;
+        } else {
+            existingNode.getNext().setPrevious( newNode );
+            newNode.setNext( existingNode.getNext() );
+            existingNode.setNext( newNode );
+            newNode.setPrevious( existingNode );
+        }
+        this.size++;
+    }
+    
     /**
      * Remove the last node from the list. The previous node then becomes the last node. If this is the last 
      * node then both first and last node references are set to null.




More information about the jboss-svn-commits mailing list