[jboss-svn-commits] JBL Code SVN: r16898 - in labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow: core/impl and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Nov 28 07:07:56 EST 2007


Author: mark.proctor at jboss.com
Date: 2007-11-28 07:07:56 -0500 (Wed, 28 Nov 2007)
New Revision: 16898

Added:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/impl/RuleFlowConstraintEvaluator.java
Removed:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/nodes/split/RuleFlowConstraintEvaluator.java
Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/Constraint.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/impl/ConstraintImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/RuleFlowSplitInstanceImpl.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/nodes/split/ConstraintEvaluator.java
Log:
JBRULES-1352 Allow Constraints to also use dialectable expression evaluations
-moved more process build stuff from PackageBuilder to ProcessBuilder, ProcessBuilder now no longer returns an array of Processes.
-The builder is now responsible for replacing the Constraint for the ConstraintEvaluator in the Split

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/Constraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/Constraint.java	2007-11-28 12:07:47 UTC (rev 16897)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/Constraint.java	2007-11-28 12:07:56 UTC (rev 16898)
@@ -25,14 +25,7 @@
  * @author <a href="mailto:kris_verlaenen at hotmail.com">Kris Verlaenen</a>
  */
 public interface Constraint {
-    
     /**
-     * Returns the evaluation delegate for this constraint
-     * @return
-     */
-    ConstraintEvaluator getConstraintDelegate();
-
-    /**
      * Typically this method returns the constraint as a String
      * @return the constraint
      */

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/impl/ConstraintImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/impl/ConstraintImpl.java	2007-11-28 12:07:47 UTC (rev 16897)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/impl/ConstraintImpl.java	2007-11-28 12:07:56 UTC (rev 16898)
@@ -20,8 +20,6 @@
 
 import org.drools.ruleflow.core.Constraint;
 import org.drools.ruleflow.nodes.split.ConstraintEvaluator;
-import org.drools.ruleflow.nodes.split.RuleFlowConstraintEvaluator;
-
 /**
  * Default implementation of a constraint.
  * 
@@ -36,7 +34,6 @@
 
     private String             name;
     private String             constraint;
-    private ConstraintEvaluator delegate  = new RuleFlowConstraintEvaluator();
     private int                priority;
     private String             dialect;
     private String             type;
@@ -49,14 +46,6 @@
         this.constraint = constraint;
     }
 
-    public void setDelegate(ConstraintEvaluator delegate) {
-        this.delegate = delegate;
-    }
-
-    public ConstraintEvaluator getConstraintDelegate() {
-        return this.delegate;
-    }
-
     public String getName() {
         return this.name;
     }

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/impl/RuleFlowConstraintEvaluator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/impl/RuleFlowConstraintEvaluator.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/impl/RuleFlowConstraintEvaluator.java	2007-11-28 12:07:56 UTC (rev 16898)
@@ -0,0 +1,109 @@
+package org.drools.ruleflow.core.impl;
+
+/*
+ * 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 java.io.Serializable;
+import java.util.Iterator;
+
+import org.drools.common.RuleFlowGroupNode;
+import org.drools.ruleflow.core.Connection;
+import org.drools.ruleflow.core.Constraint;
+import org.drools.ruleflow.instance.RuleFlowProcessInstance;
+import org.drools.ruleflow.instance.impl.RuleFlowSplitInstanceImpl;
+import org.drools.ruleflow.nodes.split.ConstraintEvaluator;
+import org.drools.spi.Activation;
+import org.drools.spi.RuleFlowGroup;
+
+/**
+ * Default implementation of a constraint.
+ * 
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">Kris Verlaenen</a>
+ */
+public class RuleFlowConstraintEvaluator
+    implements
+    Constraint, ConstraintEvaluator,
+    Serializable {
+
+    private static final long  serialVersionUID = 400L;
+
+    private String             name;
+    private String             constraint;
+    private int                priority;
+    private String             dialect;
+    private String             type;       
+    
+    public String getConstraint() {
+        return this.constraint;
+    }
+
+    public void setConstraint(final String constraint) {
+        this.constraint = constraint;
+    }
+
+    public String getName() {
+        return this.name;
+    }
+
+    public void setName(final String name) {
+        this.name = name;
+    }
+
+    public String toString() {
+        return this.name;
+    }
+
+    public int getPriority() {
+        return this.priority;
+    }
+
+    public void setPriority(final int priority) {
+        this.priority = priority;
+    }
+
+    public String getDialect() {
+        return dialect;
+    }
+
+    public void setDialect(String dialect) {
+        this.dialect = dialect;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+    
+    public boolean evaluate(RuleFlowSplitInstanceImpl instance,
+                            Connection connection,
+                            Constraint constraint) {
+        RuleFlowProcessInstance processInstance = instance.getProcessInstance();
+        RuleFlowGroup systemRuleFlowGroup = processInstance.getAgenda().getRuleFlowGroup( "DROOLS_SYSTEM" );
+
+        String rule = "RuleFlow-Split-" + processInstance.getProcess().getId() + "-" + instance.getNode().getId() + "-" + connection.getTo().getId();
+        for ( Iterator activations = systemRuleFlowGroup.iterator(); activations.hasNext(); ) {
+            Activation activation = ((RuleFlowGroupNode) activations.next()).getActivation();
+            if ( rule.equals( activation.getRule().getName() ) ) {
+                return true;
+            }
+        }
+        return false;
+    }    
+
+}

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/RuleFlowSplitInstanceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/RuleFlowSplitInstanceImpl.java	2007-11-28 12:07:47 UTC (rev 16897)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/RuleFlowSplitInstanceImpl.java	2007-11-28 12:07:56 UTC (rev 16898)
@@ -23,6 +23,7 @@
 import org.drools.ruleflow.core.Constraint;
 import org.drools.ruleflow.core.Split;
 import org.drools.ruleflow.instance.RuleFlowNodeInstance;
+import org.drools.ruleflow.nodes.split.ConstraintEvaluator;
 
 /**
  * Runtime counterpart of a split node.
@@ -51,11 +52,11 @@
                 Connection selected = null;
                 for ( final Iterator iterator = outgoing.iterator(); iterator.hasNext(); ) {
                     final Connection connection = (Connection) iterator.next();
-                    Constraint constraint = split.getConstraint( connection );
+                    ConstraintEvaluator constraint = (ConstraintEvaluator) split.getConstraint( connection );
                     if ( constraint != null && constraint.getPriority() < priority ) {
-                        if ( constraint.getConstraintDelegate().evaluate( this,
-                                                                          connection,
-                                                                          constraint ) ) {
+                        if ( constraint.evaluate( this,
+                                                  connection,
+                                                  constraint ) ) {
                             selected = connection;
                             priority = constraint.getPriority();
                             break;
@@ -72,11 +73,11 @@
                 boolean found = false;
                 for ( final Iterator iterator = outgoing.iterator(); iterator.hasNext(); ) {
                     final Connection connection = (Connection) iterator.next();
-                    Constraint constraint = split.getConstraint( connection );
+                    ConstraintEvaluator constraint = (ConstraintEvaluator) split.getConstraint( connection );
 
-                    if ( constraint != null && constraint.getConstraintDelegate().evaluate( this,
-                                                                                            connection,
-                                                                                            constraint ) ) {
+                    if ( constraint != null && constraint.evaluate( this,
+                                                                    connection,
+                                                                    constraint ) ) {
                         getProcessInstance().getNodeInstance( connection.getTo() ).trigger( this );
                         found = true;
                     }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/nodes/split/ConstraintEvaluator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/nodes/split/ConstraintEvaluator.java	2007-11-28 12:07:47 UTC (rev 16897)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/nodes/split/ConstraintEvaluator.java	2007-11-28 12:07:56 UTC (rev 16898)
@@ -5,7 +5,7 @@
 import org.drools.ruleflow.core.Split;
 import org.drools.ruleflow.instance.impl.RuleFlowSplitInstanceImpl;
 
-public interface ConstraintEvaluator {
+public interface ConstraintEvaluator extends Constraint {
     public boolean evaluate(RuleFlowSplitInstanceImpl instance,
                          Connection connection,
                          Constraint constraint);

Deleted: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/nodes/split/RuleFlowConstraintEvaluator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/nodes/split/RuleFlowConstraintEvaluator.java	2007-11-28 12:07:47 UTC (rev 16897)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/nodes/split/RuleFlowConstraintEvaluator.java	2007-11-28 12:07:56 UTC (rev 16898)
@@ -1,33 +0,0 @@
-package org.drools.ruleflow.nodes.split;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.drools.common.RuleFlowGroupNode;
-import org.drools.ruleflow.core.Connection;
-import org.drools.ruleflow.core.Constraint;
-import org.drools.ruleflow.core.Split;
-import org.drools.ruleflow.instance.RuleFlowProcessInstance;
-import org.drools.ruleflow.instance.impl.RuleFlowSplitInstanceImpl;
-import org.drools.spi.Activation;
-import org.drools.spi.RuleFlowGroup;
-
-public class RuleFlowConstraintEvaluator
-    implements
-    ConstraintEvaluator {
-    public boolean evaluate(RuleFlowSplitInstanceImpl instance,
-                            Connection connection,
-                            Constraint constraint) {
-        RuleFlowProcessInstance processInstance = instance.getProcessInstance();
-        RuleFlowGroup systemRuleFlowGroup = processInstance.getAgenda().getRuleFlowGroup( "DROOLS_SYSTEM" );
-
-        String rule = "RuleFlow-Split-" + processInstance.getProcess().getId() + "-" + instance.getNode().getId() + "-" + connection.getTo().getId();
-        for ( Iterator activations = systemRuleFlowGroup.iterator(); activations.hasNext(); ) {
-            Activation activation = ((RuleFlowGroupNode) activations.next()).getActivation();
-            if ( rule.equals( activation.getRule().getName() ) ) {
-                return true;
-            }
-        }
-        return false;
-    }
-}




More information about the jboss-svn-commits mailing list