[jboss-svn-commits] JBL Code SVN: r12898 - in labs/jbossrules/trunk/drools-core/src/main/java/org/drools: reteoo/builder and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jun 27 16:17:46 EDT 2007
Author: tirelli
Date: 2007-06-27 16:17:46 -0400 (Wed, 27 Jun 2007)
New Revision: 12898
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/DoubleBetaConstraints.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/QuadroupleBetaConstraints.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/builder/BuildUtils.java
Log:
JBRULES-546: adding support to 'from' chaining
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 2007-06-27 20:04:30 UTC (rev 12897)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DefaultBetaConstraints.java 2007-06-27 20:17:46 UTC (rev 12898)
@@ -58,6 +58,13 @@
public DefaultBetaConstraints(final BetaNodeFieldConstraint[] constraints,
final RuleBaseConfiguration conf) {
+ this( constraints, conf, false );
+
+ }
+
+ public DefaultBetaConstraints(final BetaNodeFieldConstraint[] constraints,
+ final RuleBaseConfiguration conf,
+ final boolean disableIndexing ) {
this.conf = conf;
this.indexed = -1;
this.constraints = new LinkedList();
@@ -67,7 +74,7 @@
// First create a LinkedList of constraints, with the indexed constraints first.
for ( int i = 0, length = constraints.length; i < length; i++ ) {
// Determine if this constraint is indexable
- if ( isIndexable( constraints[i] ) ) {
+ if ( (!disableIndexing) && conf.isIndexLeftBetaMemory() && conf.isIndexRightBetaMemory() && isIndexable( constraints[i] ) ) {
if ( depth >= 1 && this.indexed == -1 ) {
// first index, so just add to the front
this.constraints.insertAfter( null,
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 2007-06-27 20:04:30 UTC (rev 12897)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/DoubleBetaConstraints.java 2007-06-27 20:17:46 UTC (rev 12898)
@@ -60,8 +60,16 @@
public DoubleBetaConstraints(final BetaNodeFieldConstraint[] constraints,
final RuleBaseConfiguration conf) {
+ this( constraints,
+ conf,
+ false );
+ }
+
+ public DoubleBetaConstraints(final BetaNodeFieldConstraint[] constraints,
+ final RuleBaseConfiguration conf,
+ final boolean disableIndexing) {
this.conf = conf;
- if ( !conf.isIndexLeftBetaMemory() && !conf.isIndexRightBetaMemory() ) {
+ if ( disableIndexing || ( !conf.isIndexLeftBetaMemory() && !conf.isIndexRightBetaMemory() ) ) {
this.indexed0 = false;
this.indexed1 = false;
} else {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/QuadroupleBetaConstraints.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/QuadroupleBetaConstraints.java 2007-06-27 20:04:30 UTC (rev 12897)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/QuadroupleBetaConstraints.java 2007-06-27 20:17:46 UTC (rev 12898)
@@ -66,8 +66,16 @@
public QuadroupleBetaConstraints(final BetaNodeFieldConstraint[] constraints,
final RuleBaseConfiguration conf) {
+ this( constraints,
+ conf,
+ false );
+ }
+
+ public QuadroupleBetaConstraints(final BetaNodeFieldConstraint[] constraints,
+ final RuleBaseConfiguration conf,
+ final boolean disableIndexing) {
this.conf = conf;
- if ( !conf.isIndexLeftBetaMemory() && !conf.isIndexRightBetaMemory() ) {
+ if ( disableIndexing || ( !conf.isIndexLeftBetaMemory() && !conf.isIndexRightBetaMemory() ) ) {
this.indexed0 = false;
this.indexed1 = false;
this.indexed2 = false;
@@ -128,7 +136,7 @@
swap( constraints,
3,
2 );
- } else if ( depth >= 4 ){
+ } else if ( depth >= 4 ) {
this.indexed3 = true;
}
}
@@ -208,7 +216,7 @@
object )) && (this.indexed2 || this.constraint2.isAllowedCachedLeft( this.context2,
object ))
&& (this.indexed3 || this.constraint3.isAllowedCachedLeft( this.context3,
- object ));
+ object ));
}
/* (non-Javadoc)
@@ -218,8 +226,9 @@
return this.constraint0.isAllowedCachedRight( tuple,
this.context0 ) && this.constraint1.isAllowedCachedRight( tuple,
this.context1 ) && this.constraint2.isAllowedCachedRight( tuple,
- this.context2 ) && ( this.indexed3 || this.constraint3.isAllowedCachedRight( tuple,
- this.context3 ));
+ this.context2 )
+ && (this.indexed3 || this.constraint3.isAllowedCachedRight( tuple,
+ this.context3 ));
}
public boolean isIndexed() {
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 2007-06-27 20:04:30 UTC (rev 12897)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/TripleBetaConstraints.java 2007-06-27 20:17:46 UTC (rev 12898)
@@ -63,8 +63,16 @@
public TripleBetaConstraints(final BetaNodeFieldConstraint[] constraints,
final RuleBaseConfiguration conf) {
+ this( constraints,
+ conf,
+ false );
+ }
+
+ public TripleBetaConstraints(final BetaNodeFieldConstraint[] constraints,
+ final RuleBaseConfiguration conf,
+ final boolean disableIndexing) {
this.conf = conf;
- if ( !conf.isIndexLeftBetaMemory() && !conf.isIndexRightBetaMemory() ) {
+ if ( disableIndexing || (!conf.isIndexLeftBetaMemory() && !conf.isIndexRightBetaMemory()) ) {
this.indexed0 = false;
this.indexed1 = false;
this.indexed2 = false;
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/BuildUtils.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/BuildUtils.java 2007-06-27 20:04:30 UTC (rev 12897)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/builder/BuildUtils.java 2007-06-27 20:17:46 UTC (rev 12898)
@@ -175,19 +175,23 @@
break;
case 2 :
constraints = new DoubleBetaConstraints( (BetaNodeFieldConstraint[]) list.toArray( new BetaNodeFieldConstraint[list.size()] ),
- context.getRuleBase().getConfiguration() );
+ context.getRuleBase().getConfiguration(),
+ disableIndexing );
break;
case 3 :
constraints = new TripleBetaConstraints( (BetaNodeFieldConstraint[]) list.toArray( new BetaNodeFieldConstraint[list.size()] ),
- context.getRuleBase().getConfiguration() );
+ context.getRuleBase().getConfiguration(),
+ disableIndexing );
break;
case 4 :
constraints = new QuadroupleBetaConstraints( (BetaNodeFieldConstraint[]) list.toArray( new BetaNodeFieldConstraint[list.size()] ),
- context.getRuleBase().getConfiguration() );
+ context.getRuleBase().getConfiguration(),
+ disableIndexing );
break;
default :
constraints = new DefaultBetaConstraints( (BetaNodeFieldConstraint[]) list.toArray( new BetaNodeFieldConstraint[list.size()] ),
- context.getRuleBase().getConfiguration() );
+ context.getRuleBase().getConfiguration(),
+ disableIndexing );
}
return constraints;
}
More information about the jboss-svn-commits
mailing list