[jbpm-commits] JBoss JBPM SVN: r6148 - jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Jan 29 07:01:01 EST 2010


Author: jbarrez
Date: 2010-01-29 07:00:59 -0500 (Fri, 29 Jan 2010)
New Revision: 6148

Added:
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/SubProcessActivity.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/SubProcessBinding.java
Modified:
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractGatewayBinding.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractTaskBinding.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnActivity.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnAutomaticActivity.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnBinding.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/EndEventBinding.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ExclusiveGatewayBinding.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/InclusiveGatewayBinding.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/IntermediateCatchEventBinding.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/JavaServiceTaskActivity.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ManualTaskActivity.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ManualTaskBinding.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ParallelGatewayBinding.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ReceiveBinding.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ScriptTaskActivity.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ScriptTaskBinding.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ServiceTaskBinding.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/StartEventBinding.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/TaskBinding.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/UserTaskBinding.java
Log:
Began work on SubProcess + small refactoring for all activities

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractGatewayBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractGatewayBinding.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractGatewayBinding.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -69,8 +69,6 @@
     
     resetMemberFields();
     
-    super.parse(element, parse);
-    
     id = element.getAttribute("id");
     name = element.getAttribute("name");
     
@@ -111,7 +109,6 @@
     outgoing = 0;
     outSequenceFlows = new ArrayList<Element>();
     valid = true;
-    default_ = null;
   }
 
   protected boolean validGatewayDirection(Parse parse, String elementName, Element element) {

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractTaskBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractTaskBinding.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractTaskBinding.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -3,10 +3,10 @@
 import java.util.List;
 
 import org.jbpm.bpmn.model.BpmnProcessDefinition;
+import org.jbpm.bpmn.parser.BpmnParser;
 import org.jbpm.pvm.internal.task.TaskDefinitionImpl;
 import org.jbpm.pvm.internal.util.XmlUtil;
 import org.jbpm.pvm.internal.xml.Parse;
-import org.jbpm.pvm.internal.xml.Parser;
 import org.w3c.dom.Element;
 
 /**
@@ -26,9 +26,8 @@
   public AbstractTaskBinding(String tagName) {
     super(tagName);
   }
-
-  public Object parse(Element element, Parse parse, Parser parser) {
-    super.parse(element, parse);
+  
+  public Object parse(Element element, Parse parse, BpmnParser bpmnParser) {
     ManualTaskActivity manualTaskActivity = new ManualTaskActivity();
     manualTaskActivity.setDefault(getDefault());
     return manualTaskActivity;

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnActivity.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnActivity.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnActivity.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -29,6 +29,7 @@
 import org.jbpm.api.Execution;
 import org.jbpm.api.JbpmException;
 import org.jbpm.api.activity.ActivityBehaviour;
+import org.jbpm.api.activity.ActivityExecution;
 import org.jbpm.api.model.Activity;
 import org.jbpm.api.model.Transition;
 import org.jbpm.internal.log.Log;
@@ -56,6 +57,12 @@
   protected String default_;
 
   protected List<ActivityResource> activityResources = new ArrayList<ActivityResource>();
+  
+  public void execute(ActivityExecution execution) throws Exception {
+    execute((ExecutionImpl) execution);
+  }
+  
+  public abstract void execute(ExecutionImpl executionImpl);
 
   /**
    * In BPMN multiple outgoing sequence flows behave like a fork.

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnAutomaticActivity.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnAutomaticActivity.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnAutomaticActivity.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -1,6 +1,5 @@
 package org.jbpm.bpmn.flownodes;
 
-import org.jbpm.api.activity.ActivityExecution;
 import org.jbpm.api.listener.EventListener;
 import org.jbpm.api.listener.EventListenerExecution;
 import org.jbpm.api.model.OpenExecution;
@@ -10,9 +9,8 @@
 public abstract class BpmnAutomaticActivity extends BpmnActivity implements EventListener {
 
   private static final long serialVersionUID = 1L;
-
-  public void execute(ActivityExecution execution) throws Exception {
-    ExecutionImpl executionImpl = (ExecutionImpl)execution;
+  
+  public void execute(ExecutionImpl executionImpl) {
     perform(executionImpl);
     executionImpl.historyAutomatic();
   }
@@ -21,5 +19,6 @@
     perform(execution);
   }    
     
-  abstract void perform(OpenExecution execution) throws Exception;
+  abstract void perform(OpenExecution execution);
+  
 }

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnBinding.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnBinding.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -25,6 +25,7 @@
 import org.jbpm.pvm.internal.util.TagBinding;
 import org.jbpm.pvm.internal.wire.xml.WireParser;
 import org.jbpm.pvm.internal.xml.Parse;
+import org.jbpm.pvm.internal.xml.Parser;
 import org.w3c.dom.Element;
 
 public abstract class BpmnBinding extends TagBinding {
@@ -36,13 +37,16 @@
   public BpmnBinding(String tagName) {
     super(tagName, "http://schema.omg.org/spec/BPMN/2.0", null);
   }
-
-  public void parse(Element element, Parse parse) {
+  
+  public Object parse(Element element, Parse parse, Parser parser) {
     this.default_ = null;
     if (element.hasAttribute("default")) {
       default_ = element.getAttribute("default");
     }
+    return parse(element, parse, (BpmnParser) parser);
   }
+  
+  public abstract Object parse(Element element, Parse parse, BpmnParser bpmnParser);
 
   public String getDefault() {
     return default_;

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/EndEventBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/EndEventBinding.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/EndEventBinding.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -21,9 +21,9 @@
  */
 package org.jbpm.bpmn.flownodes;
 
+import org.jbpm.bpmn.parser.BpmnParser;
 import org.jbpm.pvm.internal.util.XmlUtil;
 import org.jbpm.pvm.internal.xml.Parse;
-import org.jbpm.pvm.internal.xml.Parser;
 import org.w3c.dom.Element;
 
 
@@ -39,17 +39,18 @@
   protected EndEventBinding(String tag) {
     super(tag);
   }
-
-  public Object parse(Element element, Parse parse, Parser parser) {
-    EndActivity endActivity = new EndActivity();
+  
+  public Object parse(Element element, Parse parse, BpmnParser bpmnParser) {
+EndActivity endActivity = new EndActivity();
     
     Element terminateEventDefinition = XmlUtil.element(element, "terminateEventDefinition");
     if (terminateEventDefinition != null) {
-    	endActivity.setEndProcessInstance(true); 	
+        endActivity.setEndProcessInstance(true);    
     } else {
-    	endActivity.setEndProcessInstance(false); // default is to end execution, not the process instance    
+        endActivity.setEndProcessInstance(false); // default is to end execution, not the process instance    
     }
     
     return endActivity;
   }
+
 }

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ExclusiveGatewayBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ExclusiveGatewayBinding.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ExclusiveGatewayBinding.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -21,22 +21,22 @@
  */
 package org.jbpm.bpmn.flownodes;
 
+import org.jbpm.bpmn.parser.BpmnParser;
 import org.jbpm.pvm.internal.xml.Parse;
-import org.jbpm.pvm.internal.xml.Parser;
 import org.w3c.dom.Element;
 
 /**
  * @author Tom Baeyens
  * @author Ronald van Kuijk (kukeltje)
- * 
+ * @author Joram Barrez
  */
 public class ExclusiveGatewayBinding extends AbstractGatewayBinding {
 
   public ExclusiveGatewayBinding() {
     super("exclusiveGateway");
   }
-
-  public Object parse(Element element, Parse parse, Parser parser) {
+  
+  public Object parse(Element element, Parse parse, BpmnParser bpmnParser) {
     super.parse(element, parse);
     validateConditionOnAllSequenceFlow(parse, element);
 
@@ -50,4 +50,5 @@
 
     return exclusiveGatewayActivity;
   }
+  
 }

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/InclusiveGatewayBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/InclusiveGatewayBinding.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/InclusiveGatewayBinding.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -21,8 +21,8 @@
  */
 package org.jbpm.bpmn.flownodes;
 
+import org.jbpm.bpmn.parser.BpmnParser;
 import org.jbpm.pvm.internal.xml.Parse;
-import org.jbpm.pvm.internal.xml.Parser;
 import org.w3c.dom.Element;
 
 /**
@@ -33,8 +33,8 @@
   public InclusiveGatewayBinding() {
     super("inclusiveGateway");
   }
-
-  public Object parse(Element element, Parse parse, Parser parser) {
+  
+  public Object parse(Element element, Parse parse, BpmnParser bpmnParser) {
     super.parse(element, parse);
     validateConditionOnAllSequenceFlow(parse, element);
 
@@ -45,7 +45,7 @@
     InclusiveGatewayActivity inclusiveGatewayActivity = new InclusiveGatewayActivity();
     inclusiveGatewayActivity.setDefault(default_);
     inclusiveGatewayActivity.setGatewayDirection(gatewayDirection);
-    return inclusiveGatewayActivity;    
+    return inclusiveGatewayActivity;  
   }
 
 }

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/IntermediateCatchEventBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/IntermediateCatchEventBinding.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/IntermediateCatchEventBinding.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -27,7 +27,6 @@
 import org.jbpm.pvm.internal.model.TimerDefinitionImpl;
 import org.jbpm.pvm.internal.util.XmlUtil;
 import org.jbpm.pvm.internal.xml.Parse;
-import org.jbpm.pvm.internal.xml.Parser;
 import org.w3c.dom.Element;
 
 /**
@@ -38,13 +37,12 @@
   public IntermediateCatchEventBinding() {
     super("intermediateCatchEvent");
   }
-
-  public Object parse(Element element, Parse parse, Parser parser) {
-    
+  
+  public Object parse(Element element, Parse parse, BpmnParser bpmnParser) {
     String id = XmlUtil.attribute(element, "id");
     Element eventDefinition = XmlUtil.element(element);
     if ("timerEventDefinition".equals(eventDefinition.getNodeName())) {
-      return createIntermediateTimerCatchEvent(id, eventDefinition, (BpmnParser) parser, parse);
+      return createIntermediateTimerCatchEvent(id, eventDefinition, bpmnParser, parse);
     } else {
       parse.addProblem("Invalid eventDefinition type : " + eventDefinition.getNodeName());
     }

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/JavaServiceTaskActivity.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/JavaServiceTaskActivity.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/JavaServiceTaskActivity.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -51,7 +51,7 @@
   protected String variableName;
   protected InvokeOperation invokeOperation;
   
-  public void perform(OpenExecution execution) throws Exception {
+  public void perform(OpenExecution execution) {
     
     Object invocationTarget = null;
 

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ManualTaskActivity.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ManualTaskActivity.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ManualTaskActivity.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -1,6 +1,6 @@
 package org.jbpm.bpmn.flownodes;
 
-import org.jbpm.api.activity.ActivityExecution;
+import org.jbpm.pvm.internal.model.ExecutionImpl;
 
 /**
  * Manual activities in BPMN are ignored by the Process Engine.
@@ -12,6 +12,6 @@
 
     private static final long serialVersionUID = 1L;
 
-    public void execute(ActivityExecution execution) {
+    public void execute(ExecutionImpl executionImpl) {
     }
 }

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ManualTaskBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ManualTaskBinding.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ManualTaskBinding.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -21,8 +21,8 @@
  */
 package org.jbpm.bpmn.flownodes;
 
+import org.jbpm.bpmn.parser.BpmnParser;
 import org.jbpm.pvm.internal.xml.Parse;
-import org.jbpm.pvm.internal.xml.Parser;
 import org.w3c.dom.Element;
 
 /**
@@ -33,9 +33,8 @@
   public ManualTaskBinding() {
     super("manualTask");
   }
-
-  public Object parse(Element element, Parse parse, Parser parser) {
-    super.parse(element, parse);
+  
+  public Object parse(Element element, Parse parse, BpmnParser bpmnParser) {
     ManualTaskActivity manualTaskActivity = new ManualTaskActivity();
     manualTaskActivity.setDefault(getDefault());
     return manualTaskActivity;

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ParallelGatewayBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ParallelGatewayBinding.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ParallelGatewayBinding.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -21,8 +21,8 @@
  */
 package org.jbpm.bpmn.flownodes;
 
+import org.jbpm.bpmn.parser.BpmnParser;
 import org.jbpm.pvm.internal.xml.Parse;
-import org.jbpm.pvm.internal.xml.Parser;
 import org.w3c.dom.Element;
 
 
@@ -37,9 +37,8 @@
   public ParallelGatewayBinding() {
     super("parallelGateway");
   }
-
-  public Object parse(Element element, Parse parse, Parser parser) {
-
+  
+  public Object parse(Element element, Parse parse, BpmnParser bpmnParser) {
     super.parse(element, parse);
 
     if (!valid) {
@@ -50,4 +49,5 @@
     parallelGatewayActivity.setGatewayDirection(gatewayDirection);
     return parallelGatewayActivity;
   }
+
 }

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ReceiveBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ReceiveBinding.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ReceiveBinding.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -21,8 +21,8 @@
  */
 package org.jbpm.bpmn.flownodes;
 
+import org.jbpm.bpmn.parser.BpmnParser;
 import org.jbpm.pvm.internal.xml.Parse;
-import org.jbpm.pvm.internal.xml.Parser;
 import org.w3c.dom.Element;
 
 
@@ -31,9 +31,8 @@
   public ReceiveBinding() {
     super("receiveTask");
   }
-
-  public Object parse(Element element, Parse parse, Parser parser) {
-    super.parse(element, parse);
+  
+  public Object parse(Element element, Parse parse, BpmnParser bpmnParser) {
     ReceiveActivity receiveActivity = new ReceiveActivity();
     receiveActivity.setDefault(getDefault());
     return receiveActivity;

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ScriptTaskActivity.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ScriptTaskActivity.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ScriptTaskActivity.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -34,7 +34,7 @@
 
 	private String script;
 
-	public void perform(OpenExecution execution) throws Exception {
+	public void perform(OpenExecution execution) {
 		try {
 
 			ScriptManager scriptManager = EnvironmentImpl.getFromCurrent(ScriptManager.class);

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ScriptTaskBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ScriptTaskBinding.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ScriptTaskBinding.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -21,9 +21,9 @@
  */
 package org.jbpm.bpmn.flownodes;
 
+import org.jbpm.bpmn.parser.BpmnParser;
 import org.jbpm.pvm.internal.util.XmlUtil;
 import org.jbpm.pvm.internal.xml.Parse;
-import org.jbpm.pvm.internal.xml.Parser;
 import org.w3c.dom.Element;
 
 
@@ -33,10 +33,8 @@
   public ScriptTaskBinding() {
     super("scriptTask");
   }
-
-  public Object parse(Element element, Parse parse, Parser parser) {
-    super.parse(element, parse);
-    
+  
+  public Object parse(Element element, Parse parse, BpmnParser bpmnParser) {
     String scriptLanguage = XmlUtil.attribute(element, "scriptLanguage"); 
     String script = XmlUtil.element(element, "script").getTextContent();
 
@@ -47,4 +45,5 @@
 
     return scriptTaskActivity;
   }
+
 }

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ServiceTaskBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ServiceTaskBinding.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ServiceTaskBinding.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -24,13 +24,13 @@
 import java.util.List;
 
 import org.jbpm.bpmn.model.BpmnProcessDefinition;
+import org.jbpm.bpmn.parser.BpmnParser;
 import org.jbpm.pvm.internal.util.XmlUtil;
 import org.jbpm.pvm.internal.wire.WireContext;
 import org.jbpm.pvm.internal.wire.descriptor.ArgDescriptor;
 import org.jbpm.pvm.internal.wire.descriptor.ObjectDescriptor;
 import org.jbpm.pvm.internal.wire.operation.InvokeOperation;
 import org.jbpm.pvm.internal.xml.Parse;
-import org.jbpm.pvm.internal.xml.Parser;
 import org.w3c.dom.Element;
 
 public class ServiceTaskBinding extends BpmnBinding {
@@ -40,18 +40,17 @@
   public ServiceTaskBinding() {
     super(TAG);
   }
-
-  public Object parse(Element element, Parse parse, Parser parser) {
-    super.parse(element, parse);
+  
+  public Object parse(Element element, Parse parse, BpmnParser bpmnParser) {
     JavaServiceTaskActivity javaActivity = new JavaServiceTaskActivity();
-       
+    
     BpmnProcessDefinition bpmnProcessDefinition = parse.contextStackFind(BpmnProcessDefinition.class);
         
     // Operation parsing
     String operationRef = XmlUtil.attribute(element, "operationRef", true, parse, null);
     Element operationElement = bpmnProcessDefinition.getOperations().get(operationRef);
     if (operationElement == null) {
-    	parse.addProblem("No operation found for operationRef " + operationRef, operationElement);
+        parse.addProblem("No operation found for operationRef " + operationRef, operationElement);
     }
     
     // Interface parsing
@@ -98,4 +97,5 @@
      
     return javaActivity;
   }
+
 }

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/StartEventBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/StartEventBinding.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/StartEventBinding.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -33,7 +33,6 @@
 import org.jbpm.pvm.internal.session.DbSession;
 import org.jbpm.pvm.internal.util.XmlUtil;
 import org.jbpm.pvm.internal.xml.Parse;
-import org.jbpm.pvm.internal.xml.Parser;
 import org.w3c.dom.Element;
 
 
@@ -45,8 +44,8 @@
   public StartEventBinding() {
 	  super("startEvent");
   }
-
-  public Object parse(Element element, Parse parse, Parser parser) {
+  
+  public Object parse(Element element, Parse parse, BpmnParser bpmnParser) {
     ActivityImpl startActivity = parse.contextStackFind(ActivityImpl.class);
     BpmnProcessDefinition processDefinition = parse.contextStackFind(BpmnProcessDefinition.class);
     
@@ -60,7 +59,7 @@
     String id = XmlUtil.attribute(element, "id", true, parse);
     Element eventDefinition = XmlUtil.element(element);
     if (eventDefinition != null && "timerEventDefinition".equals(eventDefinition.getNodeName())) {
-      return createTimerStartEvent(processDefinition, eventDefinition, id, (BpmnParser) parser, parse);
+      return createTimerStartEvent(processDefinition, eventDefinition, id, bpmnParser, parse);
     } else if (eventDefinition != null){
       parse.addProblem("Invalid eventDefinition type : " + eventDefinition.getNodeName());
     }

Added: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/SubProcessActivity.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/SubProcessActivity.java	                        (rev 0)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/SubProcessActivity.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.bpmn.flownodes;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jbpm.api.model.Activity;
+import org.jbpm.pvm.internal.model.ExecutionImpl;
+
+/**
+ * 
+ * @author Joram Barrez
+ */
+public class SubProcessActivity extends BpmnActivity {
+
+  private static final long serialVersionUID = 1L;
+
+  public void execute(ExecutionImpl executionImpl) {
+  }
+  
+  /**
+   * The start activities of a sub-process are either none start events or
+   * activities without incoming sequence flow.
+   */
+  protected List<Activity> findStartActivities(ExecutionImpl execution) {
+    List<Activity> startActivities = new ArrayList<Activity>();
+    
+    for (Activity nestedActivity : execution.getActivity().getActivities()) {
+      if ( (nestedActivity.getIncomingTransitions()==null)
+           || (nestedActivity.getIncomingTransitions().isEmpty())) {
+        startActivities.add(nestedActivity);
+      }
+    }
+    
+    return startActivities;
+  }
+
+}

Added: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/SubProcessBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/SubProcessBinding.java	                        (rev 0)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/SubProcessBinding.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.bpmn.flownodes;
+
+import org.jbpm.bpmn.parser.BpmnParser;
+import org.jbpm.pvm.internal.model.ActivityImpl;
+import org.jbpm.pvm.internal.xml.Parse;
+import org.w3c.dom.Element;
+
+/**
+ * @author Joram Barrez
+ */
+public class SubProcessBinding extends BpmnBinding {
+  
+  protected static final String TAG_NAME = "subProcess";
+
+  public SubProcessBinding(String tagName) {
+    super(TAG_NAME);
+  }
+  
+  public Object parse(Element element, Parse parse, BpmnParser bpmnParser) {
+    SubProcessActivity subProcessActivity = new SubProcessActivity();
+    
+    ActivityImpl activity = parse.contextStackFind(ActivityImpl.class);
+    bpmnParser.parseActivities(element, parse, activity);
+    
+    // TODO only none start event is allowed!
+    
+    subProcessActivity.setDefault(getDefault());
+    return subProcessActivity;
+  }
+
+}

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/TaskBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/TaskBinding.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/TaskBinding.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -25,7 +25,6 @@
 import org.jbpm.pvm.internal.model.ScopeElementImpl;
 import org.jbpm.pvm.internal.task.TaskDefinitionImpl;
 import org.jbpm.pvm.internal.xml.Parse;
-import org.jbpm.pvm.internal.xml.Parser;
 import org.w3c.dom.Element;
 
 /**
@@ -36,13 +35,11 @@
   public TaskBinding() {
     super("task");
   }
-
-  public Object parse(Element element, Parse parse, Parser parser) {
-    super.parse(element, parse);
-    
+  
+  public Object parse(Element element, Parse parse, BpmnParser bpmnParser) {
     TaskActivity taskActivity = new TaskActivity();
     ScopeElementImpl scopeElement = parse.contextStackFind(ScopeElementImpl.class);
-    TaskDefinitionImpl taskDefinition = ((BpmnParser)parser).parseTaskDefinition(element, parse, scopeElement);
+    TaskDefinitionImpl taskDefinition = bpmnParser.parseTaskDefinition(element, parse, scopeElement);
     taskActivity.setTaskDefinition(taskDefinition);
     taskActivity.setDefault(getDefault());
 

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/UserTaskBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/UserTaskBinding.java	2010-01-28 16:22:07 UTC (rev 6147)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/UserTaskBinding.java	2010-01-29 12:00:59 UTC (rev 6148)
@@ -26,7 +26,6 @@
 import org.jbpm.pvm.internal.task.TaskDefinitionImpl;
 import org.jbpm.pvm.internal.util.XmlUtil;
 import org.jbpm.pvm.internal.xml.Parse;
-import org.jbpm.pvm.internal.xml.Parser;
 import org.w3c.dom.Element;
 
 /**
@@ -40,13 +39,12 @@
   public UserTaskBinding() {
     super(TAG);
   }
-
-  public Object parse(Element element, Parse parse, Parser parser) {
-    super.parse(element, parse);
+  
+  public Object parse(Element element, Parse parse, BpmnParser bpmnParser) {
     UserTaskActivity taskActivity = new UserTaskActivity();
 
     ScopeElementImpl scopeElement = parse.contextStackFind(ScopeElementImpl.class);
-    TaskDefinitionImpl taskDefinition = ((BpmnParser) parser).parseTaskDefinition(element, parse, scopeElement);
+    TaskDefinitionImpl taskDefinition = bpmnParser.parseTaskDefinition(element, parse, scopeElement);
     
     addActivityResources(taskDefinition, taskActivity, element, parse);
 



More information about the jbpm-commits mailing list