[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