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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Sep 29 14:35:43 EDT 2006


Author: mark.proctor at jboss.com
Date: 2006-09-29 14:35:39 -0400 (Fri, 29 Sep 2006)
New Revision: 6473

Added:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/Iterator.java
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/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/ObjectSink.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleSink.java
Log:
JBRULES-498 Optimised HashMap implementations
-removed modify methods

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	2006-09-29 17:35:20 UTC (rev 6472)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java	2006-09-29 18:35:39 UTC (rev 6473)
@@ -151,44 +151,6 @@
         }
     }
     
-    public void modifyObject(final InternalFactHandle handle,
-                             final PropagationContext context,
-                             final InternalWorkingMemory workingMemory) {      
-        if ( this.constraint.isAllowed( handle.getObject(),
-                                        null,
-                                        workingMemory ) ) {
-            boolean exists = false;  
-            if( hasMemory() ) {
-                final ObjectHashTable memory = (ObjectHashTable) workingMemory.getNodeMemory( this );
-                // true if the handle exists and it cannot be added
-                exists = !memory.add( handle, true );
-            }
-            if ( exists ) {
-                // handle already existed so propagate as modify
-                this.sink.propagateModifyObject( handle,
-                                                 context,
-                                                 workingMemory );                
-            } else {
-                this.sink.propagateAssertObject( handle,
-                                                 context,
-                                                 workingMemory );
-            }
-        } else {
-            boolean exists = true;  
-            if( hasMemory ) {
-                final ObjectHashTable memory = (ObjectHashTable) workingMemory.getNodeMemory( this );
-                exists = memory.remove( handle ); 
-            }
-            if ( exists ) {
-                this.sink.propagateRetractObject( handle,
-                                                  context,
-                                                  workingMemory,
-                                                  false );
-            }
-        }
-    }
-    
-
     public void updateSink(ObjectSink sink,
                            PropagationContext context,
                            InternalWorkingMemory workingMemory) {

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	2006-09-29 17:35:20 UTC (rev 6472)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/JoinNode.java	2006-09-29 18:35:39 UTC (rev 6473)
@@ -207,53 +207,8 @@
         for ( FactEntry entry = ( FactEntry ) it.next(); entry != null; entry = ( FactEntry ) it.next() ) {
             sink.propagateRetractTuple( leftTuple, entry.getFactHandle(), context, workingMemory );
         }        
-    }
-    
-    public void modifyTuple(final ReteTuple leftTuple,
-                            final PropagationContext context,
-                            final InternalWorkingMemory workingMemory) {
-        final BetaMemory memory = (BetaMemory) workingMemory.getNodeMemory( this );
-        
-        if ( ! memory.getTupleMemory().contains( leftTuple ) ) {
-            assertTuple( leftTuple, context, workingMemory );
-        }
+    }        
 
-        Iterator iterator;
-        if ( leftTuple.isFieldIndexed() ) {
-            iterator = memory.getObjectMemory().iterator(leftTuple.getFieldIndexHashCode());
-        } else {
-            iterator = memory.getObjectMemory().iterator();
-        }
-        
-        for ( FactEntry entry = (FactEntry) iterator.next(); entry != null; entry = ( FactEntry )entry.getNext() ) {
-            InternalFactHandle handle = entry.getFactHandle();
-            if ( this.constraints.isAllowed( handle, leftTuple, workingMemory ) ) {
-                this.sink.propagateModifyTuple( leftTuple, handle, context, workingMemory );
-            } else {   
-                this.sink.propagateRetractTuple( leftTuple, handle, context, workingMemory );
-            }
-        }        
-    }    
-    
-    public void modifyObject(final InternalFactHandle handle,
-                            final PropagationContext context,
-                            final InternalWorkingMemory workingMemory) {
-        final BetaMemory memory = (BetaMemory) workingMemory.getNodeMemory( this );
-        
-        if ( ! memory.getObjectMemory().contains( handle ) ) {
-            assertObject( handle, context, workingMemory );
-        }
-                
-        Iterator it = memory.getTupleMemory().iterator();
-        for ( ReteTuple tuple = ( ReteTuple ) it.next(); tuple != null; tuple = ( ReteTuple ) it.next() ) {
-            if ( this.constraints.isAllowed( handle, tuple, workingMemory ) ) {
-                this.sink.propagateModifyTuple( tuple, handle, context, workingMemory );
-            } else {
-                this.sink.propagateRetractTuple( tuple, handle, context, workingMemory );
-            }
-        }           
-    }       
-
     /* (non-Javadoc)
      * @see org.drools.reteoo.BaseNode#updateNewNode(org.drools.reteoo.WorkingMemoryImpl, org.drools.spi.PropagationContext)
      */

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	2006-09-29 17:35:20 UTC (rev 6472)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java	2006-09-29 18:35:39 UTC (rev 6473)
@@ -192,23 +192,6 @@
         }
     }
 
-    public void modifyObject(final InternalFactHandle handle,
-                             final PropagationContext context,
-                             final InternalWorkingMemory workingMemory) {
-        if ( this.hasMemory ) {
-            ObjectHashMap map = (ObjectHashMap) workingMemory.getNodeMemory( this );
-            LinkedList list = (LinkedList) map.get( handle );
-            this.sink.createAndPropagateModifyTuple( list,
-                                                     context,
-                                                     workingMemory );
-        } else {
-            ReteTuple tuple = new ReteTuple( handle );
-            this.sink.createAndPropagateModifyTuple( tuple,
-                                                     context,
-                                                     workingMemory );
-        }
-    }
-
     public void updateSink(TupleSink sink,
                            PropagationContext context,
                            InternalWorkingMemory workingMemory) {

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	2006-09-29 17:35:20 UTC (rev 6472)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/NotNode.java	2006-09-29 18:35:39 UTC (rev 6473)
@@ -234,66 +234,7 @@
                                              context,
                                              workingMemory );            
         }    
-    }
-
-    public void modifyTuple(ReteTuple leftTuple,
-                            PropagationContext context,
-                            InternalWorkingMemory workingMemory) {
-        final BetaMemory memory = (BetaMemory) workingMemory.getNodeMemory( this );
-        
-        // Must use the tuple in memory as it has the tuple matches count
-        // If it doesn't exist then propagate as an assert
-        ReteTuple tuple = ( ReteTuple ) memory.getTupleMemory().remove( leftTuple );
-        if ( tuple == null ) {
-            assertTuple( leftTuple, context, workingMemory );
-        }
-        
-        Iterator iterator;
-        if ( leftTuple.isFieldIndexed() ) {
-            iterator = memory.getObjectMemory().iterator(leftTuple.getFieldIndexHashCode());
-        } else {
-            iterator = memory.getObjectMemory().iterator();
-        }
-        
-        int matches = tuple.getMatches();
-        
-        for ( FactEntry entry = (FactEntry) iterator.next(); entry != null; entry = ( FactEntry )entry.getNext() ) {
-            InternalFactHandle handle = entry.getFactHandle();
-            if ( !this.constraints.isAllowed( handle, leftTuple, workingMemory ) ) {                                   
-                matches--;
-            }
-        } 
-        
-        if  ( tuple.getMatches() != 0 && matches  == 0 ) {
-            this.sink.propagateAssertTuple( leftTuple,
-                                            context,
-                                            workingMemory );            
-        } else if ( tuple.getMatches() == 0 && matches != 0 )  {
-            this.sink.propagateRetractTuple( leftTuple,
-                                             context,
-                                             workingMemory );            
-        }
-    }
-
-    public void modifyObject(InternalFactHandle handle,
-                             PropagationContext context,
-                             InternalWorkingMemory workingMemory) {
-        final BetaMemory memory = (BetaMemory) workingMemory.getNodeMemory( this );
-        if ( !memory.getObjectMemory().contains( handle ) ) {
-            assertObject( handle, context, workingMemory );
-        }
-        
-        Iterator it = memory.getTupleMemory().iterator();
-        for ( ReteTuple tuple = ( ReteTuple ) it.next(); tuple != null; tuple = ( ReteTuple ) it.next() ) {
-            if ( this.constraints.isAllowed( handle, tuple, workingMemory ) ) {
-                int matches = tuple.getMatches();
-                tuple.setMatches( matches + 1 );
-                if ( matches == 0 ) {
-                    this.sink.propagateRetractTuple( tuple, context, workingMemory );
-                }
-            }
-        }        
-    }            
+    }          
     
     /* (non-Javadoc)
      * @see org.drools.reteoo.BaseNode#updateNewNode(org.drools.reteoo.WorkingMemoryImpl, org.drools.spi.PropagationContext)

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectSink.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectSink.java	2006-09-29 17:35:20 UTC (rev 6472)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectSink.java	2006-09-29 18:35:39 UTC (rev 6473)
@@ -58,9 +58,5 @@
      */
     void retractObject(InternalFactHandle handle,
                        PropagationContext context,
-                       InternalWorkingMemory workingMemory);
-    
-    void modifyObject(InternalFactHandle handle,
-                      PropagationContext context,
-                      InternalWorkingMemory workingMemory);    
+                       InternalWorkingMemory workingMemory);  
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java	2006-09-29 17:35:20 UTC (rev 6472)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java	2006-09-29 18:35:39 UTC (rev 6473)
@@ -92,12 +92,6 @@
         this.sink.propagateRetractObject( (InternalFactHandle) tuple.get( this.column ), context, workingMemory, true );
     }
 
-    public void modifyTuple(final ReteTuple tuple,
-                            final PropagationContext context,
-                            final InternalWorkingMemory workingMemory) {
-        this.sink.propagateModifyObject( (InternalFactHandle) tuple.get( this.column ), context, workingMemory );
-    }
-
     /* (non-Javadoc)
      * @see org.drools.reteoo.BaseNode#attach()
      */

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleSink.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleSink.java	2006-09-29 17:35:20 UTC (rev 6472)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/TupleSink.java	2006-09-29 18:35:39 UTC (rev 6473)
@@ -54,8 +54,4 @@
     void retractTuple(ReteTuple tuple,
                       PropagationContext context,
                       InternalWorkingMemory workingMemory);
-    
-    void modifyTuple(ReteTuple tuple,
-                     PropagationContext context,
-                     InternalWorkingMemory workingMemory);    
 }

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/Iterator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/Iterator.java	2006-09-29 17:35:20 UTC (rev 6472)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/util/Iterator.java	2006-09-29 18:35:39 UTC (rev 6473)
@@ -0,0 +1,5 @@
+package org.drools.util;
+
+public interface Iterator {
+    public Entry next();
+}
\ No newline at end of file




More information about the jboss-svn-commits mailing list