[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