[jboss-svn-commits] JBL Code SVN: r17638 - in labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow: instance and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jan 8 20:38:38 EST 2008
Author: KrisVerlaenen
Date: 2008-01-08 20:38:38 -0500 (Tue, 08 Jan 2008)
New Revision: 17638
Added:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/RuleFlowProcess.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/RuleFlowProcessInstance.java
Log:
JBRULES-1408: Refactoring of ruleflow to act as a pluggable process engine
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/RuleFlowProcess.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/RuleFlowProcess.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/core/RuleFlowProcess.java 2008-01-09 01:38:38 UTC (rev 17638)
@@ -0,0 +1,47 @@
+package org.drools.ruleflow.core;
+
+import org.drools.workflow.core.Node;
+import org.drools.workflow.core.NodeContainer;
+import org.drools.workflow.core.impl.NodeContainerImpl;
+import org.drools.workflow.core.impl.WorkflowProcessImpl;
+import org.drools.workflow.core.node.StartNode;
+
+public class RuleFlowProcess extends WorkflowProcessImpl {
+
+ public static final String RULEFLOW_TYPE = "RuleFlow";
+
+ private static final long serialVersionUID = 400L;
+
+ public RuleFlowProcess() {
+ setType(RULEFLOW_TYPE);
+ }
+
+ protected NodeContainer createNodeContainer() {
+ return new WorkflowProcessNodeContainer();
+ }
+
+ public StartNode getStart() {
+ Node[] nodes = getNodes();
+ for (int i = 0; i < nodes.length; i++) {
+ if (nodes[i] instanceof StartNode) {
+ return (StartNode) nodes[i];
+ }
+ }
+ return null;
+ }
+
+ private class WorkflowProcessNodeContainer extends NodeContainerImpl {
+
+ private static final long serialVersionUID = 400L;
+
+ protected void validateAddNode(Node node) {
+ super.validateAddNode(node);
+ if ((node instanceof StartNode) && (getStart() != null)) {
+ throw new IllegalArgumentException(
+ "A RuleFlowProcess cannot have more than one start node!");
+ }
+ }
+
+ }
+
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/RuleFlowProcessInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/RuleFlowProcessInstance.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/RuleFlowProcessInstance.java 2008-01-09 01:38:38 UTC (rev 17638)
@@ -0,0 +1,18 @@
+package org.drools.ruleflow.instance;
+
+import org.drools.ruleflow.core.RuleFlowProcess;
+import org.drools.workflow.instance.impl.WorkflowProcessInstanceImpl;
+
+public class RuleFlowProcessInstance extends WorkflowProcessInstanceImpl {
+
+ private static final long serialVersionUID = 400L;
+
+ public RuleFlowProcess getRuleFlowProcess() {
+ return (RuleFlowProcess) getProcess();
+ }
+
+ public void internalStart() {
+ getNodeInstance( getRuleFlowProcess().getStart() ).trigger( null, null );
+ }
+
+}
More information about the jboss-svn-commits
mailing list