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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Oct 19 18:47:07 EDT 2006


Author: tirelli
Date: 2006-10-19 18:45:59 -0400 (Thu, 19 Oct 2006)
New Revision: 6934

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BetaConstraints.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DefaultBetaConstraints.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DoubleBetaConstraints.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EmptyBetaConstraints.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InstanceEqualsConstraint.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InstanceNotEqualsConstraint.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/RuleFlowNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SingleBetaConstraints.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/TripleBetaConstraints.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/JoinNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ContextEntry.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueRestriction.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableConstraint.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ReturnValueExpression.java
Log:
JBRULES-527: Fixing compilation problems


Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BetaConstraints.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BetaConstraints.java	2006-10-19 21:15:01 UTC (rev 6933)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BetaConstraints.java	2006-10-19 22:45:59 UTC (rev 6934)
@@ -6,9 +6,9 @@
 
 public interface BetaConstraints {
 
-    public void updateFromTuple(ReteTuple tuple);
+    public void updateFromTuple(InternalWorkingMemory workingMemory, ReteTuple tuple);
 
-    public void updateFromFactHandle(InternalFactHandle handle);
+    public void updateFromFactHandle(InternalWorkingMemory workingMemory, InternalFactHandle handle);
 
     public boolean isAllowedCachedLeft(Object object);
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DefaultBetaConstraints.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DefaultBetaConstraints.java	2006-10-19 21:15:01 UTC (rev 6933)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DefaultBetaConstraints.java	2006-10-19 22:45:59 UTC (rev 6934)
@@ -90,18 +90,18 @@
     /* (non-Javadoc)
      * @see org.drools.common.BetaNodeConstraints#updateFromTuple(org.drools.reteoo.ReteTuple)
      */
-    public void updateFromTuple(final ReteTuple tuple) {
+    public void updateFromTuple(final InternalWorkingMemory workingMemory, final ReteTuple tuple) {
         for ( ContextEntry context = this.contexts; context != null; context = context.getNext() ) {
-            context.updateFromTuple( tuple );
+            context.updateFromTuple( workingMemory, tuple );
         }
     }
 
     /* (non-Javadoc)
      * @see org.drools.common.BetaNodeConstraints#updateFromFactHandle(org.drools.common.InternalFactHandle)
      */
-    public void updateFromFactHandle(final InternalFactHandle handle) {
+    public void updateFromFactHandle(final InternalWorkingMemory workingMemory, final InternalFactHandle handle) {
         for ( ContextEntry context = this.contexts; context != null; context = context.getNext() ) {
-            context.updateFromFactHandle( handle );
+            context.updateFromFactHandle( workingMemory, handle );
         }
     }
 

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DoubleBetaConstraints.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DoubleBetaConstraints.java	2006-10-19 21:15:01 UTC (rev 6933)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DoubleBetaConstraints.java	2006-10-19 22:45:59 UTC (rev 6934)
@@ -87,17 +87,17 @@
     /* (non-Javadoc)
      * @see org.drools.common.BetaNodeConstraints#updateFromTuple(org.drools.reteoo.ReteTuple)
      */
-    public void updateFromTuple(final ReteTuple tuple) {
-        this.context0.updateFromTuple( tuple );
-        this.context1.updateFromTuple( tuple );
+    public void updateFromTuple(final InternalWorkingMemory workingMemory, final ReteTuple tuple) {
+        this.context0.updateFromTuple( workingMemory, tuple );
+        this.context1.updateFromTuple( workingMemory, tuple );
     }
 
     /* (non-Javadoc)
      * @see org.drools.common.BetaNodeConstraints#updateFromFactHandle(org.drools.common.InternalFactHandle)
      */
-    public void updateFromFactHandle(final InternalFactHandle handle) {
-        this.context0.updateFromFactHandle( handle );
-        this.context1.updateFromFactHandle( handle );
+    public void updateFromFactHandle(final InternalWorkingMemory workingMemory, final InternalFactHandle handle) {
+        this.context0.updateFromFactHandle( workingMemory, handle );
+        this.context1.updateFromFactHandle( workingMemory, handle );
     }
 
     /* (non-Javadoc)

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EmptyBetaConstraints.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EmptyBetaConstraints.java	2006-10-19 21:15:01 UTC (rev 6933)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EmptyBetaConstraints.java	2006-10-19 22:45:59 UTC (rev 6934)
@@ -46,13 +46,13 @@
     /* (non-Javadoc)
      * @see org.drools.common.BetaNodeConstraints#updateFromTuple(org.drools.reteoo.ReteTuple)
      */
-    public void updateFromTuple(final ReteTuple tuple) {
+    public void updateFromTuple(final InternalWorkingMemory workingMemory, final ReteTuple tuple) {
     }
 
     /* (non-Javadoc)
      * @see org.drools.common.BetaNodeConstraints#updateFromFactHandle(org.drools.common.InternalFactHandle)
      */
-    public void updateFromFactHandle(final InternalFactHandle handle) {
+    public void updateFromFactHandle(final InternalWorkingMemory workingMemory, final InternalFactHandle handle) {
     }
 
     /* (non-Javadoc)

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InstanceEqualsConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InstanceEqualsConstraint.java	2006-10-19 21:15:01 UTC (rev 6933)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InstanceEqualsConstraint.java	2006-10-19 22:45:59 UTC (rev 6934)
@@ -110,13 +110,12 @@
             this.entry = entry;
         }
 
-        public void updateFromTuple(final ReteTuple tuple) {
+        public void updateFromTuple(final InternalWorkingMemory workingMemory, final ReteTuple tuple) {
             this.left = tuple.get( this.column.getFactIndex() ).getObject();
-        }
+        } 
 
-        public void updateFromFactHandle(final InternalFactHandle handle) {
+        public void updateFromFactHandle(final InternalWorkingMemory workingMemory, final InternalFactHandle handle) {
             this.right = handle.getObject();
-
         }
     }
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InstanceNotEqualsConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InstanceNotEqualsConstraint.java	2006-10-19 21:15:01 UTC (rev 6933)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InstanceNotEqualsConstraint.java	2006-10-19 22:45:59 UTC (rev 6934)
@@ -105,11 +105,11 @@
             this.entry = entry;
         }
 
-        public void updateFromTuple(final ReteTuple tuple) {
+        public void updateFromTuple(final InternalWorkingMemory workingMemory, final ReteTuple tuple) {
             this.left = tuple.get( this.column.getFactIndex() ).getObject();
         }
 
-        public void updateFromFactHandle(final InternalFactHandle handle) {
+        public void updateFromFactHandle(final InternalWorkingMemory workingMemory, final InternalFactHandle handle) {
             this.right = handle.getObject();
 
         }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/RuleFlowNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/RuleFlowNode.java	2006-10-19 21:15:01 UTC (rev 6933)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/RuleFlowNode.java	2006-10-19 22:45:59 UTC (rev 6934)
@@ -38,6 +38,7 @@
         this.name = name;
         this.agenda = agenda;
         this.queue = new BinaryHeapQueue( DepthConflictResolver.getInstance() );
+        this.lock = new Object();
     }
 
     /* (non-Javadoc)

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SingleBetaConstraints.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SingleBetaConstraints.java	2006-10-19 21:15:01 UTC (rev 6933)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/SingleBetaConstraints.java	2006-10-19 22:45:59 UTC (rev 6934)
@@ -69,15 +69,15 @@
     /* (non-Javadoc)
      * @see org.drools.common.BetaNodeConstraints#updateFromTuple(org.drools.reteoo.ReteTuple)
      */
-    public void updateFromTuple(final ReteTuple tuple) {
-        this.context.updateFromTuple( tuple );
+    public void updateFromTuple(final InternalWorkingMemory workingMemory, final ReteTuple tuple) {
+        this.context.updateFromTuple( workingMemory, tuple );
     }
 
     /* (non-Javadoc)
      * @see org.drools.common.BetaNodeConstraints#updateFromFactHandle(org.drools.common.InternalFactHandle)
      */
-    public void updateFromFactHandle(final InternalFactHandle handle) {
-        this.context.updateFromFactHandle( handle );
+    public void updateFromFactHandle(final InternalWorkingMemory workingMemory, final InternalFactHandle handle) {
+        this.context.updateFromFactHandle( workingMemory, handle );
     }
 
     /* (non-Javadoc)

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/TripleBetaConstraints.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/TripleBetaConstraints.java	2006-10-19 21:15:01 UTC (rev 6933)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/TripleBetaConstraints.java	2006-10-19 22:45:59 UTC (rev 6934)
@@ -131,19 +131,19 @@
     /* (non-Javadoc)
      * @see org.drools.common.BetaNodeConstraints#updateFromTuple(org.drools.reteoo.ReteTuple)
      */
-    public void updateFromTuple(final ReteTuple tuple) {
-        this.context0.updateFromTuple( tuple );
-        this.context1.updateFromTuple( tuple );
-        this.context2.updateFromTuple( tuple );
+    public void updateFromTuple(final InternalWorkingMemory workingMemory, final ReteTuple tuple) {
+        this.context0.updateFromTuple( workingMemory, tuple );
+        this.context1.updateFromTuple( workingMemory, tuple );
+        this.context2.updateFromTuple( workingMemory, tuple );
     }
 
     /* (non-Javadoc)
      * @see org.drools.common.BetaNodeConstraints#updateFromFactHandle(org.drools.common.InternalFactHandle)
      */
-    public void updateFromFactHandle(final InternalFactHandle handle) {
-        this.context0.updateFromFactHandle( handle );
-        this.context1.updateFromFactHandle( handle );
-        this.context2.updateFromFactHandle( handle );
+    public void updateFromFactHandle(final InternalWorkingMemory workingMemory, final InternalFactHandle handle) {
+        this.context0.updateFromFactHandle( workingMemory, handle );
+        this.context1.updateFromFactHandle( workingMemory, handle );
+        this.context2.updateFromFactHandle( workingMemory, handle );
     }
 
     /* (non-Javadoc)

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-10-19 21:15:01 UTC (rev 6933)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/JoinNode.java	2006-10-19 22:45:59 UTC (rev 6934)
@@ -109,7 +109,7 @@
         memory.getTupleMemory().add( leftTuple );
 
         final Iterator it = memory.getObjectMemory().iterator( leftTuple );
-        this.constraints.updateFromTuple( leftTuple );
+        this.constraints.updateFromTuple( workingMemory, leftTuple );
         for ( FactEntry entry = (FactEntry) it.next(); entry != null; entry = (FactEntry) it.next() ) {
             final InternalFactHandle handle = entry.getFactHandle();
             if ( this.constraints.isAllowedCachedLeft( handle.getObject() ) ) {
@@ -146,7 +146,7 @@
         memory.getObjectMemory().add( handle );
 
         final Iterator it = memory.getTupleMemory().iterator();
-        this.constraints.updateFromFactHandle( handle );
+        this.constraints.updateFromFactHandle( workingMemory, handle );
         for ( ReteTuple tuple = (ReteTuple) it.next(); tuple != null; tuple = (ReteTuple) it.next() ) {
             if ( this.constraints.isAllowedCachedRight( tuple ) ) {
                 this.sink.propagateAssertTuple( tuple,
@@ -177,7 +177,7 @@
         }
 
         final Iterator it = memory.getTupleMemory().iterator();
-        this.constraints.updateFromFactHandle( handle );
+        this.constraints.updateFromFactHandle( workingMemory, handle );
         for ( ReteTuple tuple = (ReteTuple) it.next(); tuple != null; tuple = (ReteTuple) it.next() ) {
             if ( this.constraints.isAllowedCachedRight( tuple ) ) {
                 this.sink.propagateRetractTuple( tuple,
@@ -211,7 +211,7 @@
         }
 
         final Iterator it = memory.getObjectMemory().iterator( leftTuple );
-        this.constraints.updateFromTuple( leftTuple );
+        this.constraints.updateFromTuple( workingMemory, leftTuple );
         for ( FactEntry entry = (FactEntry) it.next(); entry != null; entry = (FactEntry) it.next() ) {
             final InternalFactHandle handle = entry.getFactHandle();
             if ( this.constraints.isAllowedCachedLeft( handle.getObject() ) ) {
@@ -237,7 +237,7 @@
         final Iterator tupleIter = memory.getTupleMemory().iterator();
         for ( ReteTuple tuple = (ReteTuple) tupleIter.next(); tuple != null; tuple = (ReteTuple) tupleIter.next() ) {
             final Iterator objectIter = memory.getObjectMemory().iterator( tuple );
-            this.constraints.updateFromTuple( tuple );
+            this.constraints.updateFromTuple( workingMemory, tuple );
             for ( FactEntry entry = (FactEntry) objectIter.next(); entry != null; entry = (FactEntry) objectIter.next() ) {
                 final InternalFactHandle handle = entry.getFactHandle();
                 if ( this.constraints.isAllowedCachedLeft( handle.getObject() ) ) {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ContextEntry.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ContextEntry.java	2006-10-19 21:15:01 UTC (rev 6933)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ContextEntry.java	2006-10-19 22:45:59 UTC (rev 6934)
@@ -1,6 +1,7 @@
 package org.drools.rule;
 
 import org.drools.common.InternalFactHandle;
+import org.drools.common.InternalWorkingMemory;
 import org.drools.reteoo.ReteTuple;
 
 public interface ContextEntry {
@@ -9,8 +10,8 @@
 
     public void setNext(ContextEntry entry);
 
-    public void updateFromTuple(ReteTuple tuple);
+    public void updateFromTuple(InternalWorkingMemory workingMemory, ReteTuple tuple);
 
-    public void updateFromFactHandle(InternalFactHandle handle);
+    public void updateFromFactHandle(InternalWorkingMemory workingMemory, InternalFactHandle handle);
 
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java	2006-10-19 21:15:01 UTC (rev 6933)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java	2006-10-19 22:45:59 UTC (rev 6934)
@@ -17,14 +17,15 @@
  */
 
 import org.drools.RuntimeDroolsException;
-import org.drools.WorkingMemory;
-import org.drools.spi.AlphaNodeFieldConstraint;
+import org.drools.common.InternalFactHandle;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.reteoo.ReteTuple;
+import org.drools.spi.BetaNodeFieldConstraint;
 import org.drools.spi.PredicateExpression;
-import org.drools.spi.Tuple;
 
 public class PredicateConstraint
     implements
-    AlphaNodeFieldConstraint {
+    BetaNodeFieldConstraint {
 
     /**
      * 
@@ -84,21 +85,6 @@
         return "[PredicateConstraint declarations=" + this.requiredDeclarations + "]";
     }
 
-    public boolean isAllowed(final Object object,
-                             final Tuple tuple,
-                             final WorkingMemory workingMemory) {
-        try {
-            return this.expression.evaluate( object,
-                                             tuple,
-                                             this.declaration,
-                                             this.requiredDeclarations,
-                                             workingMemory );
-        } catch ( final Exception e ) {
-            throw new RuntimeDroolsException( e );
-        }
-
-    }
-
     public int hashCode() {
         return this.expression.hashCode();
     }
@@ -138,4 +124,70 @@
 
         return this.expression.equals( other.expression );
     }
-};
\ No newline at end of file
+
+    public ContextEntry getContextEntry() {
+        return new PredicateContextEntry();
+    }
+
+    public boolean isAllowedCachedLeft(ContextEntry context,
+                                       Object object) {
+        try {
+            PredicateContextEntry ctx = (PredicateContextEntry) context;
+            return this.expression.evaluate( object,
+                                      ctx.leftTuple,
+                                      declaration,
+                                      requiredDeclarations,
+                                      ctx.workingMemory );
+        } catch ( Exception e ) {
+            throw new RuntimeDroolsException("Exception executing predicate "+this.expression, e);
+        }
+    }
+
+    public boolean isAllowedCachedRight(ReteTuple tuple,
+                                        ContextEntry context) {
+        try {
+            PredicateContextEntry ctx = (PredicateContextEntry) context;
+            return this.expression.evaluate( ctx.rightObject,
+                                      tuple,
+                                      declaration,
+                                      requiredDeclarations,
+                                      ctx.workingMemory );
+        } catch ( Exception e ) {
+            throw new RuntimeDroolsException("Exception executing predicate "+this.expression, e);
+        }
+    }
+
+    public static class PredicateContextEntry
+        implements
+        ContextEntry {
+        public ReteTuple             leftTuple;
+        public Object                rightObject;
+        public InternalWorkingMemory workingMemory;
+        
+        private ContextEntry         entry;
+
+        public PredicateContextEntry() {
+        }
+
+        public ContextEntry getNext() {
+            return this.entry;
+        }
+
+        public void setNext(final ContextEntry entry) {
+            this.entry = entry;
+        }
+
+        public void updateFromFactHandle(InternalWorkingMemory workingMemory,
+                                         InternalFactHandle handle) {
+            this.workingMemory = workingMemory;
+            this.rightObject = handle.getObject();
+        }
+
+        public void updateFromTuple(InternalWorkingMemory workingMemory,
+                                    ReteTuple tuple) {
+            this.workingMemory = workingMemory;
+            this.leftTuple = tuple;
+        }
+    }
+
+}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java	2006-10-19 21:15:01 UTC (rev 6933)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java	2006-10-19 22:45:59 UTC (rev 6934)
@@ -16,16 +16,18 @@
  * limitations under the License.
  */
 
-import org.drools.WorkingMemory;
-import org.drools.spi.AlphaNodeFieldConstraint;
+import org.drools.RuntimeDroolsException;
+import org.drools.common.InternalFactHandle;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.reteoo.ReteTuple;
+import org.drools.spi.BetaNodeFieldConstraint;
 import org.drools.spi.Evaluator;
 import org.drools.spi.FieldExtractor;
 import org.drools.spi.ReturnValueExpression;
-import org.drools.spi.Tuple;
 
 public class ReturnValueConstraint
     implements
-    AlphaNodeFieldConstraint {
+    BetaNodeFieldConstraint {
 
     /**
      * 
@@ -75,15 +77,6 @@
         return this.restriction.getEvaluator();
     }
 
-    public boolean isAllowed(final Object object,
-                             final Tuple tuple,
-                             final WorkingMemory workingMemory) {
-        return this.restriction.isAllowed( this.fieldExtractor,
-                                           object,
-                                           tuple,
-                                           workingMemory );
-    }
-
     public String toString() {
         return "[ReturnValueConstraint fieldExtractor=" + this.fieldExtractor + " evaluator=" + getEvaluator() + " declarations=" + getRequiredDeclarations() + "]";
     }
@@ -109,4 +102,70 @@
 
         return this.fieldExtractor.equals( other.fieldExtractor ) && this.restriction.equals( other.restriction );
     }
+
+    public ContextEntry getContextEntry() {
+        return new ReturnValueContextEntry();
+    }
+
+    public boolean isAllowedCachedLeft(ContextEntry context,
+                                       Object object) {
+        try {
+            ReturnValueContextEntry ctx = (ReturnValueContextEntry) context;
+            return this.restriction.isAllowed( this.fieldExtractor,
+                                               object,
+                                               ctx.leftTuple,
+                                               ctx.workingMemory );
+        } catch ( Exception e ) {
+            throw new RuntimeDroolsException( "Exception executing ReturnValue constraint " + this.restriction,
+                                              e );
+        }
+    }
+
+    public boolean isAllowedCachedRight(ReteTuple tuple,
+                                        ContextEntry context) {
+        try {
+            ReturnValueContextEntry ctx = (ReturnValueContextEntry) context;
+            return this.restriction.isAllowed( this.fieldExtractor,
+                                               ctx.rightObject,
+                                               tuple,
+                                               ctx.workingMemory );
+        } catch ( Exception e ) {
+            throw new RuntimeDroolsException( "Exception executing ReturnValue constraint " + this.restriction,
+                                              e );
+        }
+    }
+
+    public static class ReturnValueContextEntry
+        implements
+        ContextEntry {
+        public ReteTuple             leftTuple;
+        public Object                rightObject;
+        public InternalWorkingMemory workingMemory;
+
+        private ContextEntry         entry;
+
+        public ReturnValueContextEntry() {
+        }
+
+        public ContextEntry getNext() {
+            return this.entry;
+        }
+
+        public void setNext(final ContextEntry entry) {
+            this.entry = entry;
+        }
+
+        public void updateFromFactHandle(InternalWorkingMemory workingMemory,
+                                         InternalFactHandle handle) {
+            this.workingMemory = workingMemory;
+            this.rightObject = handle.getObject();
+        }
+
+        public void updateFromTuple(InternalWorkingMemory workingMemory,
+                                    ReteTuple tuple) {
+            this.workingMemory = workingMemory;
+            this.leftTuple = tuple;
+        }
+    }
+
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueRestriction.java	2006-10-19 21:15:01 UTC (rev 6933)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueRestriction.java	2006-10-19 22:45:59 UTC (rev 6934)
@@ -20,6 +20,8 @@
 
 import org.drools.RuntimeDroolsException;
 import org.drools.WorkingMemory;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.reteoo.ReteTuple;
 import org.drools.spi.Evaluator;
 import org.drools.spi.Extractor;
 import org.drools.spi.Restriction;
@@ -107,6 +109,22 @@
         }
     }
 
+    public boolean isAllowed(Extractor extractor,
+                             Object object,
+                             InternalWorkingMemory workingMemoiry) {
+        throw new UnsupportedOperationException( "does not support method call isAllowed(Object object, InternalWorkingMemory workingMemoiry)" );
+    }
+
+    public boolean isAllowedCachedLeft(ContextEntry context,
+                                       Object object) {
+        throw new UnsupportedOperationException( "does not support method call isAllowed(Object object, InternalWorkingMemory workingMemoiry)" );
+    }
+
+    public boolean isAllowedCachedRight(ReteTuple tuple,
+                                        ContextEntry context) {
+        throw new UnsupportedOperationException( "does not support method call isAllowed(Object object, InternalWorkingMemory workingMemoiry)" );
+    }
+    
     public int hashCode() {
         final int PRIME = 31;
         int result = 1;
@@ -138,4 +156,5 @@
 
         return this.expression.equals( other.expression );
     }
+
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableConstraint.java	2006-10-19 21:15:01 UTC (rev 6933)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableConstraint.java	2006-10-19 22:45:59 UTC (rev 6934)
@@ -17,6 +17,7 @@
  */
 
 import org.drools.common.InternalFactHandle;
+import org.drools.common.InternalWorkingMemory;
 import org.drools.reteoo.ReteTuple;
 import org.drools.spi.BetaNodeFieldConstraint;
 import org.drools.spi.Evaluator;
@@ -26,19 +27,11 @@
     implements
     BetaNodeFieldConstraint {
 
-    /**
-     * 
-     */
     private static final long         serialVersionUID = 320L;
 
     private final FieldExtractor      fieldExtractor;
     private final VariableRestriction restriction;
 
-    private static final byte         TYPE_BOOLEAN     = 0;
-    private static final byte         TYPE_FLOAT       = 1;
-    private static final byte         TYPE_INTEGER     = 2;
-    private static final byte         TYPE_OBJECT      = 3;
-
     public VariableConstraint(final FieldExtractor fieldExtractor,
                               final Declaration declaration,
                               final Evaluator evaluator) {
@@ -154,11 +147,11 @@
                    declaration );
         }
 
-        public void updateFromTuple(final ReteTuple tuple) {
+        public void updateFromTuple(final InternalWorkingMemory workingMemory, final ReteTuple tuple) {
             this.left = this.declaration.getExtractor().getValue( tuple.get( this.declaration ).getObject() );
         }
 
-        public void updateFromFactHandle(final InternalFactHandle handle) {
+        public void updateFromFactHandle(final InternalWorkingMemory workingMemory, final InternalFactHandle handle) {
             this.right = this.extractor.getValue( handle.getObject() );
         }
     }
@@ -173,11 +166,11 @@
                    declaration );
         }
 
-        public void updateFromTuple(final ReteTuple tuple) {
+        public void updateFromTuple(final InternalWorkingMemory workingMemory, final ReteTuple tuple) {
             this.left = this.declaration.getExtractor().getLongValue( tuple.get( this.declaration ).getObject() );
         }
 
-        public void updateFromFactHandle(final InternalFactHandle handle) {
+        public void updateFromFactHandle(final InternalWorkingMemory workingMemory, final InternalFactHandle handle) {
             this.right = this.extractor.getLongValue( handle.getObject() );
         }
     }
@@ -192,11 +185,11 @@
                    declaration );
         }
 
-        public void updateFromTuple(final ReteTuple tuple) {
+        public void updateFromTuple(final InternalWorkingMemory workingMemory, final ReteTuple tuple) {
             this.left = this.declaration.getExtractor().getDoubleValue( tuple.get( this.declaration ).getObject() );
         }
 
-        public void updateFromFactHandle(final InternalFactHandle handle) {
+        public void updateFromFactHandle(final InternalWorkingMemory workingMemory, final InternalFactHandle handle) {
             this.right = this.extractor.getDoubleValue( handle.getObject() );
         }
     }
@@ -211,11 +204,11 @@
                    declaration );
         }
 
-        public void updateFromTuple(final ReteTuple tuple) {
+        public void updateFromTuple(final InternalWorkingMemory workingMemory, final ReteTuple tuple) {
             this.left = this.declaration.getExtractor().getBooleanValue( tuple.get( this.declaration ).getObject() );
         }
 
-        public void updateFromFactHandle(final InternalFactHandle handle) {
+        public void updateFromFactHandle(final InternalWorkingMemory workingMemory, final InternalFactHandle handle) {
             this.right = this.extractor.getBooleanValue( handle.getObject() );
         }
     }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ReturnValueExpression.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ReturnValueExpression.java	2006-10-19 21:15:01 UTC (rev 6933)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ReturnValueExpression.java	2006-10-19 22:45:59 UTC (rev 6934)
@@ -22,7 +22,7 @@
 public interface ReturnValueExpression
     extends
     Invoker {
-    public Object evaluate(Tuple tuple,
-                           Declaration[] requiredDeclarations,
-                           WorkingMemory workingMemory) throws Exception;
+    public FieldValue evaluate(Tuple tuple,
+                               Declaration[] requiredDeclarations,
+                               WorkingMemory workingMemory) throws Exception;
 }
\ No newline at end of file




More information about the jboss-svn-commits mailing list