[jboss-svn-commits] JBL Code SVN: r6716 - in labs/jbossrules/trunk/drools-core/src: main/java/org/drools/common main/java/org/drools/leaps main/java/org/drools/reteoo main/java/org/drools/rule main/java/org/drools/spi test/java/org/drools/examples/manners test/java/org/drools/examples/waltz test/java/org/drools/leaps test/java/org/drools/reteoo test/java/org/drools/rule test/java/org/drools/spi
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Oct 10 06:13:49 EDT 2006
Author: mark.proctor at jboss.com
Date: 2006-10-10 06:13:27 -0400 (Tue, 10 Oct 2006)
New Revision: 6716
Added:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ContextEntry.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/AlphaNodeFieldConstraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/BetaNodeFieldConstraint.java
Removed:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/FieldConstraint.java
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BetaNodeConstraints.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/leaps/AlphaMemory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/leaps/Builder.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/leaps/ColumnConstraints.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/leaps/LeapsBuilder.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/BetaNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CollectNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CompositeObjectSinkAdapter.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FromNode.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/ReteooBuilder.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooToJungVisitor.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Column.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralConstraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralRestriction.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MultiRestrictionFieldConstraint.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/VariableConstraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableRestriction.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Constraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Restriction.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/ReteooMannersTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/waltz/BaseWaltzTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/ColumnConstraintsTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/HashedTableComponentTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/LeapsRuleBaseTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/QueryResultsTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/QueryTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/FromNodeTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/JoinNodeTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/OrTest.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockConstraint.java
Log:
JBRULES-498 Optimised HashMap implementations
-Added a cacheable context to speed up evaluations
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BetaNodeConstraints.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BetaNodeConstraints.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/BetaNodeConstraints.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -24,11 +24,14 @@
import org.drools.base.evaluators.Operator;
import org.drools.reteoo.BetaMemory;
import org.drools.reteoo.ObjectHashTable;
+import org.drools.reteoo.ReteTuple;
+import org.drools.rule.ContextEntry;
import org.drools.rule.Declaration;
import org.drools.rule.LiteralConstraint;
import org.drools.rule.VariableConstraint;
+import org.drools.spi.BetaNodeFieldConstraint;
import org.drools.spi.Evaluator;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.FieldExtractor;
import org.drools.spi.Tuple;
import org.drools.util.FactHashTable;
@@ -49,36 +52,59 @@
public final static BetaNodeConstraints emptyBetaNodeConstraints = new BetaNodeConstraints();
private final LinkedList constraints;
+
+ private ContextEntry contexts;
public BetaNodeConstraints() {
this.constraints = null;
+ this.contexts = null;
}
- public BetaNodeConstraints(final FieldConstraint constraint) {
- this( new FieldConstraint[]{constraint} );
+ public BetaNodeConstraints(final BetaNodeFieldConstraint constraint) {
+ this( new BetaNodeFieldConstraint[]{constraint} );
}
- public BetaNodeConstraints(final FieldConstraint[] constraints) {
+ public BetaNodeConstraints(final BetaNodeFieldConstraint[] constraints) {
this.constraints = new LinkedList();
+ ContextEntry current = null;
for ( int i = 0, length = constraints.length; i < length; i++ ) {
this.constraints.add( new LinkedListEntry( constraints[i] ) );
+ ContextEntry context = constraints[i].getContextEntry();
+ if ( current == null ) {
+ current = context;
+ this.contexts = context;
+ } else {
+ current.setNext( context );
+ }
+ current = context;
+ }
+ }
+
+ public void updateFromTuple(ReteTuple tuple) {
+ for( ContextEntry context = this.contexts; context != null; context = context.getNext() ) {
+ context.updateFromTuple( tuple );
}
}
+
+ public void updateFromFactHandle(InternalFactHandle handle) {
+ for( ContextEntry context = this.contexts; context != null; context = context.getNext() ) {
+ context.updateFromFactHandle( handle );
+ }
+ }
- public boolean isAllowed(final InternalFactHandle handle,
- final Tuple tuple,
- final WorkingMemory workingMemory) {
+ public boolean isAllowed() {
if ( this.constraints == null ) {
return true;
}
-
- for ( LinkedListEntry entry = ( LinkedListEntry ) this.constraints.getFirst(); entry != null; entry = ( LinkedListEntry ) entry.getNext() ) {
- FieldConstraint constraint = (FieldConstraint) entry.getObject();
- if ( !constraint.isAllowed( handle.getObject(),
- tuple,
- workingMemory ) ) {
+
+ LinkedListEntry entry = ( LinkedListEntry ) this.constraints.getFirst();
+ ContextEntry context = this.contexts;
+ while( entry != null ) {
+ if ( !((BetaNodeFieldConstraint) entry.getObject()).isAllowed( context ) ) {
return false;
}
+ entry = ( LinkedListEntry ) entry.getNext() ;
+ context = context.getNext();
}
return true;
}
@@ -132,5 +158,5 @@
return this.constraints.equals( other );
}
-
+
}
\ No newline at end of file
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-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InstanceEqualsConstraint.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -17,8 +17,13 @@
package org.drools.common;
import org.drools.WorkingMemory;
+import org.drools.reteoo.ReteTuple;
+import org.drools.rule.Column;
+import org.drools.rule.ContextEntry;
import org.drools.rule.Declaration;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
+import org.drools.spi.BetaNodeFieldConstraint;
+import org.drools.spi.FieldExtractor;
import org.drools.spi.Tuple;
/**
@@ -32,15 +37,15 @@
public class InstanceEqualsConstraint
implements
- FieldConstraint {
+ BetaNodeFieldConstraint {
- private static final long serialVersionUID = 2986814365490743953L;
+ private static final long serialVersionUID = 320L;
private final Declaration[] declarations = new Declaration[0];
- private int otherColumn;
+ private Column otherColumn;
- public InstanceEqualsConstraint(final int otherColumn) {
+ public InstanceEqualsConstraint(final Column otherColumn) {
this.otherColumn = otherColumn;
}
@@ -48,22 +53,25 @@
return this.declarations;
}
- public int getOtherColumn() {
+ public Column getOtherColumn() {
return this.otherColumn;
}
-
- public boolean isAllowed(final Object object,
- final Tuple tuple,
- final WorkingMemory workingMemory) {
- return (tuple.get( this.otherColumn ).getObject() == object);
+
+ public ContextEntry getContextEntry() {
+ return new InstanceEqualsConstraintContextEntry( this.otherColumn );
}
+
+ public boolean isAllowed(final ContextEntry entry) {
+ InstanceEqualsConstraintContextEntry context = (InstanceEqualsConstraintContextEntry) entry;
+ return context.left == context.right;
+ }
public String toString() {
return "[InstanceEqualsConstraint otherColumn=" + this.otherColumn + " ]";
}
public int hashCode() {
- return this.otherColumn;
+ return this.otherColumn.hashCode();
}
public boolean equals(final Object object) {
@@ -76,7 +84,36 @@
}
final InstanceEqualsConstraint other = (InstanceEqualsConstraint) object;
- return this.otherColumn == other.otherColumn;
+ return this.otherColumn.equals( other.otherColumn );
}
+ public static class InstanceEqualsConstraintContextEntry implements ContextEntry {
+ public Object left;
+ public Object right;
+
+ private Column column;
+ private ContextEntry entry;
+
+
+ public InstanceEqualsConstraintContextEntry(Column column) {
+ this.column = column;
+ }
+
+ public ContextEntry getNext() {
+ return this.entry;
+ }
+
+ public void setNext(ContextEntry entry) {
+ this.entry = entry;
+ }
+
+ public void updateFromFactHandle(InternalFactHandle handle) {
+ this.left = handle.getObject();
+
+ }
+
+ public void updateFromTuple(ReteTuple tuple) {
+ this.right = tuple.get( this.column.getFactIndex() );
+ }
+ }
}
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-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InstanceNotEqualsConstraint.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -17,42 +17,52 @@
*/
import org.drools.WorkingMemory;
+import org.drools.common.InstanceEqualsConstraint.InstanceEqualsConstraintContextEntry;
+import org.drools.reteoo.ReteTuple;
+import org.drools.rule.Column;
+import org.drools.rule.ContextEntry;
import org.drools.rule.Declaration;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
+import org.drools.spi.BetaNodeFieldConstraint;
import org.drools.spi.Tuple;
public class InstanceNotEqualsConstraint
implements
- FieldConstraint {
- /**
- *
- */
- private static final long serialVersionUID = -4913836428340400997L;
+ BetaNodeFieldConstraint {
+ private static final long serialVersionUID = 320L;
+
private final Declaration[] declarations = new Declaration[0];
- private int otherColumn;
+ private Column otherColumn;
- public InstanceNotEqualsConstraint(final int otherColumn) {
+ public InstanceNotEqualsConstraint(final Column otherColumn) {
this.otherColumn = otherColumn;
}
public Declaration[] getRequiredDeclarations() {
return this.declarations;
}
-
- public boolean isAllowed(final Object object,
- final Tuple tuple,
- final WorkingMemory workingMemory) {
- return !(tuple.get( this.otherColumn ).getObject() == object);
+
+ public Column getOtherColumn() {
+ return this.otherColumn;
}
+
+ public ContextEntry getContextEntry() {
+ return new InstanceNotEqualsConstraintContextEntry( this.otherColumn );
+ }
+
+ public boolean isAllowed(final ContextEntry entry) {
+ InstanceNotEqualsConstraintContextEntry context = (InstanceNotEqualsConstraintContextEntry) entry;
+ return context.left != context.right;
+ }
public String toString() {
- return "[InstanceNotEqualsConstraint otherColumn=" + this.otherColumn + " ]";
+ return "[InstanceEqualsConstraint otherColumn=" + this.otherColumn + " ]";
}
public int hashCode() {
- return this.otherColumn;
+ return this.otherColumn.hashCode();
}
public boolean equals(final Object object) {
@@ -65,7 +75,37 @@
}
final InstanceNotEqualsConstraint other = (InstanceNotEqualsConstraint) object;
- return this.otherColumn == other.otherColumn;
+ return this.otherColumn.equals( other.otherColumn );
}
+ public static class InstanceNotEqualsConstraintContextEntry implements ContextEntry {
+ public Object left;
+ public Object right;
+
+ private Column column;
+ private ContextEntry entry;
+
+
+ public InstanceNotEqualsConstraintContextEntry(Column column) {
+ this.column = column;
+ }
+
+ public ContextEntry getNext() {
+ return this.entry;
+ }
+
+ public void setNext(ContextEntry entry) {
+ this.entry = entry;
+ }
+
+ public void updateFromFactHandle(InternalFactHandle handle) {
+ this.left = handle.getObject();
+
+ }
+
+ public void updateFromTuple(ReteTuple tuple) {
+ this.right = tuple.get( this.column.getFactIndex() );
+ }
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/leaps/AlphaMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/leaps/AlphaMemory.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/leaps/AlphaMemory.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -2,7 +2,7 @@
import org.drools.WorkingMemory;
import org.drools.common.InternalFactHandle;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.Tuple;
import org.drools.util.IdentityMap;
@@ -13,7 +13,7 @@
}
- boolean checkAlpha( final FieldConstraint alpha,
+ boolean checkAlpha( final AlphaNodeFieldConstraint alpha,
final InternalFactHandle factHandle,
final Tuple tuple,
final WorkingMemory workingMemory ) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/leaps/Builder.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/leaps/Builder.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/leaps/Builder.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -32,7 +32,7 @@
import org.drools.rule.InvalidPatternException;
import org.drools.rule.Not;
import org.drools.rule.Rule;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
/**
* A Rule<code>Builder</code> to process <code>Rule</code>s for use with
@@ -180,7 +180,7 @@
continue;
}
- final FieldConstraint fieldConstraint = (FieldConstraint) object;
+ final AlphaNodeFieldConstraint fieldConstraint = (AlphaNodeFieldConstraint) object;
if ( fieldConstraint.getRequiredDeclarations().length == 0 ) {
alphaConstraints.add( fieldConstraint);
} else {
@@ -190,7 +190,7 @@
if ( !predicateConstraints.isEmpty() ) {
- binder = new BetaNodeConstraints( (FieldConstraint[]) predicateConstraints.toArray( new FieldConstraint[predicateConstraints.size()] ) );
+ binder = new BetaNodeConstraints( (AlphaNodeFieldConstraint[]) predicateConstraints.toArray( new AlphaNodeFieldConstraint[predicateConstraints.size()] ) );
} else {
binder = new BetaNodeConstraints();
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/leaps/ColumnConstraints.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/leaps/ColumnConstraints.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/leaps/ColumnConstraints.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -23,7 +23,7 @@
import org.drools.common.BetaNodeConstraints;
import org.drools.common.InternalFactHandle;
import org.drools.rule.Column;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.Tuple;
/**
@@ -35,7 +35,7 @@
public class ColumnConstraints implements Serializable {
private Object classType;
- private final FieldConstraint[] alphaConstraints;
+ private final AlphaNodeFieldConstraint[] alphaConstraints;
private final boolean alphaPresent;
@@ -56,7 +56,7 @@
this.betaPresent = false;
}
if ( alpha != null && alpha.size() > 0 ) {
- this.alphaConstraints = (FieldConstraint[]) alpha.toArray( new FieldConstraint[0] );
+ this.alphaConstraints = (AlphaNodeFieldConstraint[]) alpha.toArray( new AlphaNodeFieldConstraint[0] );
this.alphaPresent = true;
} else {
this.alphaConstraints = null;
@@ -111,11 +111,11 @@
return this.alphaPresent;
}
- protected FieldConstraint[] getAlphaContraints() {
+ protected AlphaNodeFieldConstraint[] getAlphaContraints() {
return this.alphaConstraints;
}
- protected FieldConstraint[] getBetaContraints() {
+ protected AlphaNodeFieldConstraint[] getBetaContraints() {
return this.beta.getConstraints( );
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/leaps/LeapsBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/leaps/LeapsBuilder.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/leaps/LeapsBuilder.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -35,7 +35,7 @@
import org.drools.rule.InvalidPatternException;
import org.drools.rule.Not;
import org.drools.rule.Rule;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.ObjectType;
/**
@@ -191,7 +191,7 @@
continue;
}
- final FieldConstraint fieldConstraint = (FieldConstraint) object;
+ final AlphaNodeFieldConstraint fieldConstraint = (AlphaNodeFieldConstraint) object;
if ( fieldConstraint.getRequiredDeclarations().length == 0 ) {
alphaConstraints.add( fieldConstraint);
} else {
@@ -200,7 +200,7 @@
}
if ( !predicateConstraints.isEmpty() ) {
- binder = new BetaNodeConstraints( (FieldConstraint[]) predicateConstraints.toArray( new FieldConstraint[predicateConstraints.size()] ) );
+ binder = new BetaNodeConstraints( (AlphaNodeFieldConstraint[]) predicateConstraints.toArray( new AlphaNodeFieldConstraint[predicateConstraints.size()] ) );
} else {
binder = new BetaNodeConstraints();
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AccumulateNode.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -25,7 +25,7 @@
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
import org.drools.rule.Accumulate;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.PropagationContext;
import org.drools.util.LinkedList;
import org.drools.util.LinkedListEntry;
@@ -44,7 +44,7 @@
private static final long serialVersionUID = -4081578178269297948L;
private final Accumulate accumulate;
- private final FieldConstraint[] constraints;
+ private final AlphaNodeFieldConstraint[] constraints;
private final BetaNodeConstraints resultsBinder;
/**
@@ -66,7 +66,7 @@
this( id,
leftInput,
rightInput,
- new FieldConstraint[0],
+ new AlphaNodeFieldConstraint[0],
new BetaNodeConstraints(),
new BetaNodeConstraints(),
accumulate );
@@ -75,7 +75,7 @@
public AccumulateNode(final int id,
final TupleSource leftInput,
final ObjectSource rightInput,
- final FieldConstraint[] constraints,
+ final AlphaNodeFieldConstraint[] constraints,
final BetaNodeConstraints sourceBinder,
final BetaNodeConstraints resultsBinder,
final Accumulate accumulate) {
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-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/AlphaNode.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -22,7 +22,7 @@
import org.drools.common.InternalWorkingMemory;
import org.drools.common.NodeMemory;
import org.drools.common.PropagationContextImpl;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.PropagationContext;
import org.drools.util.FactHashTable;
import org.drools.util.Iterator;
@@ -33,7 +33,7 @@
* to apply <code>FieldConstraint<.code>s on asserted fact
* objects where the <code>FieldConstraint</code>s have no dependencies on any other of the facts in the current <code>Rule</code>.
*
- * @see FieldConstraint
+ * @see AlphaNodeFieldConstraint
*
* @author <a href="mailto:mark.proctor at jboss.com">Mark Proctor</a>
* @author <a href="mailto:bob at werken.com">Bob McWhirter</a>
@@ -50,7 +50,7 @@
private static final long serialVersionUID = 8936511451364612838L;
/** The <code>FieldConstraint</code> */
- private final FieldConstraint constraint;
+ private final AlphaNodeFieldConstraint constraint;
private ObjectSinkNode previousObjectSinkNode;
private ObjectSinkNode nextObjectSinkNode;
@@ -65,7 +65,7 @@
* @param objectSource
*/
AlphaNode(final int id,
- final FieldConstraint constraint,
+ final AlphaNodeFieldConstraint constraint,
final ObjectSource objectSource) {
this(id, constraint, objectSource, true);
}
@@ -83,7 +83,7 @@
* @param hasMemory true if node shall be configured with local memory. False otherwise.
*/
AlphaNode(final int id,
- final FieldConstraint constraint,
+ final AlphaNodeFieldConstraint constraint,
final ObjectSource objectSource,
final boolean hasMemory) {
super( id );
@@ -97,7 +97,7 @@
*
* @return <code>FieldConstraint</code>
*/
- public FieldConstraint getConstraint() {
+ public AlphaNodeFieldConstraint getConstraint() {
return this.constraint;
}
@@ -132,7 +132,6 @@
final PropagationContext context,
final InternalWorkingMemory workingMemory) throws FactException {
if ( this.constraint.isAllowed( handle.getObject(),
- null,
workingMemory ) ) {
if ( hasMemory() ) {
final FactHashTable memory = (FactHashTable) workingMemory.getNodeMemory( this );
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-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/BetaNode.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -27,9 +27,11 @@
import org.drools.common.InternalWorkingMemory;
import org.drools.common.NodeMemory;
import org.drools.common.PropagationContextImpl;
+import org.drools.rule.LiteralConstraint;
import org.drools.rule.VariableConstraint;
+import org.drools.spi.BetaNodeFieldConstraint;
import org.drools.spi.Evaluator;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.FieldExtractor;
import org.drools.spi.PropagationContext;
import org.drools.util.FactHashTable;
@@ -112,13 +114,13 @@
this.constraints = constraints;
}
- public FieldConstraint[] getConstraints() {
+ public AlphaNodeFieldConstraint[] getConstraints() {
LinkedList constraints = this.constraints.getConstraints();
- FieldConstraint[] array = new FieldConstraint[constraints.size()];
+ AlphaNodeFieldConstraint[] array = new AlphaNodeFieldConstraint[constraints.size()];
int i = 0;
for ( LinkedListEntry entry = (LinkedListEntry) constraints.getFirst(); entry != null; entry = (LinkedListEntry) entry.getNext() ) {
- array[i++] = (FieldConstraint) entry.getObject();
+ array[i++] = (AlphaNodeFieldConstraint) entry.getObject();
}
return array;
}
@@ -144,8 +146,16 @@
}
return list;
- }
+ }
+ public ObjectTypeNode getObjectTypeNode() {
+ ObjectSource source = this.rightInput;
+ while ( source.getClass() != ObjectTypeNode.class ) {
+ source = source.objectSource;
+ }
+ return ((ObjectTypeNode)source);
+ }
+
public void attach(final InternalWorkingMemory[] workingMemories) {
attach();
@@ -233,7 +243,7 @@
if ( constraints != null ) {
for ( LinkedListEntry entry = (LinkedListEntry) constraints.getFirst(); entry != null; entry = (LinkedListEntry) entry.getNext() ) {
- FieldConstraint constraint = (FieldConstraint) entry.getObject();
+ BetaNodeFieldConstraint constraint = (BetaNodeFieldConstraint) entry.getObject();
if ( constraint.getClass() == VariableConstraint.class ) {
VariableConstraint variableConstraint = (VariableConstraint) constraint;
FieldExtractor extractor = variableConstraint.getFieldExtractor();
@@ -247,7 +257,7 @@
break;
}
- }
+ }
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CollectNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CollectNode.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CollectNode.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -26,7 +26,7 @@
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
import org.drools.rule.Collect;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.PropagationContext;
import org.drools.util.LinkedList;
import org.drools.util.LinkedListEntry;
@@ -43,7 +43,7 @@
private static final long serialVersionUID = -8321568626178187047L;
private final Collect collect;
- private final FieldConstraint[] resultConstraints;
+ private final AlphaNodeFieldConstraint[] resultConstraints;
private final BetaNodeConstraints resultsBinder;
/**
@@ -65,7 +65,7 @@
this( id,
leftInput,
rightInput,
- new FieldConstraint[0],
+ new AlphaNodeFieldConstraint[0],
new BetaNodeConstraints(),
new BetaNodeConstraints(),
collect );
@@ -92,7 +92,7 @@
public CollectNode(final int id,
final TupleSource leftInput,
final ObjectSource rightInput,
- final FieldConstraint[] resultConstraints,
+ final AlphaNodeFieldConstraint[] resultConstraints,
final BetaNodeConstraints sourceBinder,
final BetaNodeConstraints resultsBinder,
final Collect collect) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CompositeObjectSinkAdapter.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CompositeObjectSinkAdapter.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/CompositeObjectSinkAdapter.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -8,7 +8,7 @@
import org.drools.common.InternalWorkingMemory;
import org.drools.rule.LiteralConstraint;
import org.drools.spi.Evaluator;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.FieldExtractor;
import org.drools.spi.PropagationContext;
import org.drools.util.Iterator;
@@ -38,7 +38,7 @@
public void addObjectSink(ObjectSink sink) {
if ( sink.getClass() == AlphaNode.class ) {
AlphaNode alphaNode = (AlphaNode) sink;
- FieldConstraint fieldConstraint = alphaNode.getConstraint();
+ AlphaNodeFieldConstraint fieldConstraint = alphaNode.getConstraint();
if ( fieldConstraint.getClass() == LiteralConstraint.class ) {
LiteralConstraint literalConstraint = (LiteralConstraint) fieldConstraint;
@@ -53,7 +53,7 @@
if ( !fieldIndex.isHashed() ) {
hashSinks( fieldIndex );
}
- Object value = literalConstraint.getField().getValue();
+ Object value = literalConstraint.getField();
// no need to check, we know the sink does not exist
hashedSinkMap.put( new HashKey( index,
value ),
@@ -81,12 +81,12 @@
public void removeObjectSink(ObjectSink sink) {
if ( sink.getClass() == AlphaNode.class ) {
AlphaNode alphaNode = (AlphaNode) sink;
- FieldConstraint fieldConstraint = alphaNode.getConstraint();
+ AlphaNodeFieldConstraint fieldConstraint = alphaNode.getConstraint();
if ( fieldConstraint.getClass() == LiteralConstraint.class ) {
LiteralConstraint literalConstraint = (LiteralConstraint) fieldConstraint;
Evaluator evaluator = literalConstraint.getEvaluator();
- Object value = literalConstraint.getField().getValue();
+ Object value = literalConstraint.getField();
if ( evaluator.getOperator() == Operator.EQUAL ) {
int index = literalConstraint.getFieldExtractor().getIndex();
@@ -131,11 +131,11 @@
for ( ObjectSinkNode sink = this.hashableSinks.getFirst(); sink != null; sink = sink.getNextObjectSinkNode() ) {
AlphaNode alphaNode = (AlphaNode) sink;
- FieldConstraint fieldConstraint = alphaNode.getConstraint();
+ AlphaNodeFieldConstraint fieldConstraint = alphaNode.getConstraint();
LiteralConstraint literalConstraint = (LiteralConstraint) fieldConstraint;
Evaluator evaluator = literalConstraint.getEvaluator();
if ( evaluator.getOperator() == Operator.EQUAL && index == literalConstraint.getFieldExtractor().getIndex() ) {
- Object value = literalConstraint.getField().getValue();
+ Object value = literalConstraint.getField();
list.add( sink );
hashedSinkMap.put( new HashKey( index,
value ),
@@ -160,11 +160,11 @@
for ( ObjectSinkNode sink = this.hashableSinks.getFirst(); sink != null; sink = sink.getNextObjectSinkNode() ) {
AlphaNode alphaNode = (AlphaNode) sink;
- FieldConstraint fieldConstraint = alphaNode.getConstraint();
+ AlphaNodeFieldConstraint fieldConstraint = alphaNode.getConstraint();
LiteralConstraint literalConstraint = (LiteralConstraint) fieldConstraint;
Evaluator evaluator = literalConstraint.getEvaluator();
if ( evaluator.getOperator() == Operator.EQUAL && index == literalConstraint.getFieldExtractor().getIndex() ) {
- Object value = literalConstraint.getField().getValue();
+ Object value = literalConstraint.getField();
this.hashKey.setIndex( index );
this.hashKey.setValue( value );
this.hashableSinks.add( sink );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FromNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FromNode.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/FromNode.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -13,7 +13,7 @@
import org.drools.common.NodeMemory;
import org.drools.common.PropagationContextImpl;
import org.drools.spi.DataProvider;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.PropagationContext;
public class FromNode extends TupleSource
@@ -27,13 +27,13 @@
private DataProvider dataProvider;
private TupleSource tupleSource;
- private FieldConstraint[] constraints;
+ private AlphaNodeFieldConstraint[] constraints;
private BetaNodeConstraints binder;
public FromNode(final int id,
final DataProvider dataProvider,
final TupleSource tupleSource,
- final FieldConstraint[] constraints,
+ final AlphaNodeFieldConstraint[] constraints,
final BetaNodeConstraints binder) {
super( id );
this.dataProvider = dataProvider;
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-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/JoinNode.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -107,11 +107,13 @@
final InternalWorkingMemory workingMemory) {
final BetaMemory memory = (BetaMemory) workingMemory.getNodeMemory( this );
memory.getTupleMemory().add( leftTuple );
-
Iterator it = memory.getObjectMemory().iterator( leftTuple );
+
+ this.constraints.updateFromTuple( leftTuple );
for ( FactEntry entry = ( FactEntry ) it.next(); entry != null; entry = ( FactEntry ) it.next() ) {
InternalFactHandle handle = entry.getFactHandle();
- if ( this.constraints.isAllowed( handle, leftTuple, workingMemory ) ) {
+ this.constraints.updateFromFactHandle( handle );
+ if ( this.constraints.isAllowed() ) {
sink.propagateAssertTuple( leftTuple, handle, context, workingMemory );
}
}
@@ -142,8 +144,10 @@
memory.getObjectMemory().add( handle );
Iterator it = memory.getTupleMemory().iterator();
+ this.constraints.updateFromFactHandle( handle );
for ( ReteTuple tuple = ( ReteTuple ) it.next(); tuple != null; tuple = ( ReteTuple ) it.next() ) {
- if ( this.constraints.isAllowed( handle, tuple, workingMemory ) ) {
+ this.constraints.updateFromTuple( tuple );
+ if ( this.constraints.isAllowed( ) ) {
sink.propagateAssertTuple( tuple, handle, context, workingMemory );
}
}
@@ -216,9 +220,11 @@
Iterator tupleIter = memory.getTupleMemory().iterator();
for ( ReteTuple tuple = ( ReteTuple ) tupleIter.next(); tuple != null; tuple = ( ReteTuple ) tupleIter.next() ) {
Iterator objectIter = memory.getObjectMemory().iterator( tuple );
+ this.constraints.updateFromTuple( tuple );
for ( FactEntry entry = ( FactEntry ) objectIter.next(); entry != null; entry = ( FactEntry ) objectIter.next() ) {
InternalFactHandle handle = entry.getFactHandle();
- if ( this.constraints.isAllowed( handle, tuple, workingMemory ) ) {
+ this.constraints.updateFromFactHandle( handle );
+ if ( this.constraints.isAllowed( ) ) {
sink.assertTuple( new ReteTuple( tuple, handle), context, workingMemory );
}
}
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-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/LeftInputAdapterNode.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -29,7 +29,7 @@
import org.drools.common.InternalWorkingMemory;
import org.drools.common.NodeMemory;
import org.drools.common.PropagationContextImpl;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.PropagationContext;
import org.drools.util.Iterator;
import org.drools.util.LinkedList;
@@ -58,23 +58,23 @@
*/
private static final long serialVersionUID = 320L;
private final ObjectSource objectSource;
- private final BetaNodeConstraints constraints;
+// private final AlphaNodeFieldConstraint constraints;
- /**
- * Constructus a LeftInputAdapterNode with a unique id that receives <code>FactHandle</code> from a
- * parent <code>ObjectSource</code> and adds it to a given column in the resulting Tuples.
- *
- * @param id
- * The unique id of this node in the current Rete network
- * @param source
- * The parent node, where Facts are propagated from
- */
- public LeftInputAdapterNode(final int id,
- final ObjectSource source) {
- this( id,
- source,
- null );
- }
+// /**
+// * Constructus a LeftInputAdapterNode with a unique id that receives <code>FactHandle</code> from a
+// * parent <code>ObjectSource</code> and adds it to a given column in the resulting Tuples.
+// *
+// * @param id
+// * The unique id of this node in the current Rete network
+// * @param source
+// * The parent node, where Facts are propagated from
+// */
+// public LeftInputAdapterNode(final int id,
+// final ObjectSource source) {
+// this( id,
+// source,
+// null );
+// }
/**
* Constructus a LeftInputAdapterNode with a unique id that receives <code>FactHandle</code> from a
@@ -89,25 +89,24 @@
* a predicate is used in the first column, for instance
*/
public LeftInputAdapterNode(final int id,
- final ObjectSource source,
- final BetaNodeConstraints constraints) {
+ final ObjectSource source) {
super( id );
this.objectSource = source;
- this.constraints = constraints;
+ //this.constraints = constraints;
setHasMemory( false );
}
- public FieldConstraint[] getConstraints() {
- LinkedList constraints = this.constraints.getConstraints();
+// public AlphaNodeFieldConstraint[] getConstraints() {
+// LinkedList constraints = this.constraints.getConstraints();
+//
+// AlphaNodeFieldConstraint[] array = new AlphaNodeFieldConstraint[constraints.size()];
+// int i = 0;
+// for ( LinkedListEntry entry = (LinkedListEntry) constraints.getFirst(); entry != null; entry = (LinkedListEntry) entry.getNext() ) {
+// array[i++] = (AlphaNodeFieldConstraint) entry.getObject();
+// }
+// return array;
+// }
- FieldConstraint[] array = new FieldConstraint[constraints.size()];
- int i = 0;
- for ( LinkedListEntry entry = (LinkedListEntry) constraints.getFirst(); entry != null; entry = (LinkedListEntry) entry.getNext() ) {
- array[i++] = (FieldConstraint) entry.getObject();
- }
- return array;
- }
-
/* (non-Javadoc)
* @see org.drools.reteoo.BaseNode#attach()
*/
@@ -144,9 +143,8 @@
public void assertObject(final InternalFactHandle handle,
final PropagationContext context,
final InternalWorkingMemory workingMemory) {
- if ( (this.constraints == null) || (this.constraints.isAllowed( handle,
- null,
- workingMemory )) ) {
+// if ( (this.constraints == null) || (this.constraints.isAllowed( handle.getObject(),
+// workingMemory )) ) {
ReteTuple tuple = this.sink.createAndPropagateAssertTuple( handle,
context,
workingMemory );
@@ -156,7 +154,7 @@
map.put( handle,
tuple,
false );
- }
+// }
}
}
@@ -239,11 +237,11 @@
}
final LeftInputAdapterNode other = (LeftInputAdapterNode) object;
- if ( this.constraints == null ) {
- return this.objectSource.equals( other.objectSource ) && other.constraints == null;
- } else {
- return this.objectSource.equals( other.objectSource ) && this.constraints.equals( other.constraints );
- }
+// if ( this.constraints == null ) {
+// return this.objectSource.equals( other.objectSource ) && other.constraints == null;
+// } else {
+ return this.objectSource.equals( other.objectSource ); //&& this.constraints.equals( other.constraints );
+// }
}
public Object createMemory(RuleBaseConfiguration config) {
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-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/NotNode.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -115,10 +115,12 @@
memory.getTupleMemory().add( leftTuple );
Iterator it = memory.getObjectMemory().iterator( leftTuple );
+ this.constraints.updateFromTuple( leftTuple );
int matches = 0;
for ( FactEntry entry = ( FactEntry ) it.next(); entry != null; entry = ( FactEntry ) it.next() ) {
- InternalFactHandle handle = entry.getFactHandle();
- if ( this.constraints.isAllowed( handle, leftTuple, workingMemory ) ) {
+ InternalFactHandle handle = entry.getFactHandle();
+ this.constraints.updateFromFactHandle( handle );
+ if ( this.constraints.isAllowed( ) ) {
matches++;
}
}
@@ -151,13 +153,16 @@
memory.getObjectMemory().add( handle );
Iterator it = memory.getTupleMemory().iterator();
+ this.constraints.updateFromFactHandle( handle );
for ( ReteTuple tuple = ( ReteTuple ) it.next(); tuple != null; tuple = ( ReteTuple ) it.next() ) {
- if ( this.constraints.isAllowed( handle, tuple, workingMemory ) ) {
+ this.constraints.updateFromTuple( tuple );
+ if ( this.constraints.isAllowed( ) ) {
int matches = tuple.getMatches();
tuple.setMatches( matches + 1 );
- if ( matches == 0 ) {
- this.sink.propagateRetractTuple( tuple, context, workingMemory );
- }
+ this.sink.propagateRetractTuple( tuple, context, workingMemory );
+// if ( matches == 0 ) {
+// this.sink.propagateRetractTuple( tuple, context, workingMemory );
+// }
}
}
}
@@ -184,8 +189,10 @@
}
Iterator it = memory.getTupleMemory().iterator();
+ this.constraints.updateFromFactHandle( handle );
for ( ReteTuple tuple = ( ReteTuple ) it.next(); tuple != null; tuple = ( ReteTuple ) it.next() ) {
- if ( this.constraints.isAllowed( handle, tuple, workingMemory ) ) {
+ this.constraints.updateFromTuple( tuple );
+ if ( this.constraints.isAllowed( ) ) {
tuple.setMatches( tuple.getMatches() - 1 );
if ( tuple.getMatches() == 0 ) {
this.sink.propagateAssertTuple( tuple, context, workingMemory );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooBuilder.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -50,7 +50,9 @@
import org.drools.rule.Not;
import org.drools.rule.Query;
import org.drools.rule.Rule;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
+import org.drools.spi.BetaNodeFieldConstraint;
+import org.drools.spi.Constraint;
import org.drools.spi.FieldValue;
/**
@@ -262,8 +264,7 @@
// a TupleSource using LeftInputAdapterNode
if ( this.tupleSource == null ) {
this.tupleSource = attachNode( new LeftInputAdapterNode( this.id++,
- this.objectSource,
- binder ) );
+ this.objectSource ) );
// objectSource is created by the attachColumn method, if we
// adapt this to
@@ -381,7 +382,7 @@
BetaNodeConstraints binder;
if ( !predicates.isEmpty() ) {
- binder = new BetaNodeConstraints( (FieldConstraint[]) predicates.toArray( new FieldConstraint[predicates.size()] ) );
+ binder = new BetaNodeConstraints( (BetaNodeFieldConstraint[]) predicates.toArray( new BetaNodeFieldConstraint[predicates.size()] ) );
} else {
binder = new BetaNodeConstraints();
}
@@ -407,13 +408,13 @@
final Map.Entry entry = (Map.Entry) it.next();
final Class previousClass = ((ClassObjectType) entry.getKey()).getClassType();
if ( thisClass.isAssignableFrom( previousClass ) ) {
- predicateConstraints.add( new InstanceNotEqualsConstraint( ((Integer) entry.getValue()).intValue() ) );
+ predicateConstraints.add( new InstanceNotEqualsConstraint( (Column) entry.getValue()) );
}
}
// Must be added after the checking, otherwise it matches against itself
this.objectType.put( column.getObjectType(),
- new Integer( column.getFactIndex() ) );
+ column );
}
for ( final Iterator it = constraints.iterator(); it.hasNext(); ) {
@@ -427,14 +428,14 @@
continue;
}
- final FieldConstraint fieldConstraint = (FieldConstraint) object;
- if ( fieldConstraint.getRequiredDeclarations().length == 0 ) {
+ final Constraint constraint = (Constraint) object;
+ if ( constraint.getRequiredDeclarations().length == 0) {
this.objectSource = attachNode( new AlphaNode( this.id++,
- fieldConstraint,
+ (AlphaNodeFieldConstraint) constraint,
this.objectSource ) );
} else {
- checkUnboundDeclarations( fieldConstraint.getRequiredDeclarations() );
- predicateConstraints.add( fieldConstraint );
+ checkUnboundDeclarations( ((BetaNodeFieldConstraint) constraint).getRequiredDeclarations() );
+ predicateConstraints.add( (BetaNodeFieldConstraint) constraint );
}
}
@@ -487,7 +488,7 @@
column.getFactIndex(),
notNode ) );
- BetaNodeConstraints identityBinder = new BetaNodeConstraints( new InstanceEqualsConstraint( column.getFactIndex() ) );
+ BetaNodeConstraints identityBinder = new BetaNodeConstraints( new InstanceEqualsConstraint( column ) );
notNode = (NotNode) attachNode( new NotNode( this.id++,
tupleSource,
adapter,
@@ -599,7 +600,7 @@
continue;
}
- final FieldConstraint fieldConstraint = (FieldConstraint) object;
+ final AlphaNodeFieldConstraint fieldConstraint = (AlphaNodeFieldConstraint) object;
if ( fieldConstraint instanceof LiteralConstraint ) {
alphaNodeConstraints.add( fieldConstraint );
} else {
@@ -611,7 +612,7 @@
BetaNodeConstraints binder;
if ( !predicateConstraints.isEmpty() ) {
- binder = new BetaNodeConstraints( (FieldConstraint[]) predicateConstraints.toArray( new FieldConstraint[predicateConstraints.size()] ) );
+ binder = new BetaNodeConstraints( (BetaNodeFieldConstraint[]) predicateConstraints.toArray( new BetaNodeFieldConstraint[predicateConstraints.size()] ) );
} else {
binder = new BetaNodeConstraints();
}
@@ -619,7 +620,7 @@
this.tupleSource = attachNode( new FromNode( id++,
from.getDataProvider(),
this.tupleSource,
- (FieldConstraint[]) alphaNodeConstraints.toArray( new FieldConstraint[alphaNodeConstraints.size()] ),
+ (AlphaNodeFieldConstraint[]) alphaNodeConstraints.toArray( new AlphaNodeFieldConstraint[alphaNodeConstraints.size()] ),
binder ) );
}
@@ -674,7 +675,7 @@
continue;
}
- final FieldConstraint fieldConstraint = (FieldConstraint) object;
+ final AlphaNodeFieldConstraint fieldConstraint = (AlphaNodeFieldConstraint) object;
if ( fieldConstraint instanceof LiteralConstraint ) {
alphaNodeConstraints.add( fieldConstraint );
} else {
@@ -685,7 +686,7 @@
BetaNodeConstraints resultsBinder = null;
if ( !predicateConstraints.isEmpty() ) {
- resultsBinder = new BetaNodeConstraints( (FieldConstraint[]) predicateConstraints.toArray( new FieldConstraint[predicateConstraints.size()] ) );
+ resultsBinder = new BetaNodeConstraints( (BetaNodeFieldConstraint[]) predicateConstraints.toArray( new BetaNodeFieldConstraint[predicateConstraints.size()] ) );
} else {
resultsBinder = new BetaNodeConstraints();
}
@@ -693,7 +694,7 @@
this.tupleSource = attachNode( new AccumulateNode( id++,
this.tupleSource,
this.objectSource,
- (FieldConstraint[]) alphaNodeConstraints.toArray( new FieldConstraint[alphaNodeConstraints.size()] ),
+ (AlphaNodeFieldConstraint[]) alphaNodeConstraints.toArray( new AlphaNodeFieldConstraint[alphaNodeConstraints.size()] ),
sourceBinder,
resultsBinder,
accumulate ) );
@@ -749,7 +750,7 @@
continue;
}
- final FieldConstraint fieldConstraint = (FieldConstraint) object;
+ final AlphaNodeFieldConstraint fieldConstraint = (AlphaNodeFieldConstraint) object;
if ( fieldConstraint instanceof LiteralConstraint ) {
alphaNodeConstraints.add( fieldConstraint );
} else {
@@ -760,7 +761,7 @@
BetaNodeConstraints resultsBinder = null;
if ( !predicateConstraints.isEmpty() ) {
- resultsBinder = new BetaNodeConstraints( (FieldConstraint[]) predicateConstraints.toArray( new FieldConstraint[predicateConstraints.size()] ) );
+ resultsBinder = new BetaNodeConstraints( (BetaNodeFieldConstraint[]) predicateConstraints.toArray( new BetaNodeFieldConstraint[predicateConstraints.size()] ) );
} else {
resultsBinder = new BetaNodeConstraints();
}
@@ -768,7 +769,7 @@
this.tupleSource = attachNode( new CollectNode( id++,
this.tupleSource,
this.objectSource,
- (FieldConstraint[]) alphaNodeConstraints.toArray( new FieldConstraint[alphaNodeConstraints.size()] ),
+ (AlphaNodeFieldConstraint[]) alphaNodeConstraints.toArray( new AlphaNodeFieldConstraint[alphaNodeConstraints.size()] ),
sourceBinder,
resultsBinder,
collect ) );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooToJungVisitor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooToJungVisitor.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooToJungVisitor.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -26,7 +26,7 @@
import org.drools.base.ClassFieldExtractor;
import org.drools.common.BaseNode;
import org.drools.rule.LiteralConstraint;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.util.ReflectiveVisitor;
import org.drools.visualize.ReteooJungViewer.DroolsVertex;
@@ -376,7 +376,7 @@
}
}
- public static String dumpConstraints(final FieldConstraint[] constraints) {
+ public static String dumpConstraints(final AlphaNodeFieldConstraint[] constraints) {
final StringBuffer buffer = new StringBuffer();
for ( int i = 0, length = constraints.length; i < length; i++ ) {
buffer.append( constraints[i].toString() + "<br>" );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Column.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Column.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/Column.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -23,8 +23,9 @@
import java.util.List;
import org.drools.spi.ColumnExtractor;
+import org.drools.spi.Constraint;
import org.drools.spi.Extractor;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.ObjectType;
public class Column
@@ -84,7 +85,7 @@
return Collections.unmodifiableList( this.constraints );
}
- public void addConstraint(final FieldConstraint constraint) {
+ public void addConstraint(final Constraint constraint) {
if ( this.constraints == Collections.EMPTY_LIST ) {
this.constraints = new ArrayList( 1 );
}
Added: 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-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ContextEntry.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -0,0 +1,13 @@
+package org.drools.rule;
+
+import org.drools.common.InternalFactHandle;
+import org.drools.reteoo.ReteTuple;
+import org.drools.util.Entry;
+import org.drools.util.LinkedListNode;
+
+public interface ContextEntry {
+ public ContextEntry getNext();
+ public void setNext(ContextEntry entry);
+ public void updateFromTuple(ReteTuple tuple);
+ public void updateFromFactHandle(InternalFactHandle handle);
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralConstraint.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralConstraint.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -17,15 +17,18 @@
*/
import org.drools.WorkingMemory;
+import org.drools.common.InternalFactHandle;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.reteoo.ReteTuple;
import org.drools.spi.Evaluator;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.FieldExtractor;
import org.drools.spi.FieldValue;
import org.drools.spi.Tuple;
public class LiteralConstraint
implements
- FieldConstraint{
+ AlphaNodeFieldConstraint{
/**
*
@@ -35,6 +38,8 @@
private final FieldExtractor extractor;
private final LiteralRestriction restriction;
+
+ private final static Declaration[] emptyDeclarations = new Declaration[]{};
public LiteralConstraint(final FieldExtractor extractor,
final Evaluator evaluator,
@@ -53,13 +58,17 @@
return this.restriction.getEvaluator();
}
- public FieldValue getField() {
+ public Object getField() {
return this.restriction.getField();
}
public FieldExtractor getFieldExtractor() {
return this.extractor;
}
+
+ public Declaration[] getRDeclarations(){
+ return emptyDeclarations;
+ }
/**
* Literal constraints cannot have required declarations, so always return an empty array.
@@ -71,13 +80,13 @@
}
public boolean isAllowed(final Object object,
- final Tuple tuple,
- final WorkingMemory workingMemory) {
- return this.restriction.isAllowed( this.extractor.getValue( object ), tuple, workingMemory );
+ final InternalWorkingMemory workingMemory) {
+ return this.restriction.isAllowed( this.extractor.getValue( object ),
+ workingMemory );
}
public String toString() {
- return "[LiteralConstraint fieldExtractor=" + this.extractor + " evaluator=" + getEvaluator() + " value=" + getField().getValue() + "]";
+ return "[LiteralConstraint fieldExtractor=" + this.extractor + " evaluator=" + getEvaluator() + " value=" + getField() + "]";
}
public int hashCode() {
@@ -100,4 +109,29 @@
return this.extractor.equals( other.extractor ) && this.restriction.equals( other.restriction );
}
+ public static class LiteralContextEntry implements ContextEntry {
+ public Object object;
+
+ private FieldExtractor extractor;
+
+
+ public LiteralContextEntry(FieldExtractor extractor) {
+ this.extractor = extractor;
+ }
+
+ public ContextEntry getNext() {
+ return null;
+ }
+
+ public void setNext(ContextEntry entry) {
+ }
+
+ public void updateFromFactHandle(InternalFactHandle handle) {
+ this.object = this.extractor.getValue( handle.getObject() );
+
+ }
+
+ public void updateFromTuple(ReteTuple tuple) {
+ }
+ }
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralRestriction.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/LiteralRestriction.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -17,6 +17,7 @@
*/
import org.drools.WorkingMemory;
+import org.drools.common.InternalWorkingMemory;
import org.drools.spi.Evaluator;
import org.drools.spi.FieldValue;
import org.drools.spi.Restriction;
@@ -31,7 +32,7 @@
*/
private static final long serialVersionUID = 320;
- private final FieldValue field;
+ private final Object field;
private final Evaluator evaluator;
@@ -39,7 +40,7 @@
public LiteralRestriction(final FieldValue field,
final Evaluator evaluator) {
- this.field = field;
+ this.field = field.getValue();
this.evaluator = evaluator;
}
@@ -47,10 +48,19 @@
return this.evaluator;
}
- public FieldValue getField() {
+ public Object getField() {
return this.field;
}
+
+ public boolean isAllowed(Object object,
+ InternalWorkingMemory workingMemoiry) {
+ return this.evaluator.evaluate( object, field );
+ }
+ public boolean isAllowed(ContextEntry context) {
+ throw new UnsupportedOperationException("cannot call isAllowed(ContextEntry context)");
+ }
+
/**
* Literal constraints cannot have required declarations, so always return an empty array.
* @return
@@ -60,15 +70,10 @@
return LiteralRestriction.requiredDeclarations;
}
- public boolean isAllowed(final Object object,
- final Tuple tuple,
- final WorkingMemory workingMemory) {
- return this.evaluator.evaluate( object,
- this.field.getValue() );
- }
+
public String toString() {
- return "[LiteralRestriction evaluator=" + this.evaluator + " value=" + this.field.getValue() + "]";
+ return "[LiteralRestriction evaluator=" + this.evaluator + " value=" + this.field + "]";
}
public int hashCode() {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MultiRestrictionFieldConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MultiRestrictionFieldConstraint.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/MultiRestrictionFieldConstraint.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -1,14 +1,14 @@
package org.drools.rule;
import org.drools.WorkingMemory;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.FieldExtractor;
import org.drools.spi.Restriction;
import org.drools.spi.Tuple;
public class MultiRestrictionFieldConstraint
implements
- FieldConstraint {
+ AlphaNodeFieldConstraint {
/**
*
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-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/PredicateConstraint.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -18,13 +18,13 @@
import org.drools.RuntimeDroolsException;
import org.drools.WorkingMemory;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.PredicateExpression;
import org.drools.spi.Tuple;
public class PredicateConstraint
implements
- FieldConstraint {
+ AlphaNodeFieldConstraint {
/**
*
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-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/ReturnValueConstraint.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -18,14 +18,14 @@
import org.drools.WorkingMemory;
import org.drools.spi.Evaluator;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.FieldExtractor;
import org.drools.spi.ReturnValueExpression;
import org.drools.spi.Tuple;
public class ReturnValueConstraint
implements
- FieldConstraint {
+ AlphaNodeFieldConstraint {
/**
*
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-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableConstraint.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -17,14 +17,18 @@
*/
import org.drools.WorkingMemory;
+import org.drools.common.InternalFactHandle;
+import org.drools.reteoo.ReteTuple;
+import org.drools.spi.BetaNodeFieldConstraint;
import org.drools.spi.Evaluator;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.FieldExtractor;
import org.drools.spi.Tuple;
+import org.drools.util.BaseEntry;
public class VariableConstraint
implements
- FieldConstraint {
+ BetaNodeFieldConstraint {
/**
*
@@ -59,18 +63,18 @@
public Evaluator getEvaluator() {
return this.restriction.getEvaluator();
}
-
- public boolean isAllowed(final Object object,
- final Tuple tuple,
- final WorkingMemory workingMemory) {
- return this.restriction.isAllowed( this.fieldExtractor.getValue( object ),
- tuple,
- workingMemory );
+
+ public boolean isAllowed(ContextEntry context) {
+ return this.restriction.isAllowed( context );
}
public String toString() {
return "[VariableConstraint fieldExtractor=" + this.fieldExtractor + " declaration=" + getRequiredDeclarations() + "]";
}
+
+ public ContextEntry getContextEntry() {
+ return new VariableContextEntry(this.fieldExtractor, this.restriction.getRequiredDeclarations()[0] );
+ }
public int hashCode() {
final int PRIME = 31;
@@ -93,5 +97,39 @@
return this.fieldExtractor.equals( other.fieldExtractor ) && this.restriction.equals( other.restriction );
}
+
+
+ public static class VariableContextEntry implements ContextEntry {
+ public Object left;
+ public Object right;
+
+ private FieldExtractor extractor;
+ private Declaration declaration;
+ private ContextEntry entry;
+
+
+ public VariableContextEntry(FieldExtractor extractor, Declaration declaration) {
+ this.extractor = extractor;
+ this.declaration = declaration;
+ }
+
+ public ContextEntry getNext() {
+ return this.entry;
+ }
+
+ public void setNext(ContextEntry entry) {
+ this.entry = entry;
+ }
+
+ public void updateFromFactHandle(InternalFactHandle handle) {
+ this.left = this.extractor.getValue( handle.getObject() );
+
+ }
+
+ public void updateFromTuple(ReteTuple tuple) {
+ this.right = this.declaration.getValue( tuple.get( this.declaration ).getObject() );
+ }
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableRestriction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableRestriction.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/rule/VariableRestriction.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -19,6 +19,8 @@
import java.util.Arrays;
import org.drools.WorkingMemory;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.rule.VariableConstraint.VariableContextEntry;
import org.drools.spi.Evaluator;
import org.drools.spi.Restriction;
import org.drools.spi.Tuple;
@@ -52,12 +54,11 @@
public Evaluator getEvaluator() {
return this.evaluator;
}
-
- public boolean isAllowed(final Object object,
- final Tuple tuple,
- final WorkingMemory workingMemory) {
- return this.evaluator.evaluate( object,
- this.declaration.getValue( tuple.get( this.declaration ).getObject() ) );
+
+ public boolean isAllowed(ContextEntry context) {
+ VariableContextEntry variableContext = ( VariableContextEntry ) context;
+ return this.evaluator.evaluate( variableContext.left,
+ variableContext.right );
}
public String toString() {
@@ -91,4 +92,8 @@
other.requiredDeclarations );
}
+ public boolean isAllowed(Object object,
+ InternalWorkingMemory workingMemoiry) {
+ throw new UnsupportedOperationException("does not support method call isAllowed(Object object, InternalWorkingMemory workingMemoiry)" );
+ }
}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/AlphaNodeFieldConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/AlphaNodeFieldConstraint.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/AlphaNodeFieldConstraint.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -0,0 +1,30 @@
+package org.drools.spi;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.drools.WorkingMemory;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.rule.ContextEntry;
+import org.drools.rule.Declaration;
+
+public interface AlphaNodeFieldConstraint
+ extends
+ Constraint {
+
+ public boolean isAllowed(Object object,
+ InternalWorkingMemory workingMemory);
+}
\ No newline at end of file
Copied: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/BetaNodeFieldConstraint.java (from rev 6684, labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/FieldConstraint.java)
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/FieldConstraint.java 2006-10-08 12:09:35 UTC (rev 6684)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/BetaNodeFieldConstraint.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -0,0 +1,31 @@
+package org.drools.spi;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.drools.WorkingMemory;
+import org.drools.rule.ContextEntry;
+import org.drools.rule.Declaration;
+
+public interface BetaNodeFieldConstraint
+ extends
+ Constraint {
+
+ public boolean isAllowed(ContextEntry context);
+
+ public ContextEntry getContextEntry();
+
+}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Constraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Constraint.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Constraint.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -1,5 +1,8 @@
package org.drools.spi;
+import org.drools.rule.ContextEntry;
+import org.drools.rule.Declaration;
+
/*
* Copyright 2005 JBoss Inc
*
@@ -19,5 +22,6 @@
public interface Constraint
extends
RuleComponent {
-
+
+ Declaration[] getRequiredDeclarations();
}
\ No newline at end of file
Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/FieldConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/FieldConstraint.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/FieldConstraint.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -1,30 +0,0 @@
-package org.drools.spi;
-
-/*
- * Copyright 2005 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import org.drools.WorkingMemory;
-import org.drools.rule.Declaration;
-
-public interface FieldConstraint
- extends
- Constraint {
- public boolean isAllowed(Object object,
- Tuple tuple,
- WorkingMemory workingMemory);
-
- Declaration[] getRequiredDeclarations();
-}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Restriction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Restriction.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/Restriction.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -3,12 +3,14 @@
import java.io.Serializable;
import org.drools.WorkingMemory;
+import org.drools.common.InternalWorkingMemory;
+import org.drools.rule.ContextEntry;
import org.drools.rule.Declaration;
public interface Restriction extends Serializable {
Declaration[] getRequiredDeclarations();
- public boolean isAllowed(Object object,
- Tuple tuple,
- WorkingMemory workingMemory);
+ public boolean isAllowed(Object object, InternalWorkingMemory workingMemoiry);
+
+ public boolean isAllowed(ContextEntry context);
}
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/BaseMannersTest.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -48,10 +48,11 @@
import org.drools.rule.Package;
import org.drools.rule.Rule;
import org.drools.rule.VariableConstraint;
+import org.drools.spi.BetaNodeFieldConstraint;
import org.drools.spi.Consequence;
import org.drools.spi.ConsequenceException;
import org.drools.spi.Evaluator;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.FieldExtractor;
import org.drools.spi.FieldValue;
import org.drools.spi.KnowledgeHelper;
@@ -89,25 +90,32 @@
protected void setUp() throws Exception {
Class shadow = ShadowProxyFactory.getProxy( Context.class );
- this.contextType = new ClassObjectType( Context.class, shadow );
+ this.contextType = new ClassObjectType( Context.class,
+ shadow );
shadow = ShadowProxyFactory.getProxy( Guest.class );
- this.guestType = new ClassObjectType( Guest.class, shadow );
-
+ this.guestType = new ClassObjectType( Guest.class,
+ shadow );
+
shadow = ShadowProxyFactory.getProxy( Seating.class );
- this.seatingType = new ClassObjectType( Seating.class, shadow );
+ this.seatingType = new ClassObjectType( Seating.class,
+ shadow );
shadow = ShadowProxyFactory.getProxy( LastSeat.class );
- this.lastSeatType = new ClassObjectType( LastSeat.class, shadow );
+ this.lastSeatType = new ClassObjectType( LastSeat.class,
+ shadow );
shadow = ShadowProxyFactory.getProxy( Count.class );
- this.countType = new ClassObjectType( Count.class, shadow );
+ this.countType = new ClassObjectType( Count.class,
+ shadow );
shadow = ShadowProxyFactory.getProxy( Path.class );
- this.pathType = new ClassObjectType( Path.class, shadow );
+ this.pathType = new ClassObjectType( Path.class,
+ shadow );
shadow = ShadowProxyFactory.getProxy( Chosen.class );
- this.chosenType = new ClassObjectType( Chosen.class, shadow );
+ this.chosenType = new ClassObjectType( Chosen.class,
+ shadow );
this.integerEqualEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.EQUAL );
this.integerNotEqualEvaluator = ValueType.INTEGER_TYPE.getEvaluator( Operator.NOT_EQUAL );
@@ -201,7 +209,7 @@
public void evaluate(KnowledgeHelper drools,
WorkingMemory workingMemory) throws ConsequenceException {
- try {
+ try {
Rule rule = drools.getRule();
Tuple tuple = drools.getTuple();
@@ -465,9 +473,9 @@
public void evaluate(KnowledgeHelper drools,
WorkingMemory workingMemory) throws ConsequenceException {
try {
-// MemoryVisitor visitor = new MemoryVisitor( ( InternalWorkingMemory ) workingMemory );
-// visitor.visit( workingMemory.getRuleBase() );
-
+ // MemoryVisitor visitor = new MemoryVisitor( ( InternalWorkingMemory ) workingMemory );
+ // visitor.visit( workingMemory.getRuleBase() );
+
Rule rule = drools.getRule();
Tuple tuple = drools.getTuple();
@@ -744,9 +752,9 @@
seating.setPathDone( true );
-// if ( seating.getId() == 6 ) {
-// System.err.println( "pause" );
-// }
+ // if ( seating.getId() == 6 ) {
+ // System.err.println( "pause" );
+ // }
drools.modifyObject( tuple.get( seatingDeclaration ),
seating );
@@ -1098,10 +1106,10 @@
return -1;
}
- private FieldConstraint getLiteralConstraint(final Column column,
- final String fieldName,
- final Object fieldValue,
- final Evaluator evaluator) throws IntrospectionException {
+ private AlphaNodeFieldConstraint getLiteralConstraint(final Column column,
+ final String fieldName,
+ final Object fieldValue,
+ final Evaluator evaluator) throws IntrospectionException {
final Class clazz = ((ClassObjectType) column.getObjectType()).getClassType();
final FieldExtractor extractor = new ClassFieldExtractor( clazz,
@@ -1126,17 +1134,17 @@
extractor );
}
- private FieldConstraint getBoundVariableConstraint(final Column column,
- final String fieldName,
- final Declaration declaration,
- final Evaluator evaluator) throws IntrospectionException {
+ private BetaNodeFieldConstraint getBoundVariableConstraint(final Column column,
+ final String fieldName,
+ final Declaration declaration,
+ final Evaluator evaluator) throws IntrospectionException {
final Class clazz = ((ClassObjectType) column.getObjectType()).getClassType();
final FieldExtractor extractor = new ClassFieldExtractor( clazz,
fieldName );
return new VariableConstraint( extractor,
- declaration,
- evaluator );
+ declaration,
+ evaluator );
}
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/ReteooMannersTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/ReteooMannersTest.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/manners/ReteooMannersTest.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -24,6 +24,8 @@
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
import org.drools.common.InternalWorkingMemory;
+import org.drools.event.AfterActivationFiredEvent;
+import org.drools.event.DefaultAgendaEventListener;
import org.drools.reteoo.MemoryVisitor;
public class ReteooMannersTest extends BaseMannersTest {
@@ -34,28 +36,36 @@
ruleBase.addPackage( this.pkg );
final WorkingMemory workingMemory = ruleBase.newWorkingMemory();
- // workingMemory.addEventListener( new DefaultAgendaEventListener() {
- // public void activationCreated(ActivationCreatedEvent event) {
- // super.activationCreated( event );
- // System.out.println( event );
- // }
- //
- // public void activationCancelled(ActivationCancelledEvent event) {
- // super.activationCancelled( event );
- // System.out.println( event );
- // }
- //
- // public void beforeActivationFired(BeforeActivationFiredEvent event) {
- // super.beforeActivationFired( event );
- // System.out.println( event );
- // }
- //
- // public void afterActivationFired(AfterActivationFiredEvent event) {
- // super.afterActivationFired( event );
- // System.out.println( event );
- // }
- //
- // });
+ DefaultAgendaEventListener listener =new DefaultAgendaEventListener() {
+ private int counter = 0;
+// public void activationCreated(ActivationCreatedEvent event) {
+// super.activationCreated( event );
+// System.out.println( event );
+// }
+//
+// public void activationCancelled(ActivationCancelledEvent event) {
+// super.activationCancelled( event );
+// System.out.println( event );
+// }
+//
+// public void beforeActivationFired(BeforeActivationFiredEvent event) {
+// super.beforeActivationFired( event );
+// System.out.println( event );
+// }
+
+ public void afterActivationFired(AfterActivationFiredEvent event) {
+ counter++;
+ //super.afterActivationFired( event );
+ //System.out.println( event );
+ }
+
+ public String toString() {
+ return "fired : " + this.counter;
+ }
+
+ };
+
+ //workingMemory.addEventListener(listener );
final InputStream is = getClass().getResourceAsStream( "/manners128.dat" );
final List list = getInputObjects( is );
@@ -70,6 +80,13 @@
workingMemory.fireAllRules();
System.err.println( System.currentTimeMillis() - start );
+ //System.out.println( listener );
+
+// while (1==1){
+// Thread.yield();
+// Thread.sleep( 2000 );
+// }
+
MemoryVisitor visitor = new MemoryVisitor( ( InternalWorkingMemory ) workingMemory );
visitor.visit( ruleBase );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/waltz/BaseWaltzTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/waltz/BaseWaltzTest.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/examples/waltz/BaseWaltzTest.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -45,7 +45,7 @@
import org.drools.spi.Consequence;
import org.drools.spi.ConsequenceException;
import org.drools.spi.Evaluator;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.FieldExtractor;
import org.drools.spi.KnowledgeHelper;
import org.drools.spi.MockField;
@@ -3741,7 +3741,7 @@
return -1;
}
- private FieldConstraint getLiteralConstraint(final Column column,
+ private AlphaNodeFieldConstraint getLiteralConstraint(final Column column,
final String fieldName,
final Object fieldValue,
final Evaluator evaluator) throws IntrospectionException {
@@ -3769,7 +3769,7 @@
extractor );
}
- private FieldConstraint getBoundVariableConstraint(final Column column,
+ private AlphaNodeFieldConstraint getBoundVariableConstraint(final Column column,
final String fieldName,
final Declaration declaration,
final Evaluator evaluator) throws IntrospectionException {
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/ColumnConstraintsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/ColumnConstraintsTest.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/ColumnConstraintsTest.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -32,7 +32,7 @@
import org.drools.rule.Column;
import org.drools.rule.LiteralConstraint;
import org.drools.spi.Evaluator;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.FieldExtractor;
import org.drools.spi.FieldValue;
import org.drools.spi.MockField;
@@ -63,7 +63,7 @@
final RuleBase ruleBase = RuleBaseFactory.newRuleBase( RuleBase.LEAPS );
final ArrayList alphas = new ArrayList();
ColumnConstraints columnConstraints;
- FieldConstraint constraint;
+ AlphaNodeFieldConstraint constraint;
final ClassObjectType contextType = new ClassObjectType( Context.class );
final Column testColumn = new Column( 0,
contextType,
@@ -104,7 +104,7 @@
final RuleBase ruleBase = RuleBaseFactory.newRuleBase( RuleBase.LEAPS );
final ArrayList alphas = new ArrayList();
ColumnConstraints columnConstraints;
- FieldConstraint constraint;
+ AlphaNodeFieldConstraint constraint;
final ClassObjectType contextType = new ClassObjectType( Context.class );
final Column testColumn = new Column( 0,
contextType,
@@ -134,7 +134,7 @@
}
- private FieldConstraint getLiteralConstraint(final Column column,
+ private AlphaNodeFieldConstraint getLiteralConstraint(final Column column,
final String fieldName,
final Object fieldValue,
final Evaluator evaluator) throws IntrospectionException {
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/HashedTableComponentTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/HashedTableComponentTest.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/HashedTableComponentTest.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -50,7 +50,7 @@
import org.drools.spi.Consequence;
import org.drools.spi.ConsequenceException;
import org.drools.spi.Evaluator;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.FieldExtractor;
import org.drools.spi.FieldValue;
import org.drools.spi.KnowledgeHelper;
@@ -343,7 +343,7 @@
return -1;
}
- private FieldConstraint getLiteralConstraint( final Column column,
+ private AlphaNodeFieldConstraint getLiteralConstraint( final Column column,
final String fieldName,
final Object fieldValue,
final Evaluator evaluator )
@@ -368,7 +368,7 @@
column.addDeclaration( identifier, extractor );
}
- private FieldConstraint getBoundVariableConstraint( final Column column,
+ private AlphaNodeFieldConstraint getBoundVariableConstraint( final Column column,
final String fieldName,
final Declaration declaration,
final Evaluator evaluator )
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/LeapsRuleBaseTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/LeapsRuleBaseTest.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/LeapsRuleBaseTest.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -34,7 +34,7 @@
import org.drools.spi.Consequence;
import org.drools.spi.ConsequenceException;
import org.drools.spi.Evaluator;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.FieldExtractor;
import org.drools.spi.FieldValue;
import org.drools.spi.KnowledgeHelper;
@@ -382,7 +382,7 @@
assertTrue( this.handlesForRules.contains( this.handle2Rule2 ) );
}
- private FieldConstraint getLiteralConstraint(final Column column,
+ private AlphaNodeFieldConstraint getLiteralConstraint(final Column column,
final String fieldName,
final Object fieldValue,
final Evaluator evaluator) {
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/QueryResultsTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/QueryResultsTest.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/QueryResultsTest.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -33,7 +33,7 @@
import org.drools.rule.LiteralConstraint;
import org.drools.rule.Query;
import org.drools.spi.Evaluator;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.FieldExtractor;
import org.drools.spi.FieldValue;
import org.drools.spi.MockField;
@@ -185,7 +185,7 @@
}
- private FieldConstraint getLiteralConstraint(final Column column,
+ private AlphaNodeFieldConstraint getLiteralConstraint(final Column column,
final String fieldName,
final Object fieldValue,
final Evaluator evaluator) {
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/QueryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/QueryTest.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/leaps/QueryTest.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -35,7 +35,7 @@
import org.drools.spi.Consequence;
import org.drools.spi.ConsequenceException;
import org.drools.spi.Evaluator;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.FieldExtractor;
import org.drools.spi.FieldValue;
import org.drools.spi.KnowledgeHelper;
@@ -154,7 +154,7 @@
assertTrue( this.handlesForRules.contains( this.handle2Rule2 ) );
}
- private FieldConstraint getLiteralConstraint(final Column column,
+ private AlphaNodeFieldConstraint getLiteralConstraint(final Column column,
final String fieldName,
final Object fieldValue,
final Evaluator evaluator) {
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/FromNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/FromNodeTest.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/FromNodeTest.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -22,7 +22,7 @@
import org.drools.rule.LiteralConstraint;
import org.drools.rule.VariableConstraint;
import org.drools.spi.DataProvider;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.FieldValue;
import org.drools.spi.MockField;
import org.drools.spi.PropagationContext;
@@ -57,7 +57,7 @@
FromNode from = new FromNode( 3,
dataProvider,
null,
- new FieldConstraint[]{constraint},
+ new AlphaNodeFieldConstraint[]{constraint},
null );
MockTupleSink sink = new MockTupleSink( 5 );
from.addTupleSink( sink );
@@ -156,7 +156,7 @@
FromNode from = new FromNode( 3,
dataProvider,
null,
- new FieldConstraint[]{variableConstraint},
+ new AlphaNodeFieldConstraint[]{variableConstraint},
null );
MockTupleSink sink = new MockTupleSink( 5 );
from.addTupleSink( sink );
@@ -245,7 +245,7 @@
FromNode from = new FromNode( 3,
dataProvider,
null,
- new FieldConstraint[]{constraint},
+ new AlphaNodeFieldConstraint[]{constraint},
null );
MockTupleSink sink = new MockTupleSink( 5 );
from.addTupleSink( sink );
@@ -317,7 +317,7 @@
FromNode from = new FromNode( 3,
dataProvider,
null,
- new FieldConstraint[]{constraint},
+ new AlphaNodeFieldConstraint[]{constraint},
null );
MockTupleSink sink = new MockTupleSink( 5 );
from.addTupleSink( sink );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/JoinNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/JoinNodeTest.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/reteoo/JoinNodeTest.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -27,7 +27,7 @@
import org.drools.common.InternalFactHandle;
import org.drools.common.PropagationContextImpl;
import org.drools.rule.Rule;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.MockConstraint;
import org.drools.spi.PropagationContext;
import org.drools.spi.Tuple;
@@ -64,7 +64,7 @@
this.node = new JoinNode( 15,
this.tupleSource,
this.objectSource,
- new BetaNodeConstraints( new FieldConstraint[]{this.constraint} ) );
+ new BetaNodeConstraints( new AlphaNodeFieldConstraint[]{this.constraint} ) );
this.node.addTupleSink( this.sink );
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/OrTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/OrTest.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/rule/OrTest.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -35,7 +35,7 @@
import org.drools.spi.Consequence;
import org.drools.spi.ConsequenceException;
import org.drools.spi.Evaluator;
-import org.drools.spi.FieldConstraint;
+import org.drools.spi.AlphaNodeFieldConstraint;
import org.drools.spi.FieldExtractor;
import org.drools.spi.FieldValue;
import org.drools.spi.KnowledgeHelper;
@@ -378,7 +378,7 @@
extractor );
}
- private FieldConstraint getLiteralConstraint(final Column column,
+ private AlphaNodeFieldConstraint getLiteralConstraint(final Column column,
final String fieldName,
final Object fieldValue,
final Evaluator evaluator) throws IntrospectionException {
@@ -397,7 +397,7 @@
field );
}
- private FieldConstraint getBoundVariableConstraint(final Column column,
+ private AlphaNodeFieldConstraint getBoundVariableConstraint(final Column column,
final String fieldName,
final Declaration declaration,
final Evaluator evaluator) throws IntrospectionException {
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockConstraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockConstraint.java 2006-10-09 23:10:54 UTC (rev 6715)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/spi/MockConstraint.java 2006-10-10 10:13:27 UTC (rev 6716)
@@ -21,7 +21,7 @@
public class MockConstraint
implements
- FieldConstraint {
+ AlphaNodeFieldConstraint {
/**
*
More information about the jboss-svn-commits
mailing list