[jboss-svn-commits] JBL Code SVN: r14373 - in labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow: core/impl and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Aug 19 19:45:50 EDT 2007
Author: KrisVerlaenen
Date: 2007-08-19 19:45:50 -0400 (Sun, 19 Aug 2007)
New Revision: 14373
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/RuleFlowProcessValidationError.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/impl/RuleFlowProcessImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/impl/RuleFlowProcessValidatorImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/SubFlowNodeInstanceImpl.java
Log:
Added new ruleflow example
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/RuleFlowProcessValidationError.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/RuleFlowProcessValidationError.java 2007-08-19 23:45:45 UTC (rev 14372)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/RuleFlowProcessValidationError.java 2007-08-19 23:45:50 UTC (rev 14373)
@@ -47,6 +47,9 @@
String SUBFLOW_NODE_WITHOUT_INCOMING_CONNECTIONS = "SubFlow node has no incoming connection.";
String SUBFLOW_NODE_WITHOUT_OUTGOING_CONNECTIONS = "SubFlow node has no outgoing connection.";
String SUBFLOW_WITHOUT_PROCESS_ID = "A SubFlow node has no process id.";
+ String ACTION_NODE_WITHOUT_INCOMING_CONNECTIONS = "Action node has no incoming connection.";
+ String ACTION_NODE_WITHOUT_OUTGOING_CONNECTIONS = "Action node has no outgoing connection.";
+ String ACTION_NODE_WITHOUT_ACTION = "An Action node has no action.";
String getType();
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/impl/RuleFlowProcessImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/impl/RuleFlowProcessImpl.java 2007-08-19 23:45:45 UTC (rev 14372)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/impl/RuleFlowProcessImpl.java 2007-08-19 23:45:50 UTC (rev 14373)
@@ -23,7 +23,6 @@
import java.util.Map;
import org.drools.ruleflow.common.core.impl.ProcessImpl;
-import org.drools.ruleflow.core.EndNode;
import org.drools.ruleflow.core.Node;
import org.drools.ruleflow.core.RuleFlowProcess;
import org.drools.ruleflow.core.StartNode;
@@ -76,15 +75,15 @@
return (Node) this.nodes.get( idLong );
}
- private EndNode getEnd() {
- for ( final Iterator it = this.nodes.values().iterator(); it.hasNext(); ) {
- final Node node = (Node) it.next();
- if ( node instanceof EndNode ) {
- return (EndNode) node;
- }
- }
- return null;
- }
+// private EndNode getEnd() {
+// for ( final Iterator it = this.nodes.values().iterator(); it.hasNext(); ) {
+// final Node node = (Node) it.next();
+// if ( node instanceof EndNode ) {
+// return (EndNode) node;
+// }
+// }
+// return null;
+// }
public void removeNode(final Node node) {
if ( node == null ) {
@@ -128,9 +127,9 @@
if ( (node instanceof StartNode) && (getStart() != null) ) {
throw new IllegalArgumentException( "A ruleflow process cannot have more than one start node!" );
}
- if ( (node instanceof EndNode) && (getEnd() != null) ) {
- throw new IllegalArgumentException( "A ruleflow process cannot have more than one end node!" );
- }
+// if ( (node instanceof EndNode) && (getEnd() != null) ) {
+// throw new IllegalArgumentException( "A ruleflow process cannot have more than one end node!" );
+// }
}
public List getImports() {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/impl/RuleFlowProcessValidatorImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/impl/RuleFlowProcessValidatorImpl.java 2007-08-19 23:45:45 UTC (rev 14372)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/impl/RuleFlowProcessValidatorImpl.java 2007-08-19 23:45:50 UTC (rev 14373)
@@ -22,6 +22,7 @@
import java.util.List;
import java.util.Map;
+import org.drools.ruleflow.core.ActionNode;
import org.drools.ruleflow.core.Connection;
import org.drools.ruleflow.core.EndNode;
import org.drools.ruleflow.core.Join;
@@ -157,6 +158,18 @@
if ( subFlow.getProcessId() == null ) {
errors.add( new RuleFlowProcessValidationErrorImpl( RuleFlowProcessValidationError.SUBFLOW_WITHOUT_PROCESS_ID ) );
}
+ } else if ( node instanceof ActionNode ) {
+ final ActionNode actionNode = (ActionNode) node;
+ if ( actionNode.getFrom() == null ) {
+ errors.add( new RuleFlowProcessValidationErrorImpl( RuleFlowProcessValidationError.ACTION_NODE_WITHOUT_INCOMING_CONNECTIONS ) );
+ }
+
+ if ( actionNode.getTo() == null ) {
+ errors.add( new RuleFlowProcessValidationErrorImpl( RuleFlowProcessValidationError.ACTION_NODE_WITHOUT_OUTGOING_CONNECTIONS ) );
+ }
+ if ( actionNode.getAction() == null ) {
+ errors.add( new RuleFlowProcessValidationErrorImpl( RuleFlowProcessValidationError.ACTION_NODE_WITHOUT_ACTION ) );
+ }
}
}
if ( !startNodeFound ) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/SubFlowNodeInstanceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/SubFlowNodeInstanceImpl.java 2007-08-19 23:45:45 UTC (rev 14372)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/SubFlowNodeInstanceImpl.java 2007-08-19 23:45:50 UTC (rev 14373)
@@ -36,7 +36,11 @@
public void trigger(final RuleFlowNodeInstance from) {
ProcessInstance processInstance =
getProcessInstance().getWorkingMemory().startProcess(getSubFlowNode().getProcessId());
- this.processInstanceId = processInstance.getId();
+ if (processInstance.getState() == ProcessInstance.STATE_COMPLETED) {
+ triggerCompleted();
+ } else {
+ this.processInstanceId = processInstance.getId();
+ }
}
public long getProcessInstanceId() {
More information about the jboss-svn-commits
mailing list