[jboss-svn-commits] JBL Code SVN: r7074 - in labs/jbossrules/trunk/drools-core/src/main/java/org/drools: . common reteoo spi

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Oct 24 07:32:17 EDT 2006


Author: mark.proctor at jboss.com
Date: 2006-10-24 07:32:09 -0400 (Tue, 24 Oct 2006)
New Revision: 7074

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/FactHandle.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DefaultFactHandle.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EqualityAssertMapComparator.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/IdentityAssertMapComparator.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalFactHandle.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java
Log:
-Fixed logical assertion issues

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/FactHandle.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/FactHandle.java	2006-10-24 11:31:53 UTC (rev 7073)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/FactHandle.java	2006-10-24 11:32:09 UTC (rev 7074)
@@ -35,5 +35,5 @@
      * 
      * @return The external string form.
      */
-    String toExternalForm();
+    String toExternalForm();   
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java	2006-10-24 11:31:53 UTC (rev 7073)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java	2006-10-24 11:32:09 UTC (rev 7074)
@@ -37,6 +37,7 @@
 import org.drools.RuleBase;
 import org.drools.RuleBaseConfiguration;
 import org.drools.WorkingMemory;
+import org.drools.base.ShadowProxy;
 import org.drools.event.AgendaEventListener;
 import org.drools.event.AgendaEventSupport;
 import org.drools.event.WorkingMemoryEventListener;
@@ -51,6 +52,7 @@
 import org.drools.spi.PropagationContext;
 import org.drools.util.ObjectHashMap;
 import org.drools.util.PrimitiveLongMap;
+import org.drools.util.ObjectHashMap.ObjectEntry;
 import org.drools.util.concurrent.locks.Lock;
 import org.drools.util.concurrent.locks.ReentrantLock;
 
@@ -421,23 +423,26 @@
     public List getObjects() {
         final List list = new ArrayList( this.assertMap.size() );
 
-        //        for ( final Iterator it = this.assertMap.keySet().iterator(); it.hasNext(); ) {
-        //            list.add( ((InternalFactHandle) it.next()).getObject() );
-        //        }
+        org.drools.util.Iterator it = this.assertMap.iterator();
+        for ( ObjectEntry entry = (ObjectEntry)it.next(); entry != null; entry = (ObjectEntry)it.next() ) {
+            InternalFactHandle  handle  = (InternalFactHandle) entry.getKey();
+            Object object = ( handle.isShadowFact() ) ? ((ShadowProxy)handle.getObject()).getShadowedObject() : handle.getObject();
+            list.add( object );
+        }
         return list;
     }
 
     public List getObjects(final Class objectClass) {
-        final List list = new ArrayList();
+        final List list = new ArrayList( this.assertMap.size() );
 
-        //        for ( final Iterator it = this.assertMap.keySet().iterator(); it.hasNext(); ) {
-        //            final Object object = ((InternalFactHandle) it.next()).getObject();
-        //
-        //            if ( objectClass.isInstance( object ) ) {
-        //                list.add( object );
-        //            }
-        //        }
-
+        org.drools.util.Iterator it = this.assertMap.iterator();
+        for ( ObjectEntry entry = (ObjectEntry)it.next(); entry != null; entry = (ObjectEntry)it.next() ) {
+            InternalFactHandle  handle  = (InternalFactHandle) entry.getKey();
+            Object object = ( handle.isShadowFact() ) ? ((ShadowProxy)handle.getObject()).getShadowedObject() : handle.getObject();
+            if ( objectClass.isInstance( object ) ) {
+                list.add( object );
+            }       
+        }
         return list;
     }
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DefaultFactHandle.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DefaultFactHandle.java	2006-10-24 11:31:53 UTC (rev 7073)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DefaultFactHandle.java	2006-10-24 11:32:09 UTC (rev 7074)
@@ -40,6 +40,7 @@
     private Object            object;
     private EqualityKey       key;
     private int               objectHashCode;
+    private boolean           shadowFact;
 
     // ----------------------------------------------------------------------
     // Constructors
@@ -133,6 +134,14 @@
         this.object = null;
     }
 
+    public boolean isShadowFact() {
+        return this.shadowFact;
+    }
+
+    public void setShadowFact(boolean shadowFact) {
+        this.shadowFact = shadowFact;        
+    }    
+    
     public Object getObject() {
         return this.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-24 11:31:53 UTC (rev 7073)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EqualityAssertMapComparator.java	2006-10-24 11:32:09 UTC (rev 7074)
@@ -16,6 +16,7 @@
  * limitations under the License.
  */
 
+import org.drools.base.ShadowProxy;
 import org.drools.util.AbstractHashTable.ObjectComparator;
 
 public class EqualityAssertMapComparator
@@ -52,12 +53,16 @@
      * equals with the  identity of the  objects involved
      */
     public boolean equal(final Object o1,
-                         final Object o2) {
+                         Object o2) {
         if ( o1.getClass() == this.factHandleClass ) {
             return o1 == o2;
         }
 
-        return o1 == ((InternalFactHandle) o2).getObject() || o1.equals( ((InternalFactHandle) o2).getObject() );
+        InternalFactHandle handle = ((InternalFactHandle) o2);
+        
+        o2 = ( handle.isShadowFact() ) ? ((ShadowProxy) handle.getObject() ).getShadowedObject() : handle.getObject();
+        
+        return o1 == o2 || o1.equals( o2 );
     }
 
     public int compare(final Object o1,

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/IdentityAssertMapComparator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/IdentityAssertMapComparator.java	2006-10-24 11:31:53 UTC (rev 7073)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/IdentityAssertMapComparator.java	2006-10-24 11:32:09 UTC (rev 7074)
@@ -16,6 +16,7 @@
  * limitations under the License.
  */
 
+import org.drools.base.ShadowProxy;
 import org.drools.util.AbstractHashTable.ObjectComparator;
 
 public class IdentityAssertMapComparator
@@ -57,7 +58,9 @@
             return ((InternalFactHandle) o1).getObject() == ((InternalFactHandle) o2).getObject();
         }
 
-        return o1 == ((InternalFactHandle) o2).getObject();
+        InternalFactHandle handle = ((InternalFactHandle) o2);
+        
+        return o1 == ( ( handle.isShadowFact() ) ? ((ShadowProxy) handle.getObject() ).getShadowedObject() : handle.getObject() );
     }
 
     public int compare(final Object o1,

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalFactHandle.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalFactHandle.java	2006-10-24 11:31:53 UTC (rev 7073)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalFactHandle.java	2006-10-24 11:32:09 UTC (rev 7074)
@@ -38,4 +38,8 @@
     public void invalidate();
 
     public int getObjectHashCode();
+    
+    public boolean isShadowFact();
+    
+    public void setShadowFact(boolean shadowFact);
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java	2006-10-24 11:31:53 UTC (rev 7073)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ObjectTypeNode.java	2006-10-24 11:32:09 UTC (rev 7074)
@@ -143,6 +143,7 @@
             if ( !(handle.getObject() instanceof ShadowProxy) ) {
                 // replaces the actual object by its shadow before propagating
                 handle.setObject( this.objectType.getShadow( handle.getObject() ) );
+                handle.setShadowFact( true );
             } else {
                 ((ShadowProxy) handle.getObject()).updateProxy();
             }

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-24 11:31:53 UTC (rev 7073)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java	2006-10-24 11:32:09 UTC (rev 7074)
@@ -39,8 +39,7 @@
     }
 
     public Object getValue(final Object object) {
-        return object;
-        //return ( this.objectType.isShadowEnabled() ) ? ((ShadowProxy)object).getShadowedObject() : object;
+        return ( this.objectType.isShadowEnabled() ) ? ((ShadowProxy)object).getShadowedObject() : object;
     }
 
     public ObjectType getObjectType() {




More information about the jboss-svn-commits mailing list