[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