[jboss-svn-commits] JBL Code SVN: r31330 - in labs/jbossrules/trunk: drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jan 29 18:19:29 EST 2010


Author: KrisVerlaenen
Date: 2010-01-29 18:19:28 -0500 (Fri, 29 Jan 2010)
New Revision: 31330

Added:
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/core/DynamicNodeWrapper.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/DynamicNodeEditPart.java
Modified:
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/core/RuleFlowWrapperBuilder.java
   labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/RuleFlowEditPartFactory.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ActionNodeHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/AdHocSubProcessHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/CompositeContextNodeHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EndNodeHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/IntermediateThrowEventHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ProcessHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/UserTaskHandler.java
   labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/XmlBPMNProcessDumper.java
Log:
 - improved BPMN2 support

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/core/DynamicNodeWrapper.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/core/DynamicNodeWrapper.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/core/DynamicNodeWrapper.java	2010-01-29 23:19:28 UTC (rev 31330)
@@ -0,0 +1,35 @@
+package org.drools.eclipse.flow.ruleflow.core;
+
+import org.drools.eclipse.flow.common.editor.core.ElementConnection;
+import org.drools.eclipse.flow.common.editor.core.ElementWrapper;
+import org.drools.process.core.context.variable.VariableScope;
+import org.drools.workflow.core.node.DynamicNode;
+
+public class DynamicNodeWrapper extends CompositeNodeWrapper {
+
+    private static final long serialVersionUID = 4L;
+
+    public DynamicNodeWrapper() {
+        setNode(new DynamicNode());
+        getDynamicNode().setName("Dynamic");
+        VariableScope variableScope = new VariableScope();
+        getDynamicNode().addContext(variableScope);
+        getDynamicNode().setDefaultContext(variableScope);
+    }
+    
+    public DynamicNode getDynamicNode() {
+    	return (DynamicNode) getNode();
+    }
+    
+    public boolean acceptsIncomingConnection(ElementConnection connection, ElementWrapper source) {
+        return super.acceptsIncomingConnection(connection, source)
+        	&& getIncomingConnections().isEmpty();
+    }
+
+    public boolean acceptsOutgoingConnection(ElementConnection connection, ElementWrapper target) {
+        return target == null
+			|| (target.getParent() == getParent() && getOutgoingConnections().isEmpty());
+//			|| (target.getParent() == this && getForEachNode().getLinkedIncomingNode(Node.CONNECTION_DEFAULT_TYPE) == null);
+    }
+    
+}

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/core/RuleFlowWrapperBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/core/RuleFlowWrapperBuilder.java	2010-01-29 23:17:31 UTC (rev 31329)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/core/RuleFlowWrapperBuilder.java	2010-01-29 23:19:28 UTC (rev 31330)
@@ -21,6 +21,7 @@
 import org.drools.workflow.core.node.ActionNode;
 import org.drools.workflow.core.node.CompositeContextNode;
 import org.drools.workflow.core.node.CompositeNode;
+import org.drools.workflow.core.node.DynamicNode;
 import org.drools.workflow.core.node.EndNode;
 import org.drools.workflow.core.node.EventNode;
 import org.drools.workflow.core.node.FaultNode;
@@ -109,6 +110,8 @@
             return new SubProcessWrapper();
         } else if (node instanceof ForEachNode) {
             return new ForEachNodeWrapper();
+        } else if (node instanceof DynamicNode) {
+            return new DynamicNodeWrapper();
         } else if (node instanceof StateNode) {
         	return new StateNodeWrapper();
         } else if (node instanceof CompositeContextNode) {

Added: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/DynamicNodeEditPart.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/DynamicNodeEditPart.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/DynamicNodeEditPart.java	2010-01-29 23:19:28 UTC (rev 31330)
@@ -0,0 +1,5 @@
+package org.drools.eclipse.flow.ruleflow.editor.editpart;
+
+public class DynamicNodeEditPart extends CompositeNodeEditPart {
+	
+}

Modified: labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/RuleFlowEditPartFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/RuleFlowEditPartFactory.java	2010-01-29 23:17:31 UTC (rev 31329)
+++ labs/jbossrules/trunk/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/flow/ruleflow/editor/editpart/RuleFlowEditPartFactory.java	2010-01-29 23:19:28 UTC (rev 31330)
@@ -21,6 +21,7 @@
 import org.drools.eclipse.flow.ruleflow.core.ActionWrapper;
 import org.drools.eclipse.flow.ruleflow.core.CompositeContextNodeWrapper;
 import org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper;
+import org.drools.eclipse.flow.ruleflow.core.DynamicNodeWrapper;
 import org.drools.eclipse.flow.ruleflow.core.EndNodeWrapper;
 import org.drools.eclipse.flow.ruleflow.core.EventNodeWrapper;
 import org.drools.eclipse.flow.ruleflow.core.FaultNodeWrapper;
@@ -80,6 +81,8 @@
             result = new FaultNodeEditPart();
         } else if (model instanceof TimerWrapper) {
             result = new TimerEditPart();
+        } else if (model instanceof DynamicNodeWrapper) {
+            result = new DynamicNodeEditPart();
         } else if (model instanceof ForEachNodeWrapper) {
             result = new ForEachNodeEditPart();
         } else if (model instanceof CompositeContextNodeWrapper) {

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ActionNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ActionNodeHandler.java	2010-01-29 23:17:31 UTC (rev 31329)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ActionNodeHandler.java	2010-01-29 23:19:28 UTC (rev 31330)
@@ -23,25 +23,22 @@
 		DroolsConsequenceAction action = (DroolsConsequenceAction) actionNode.getAction();
 		if (action != null) {
 		    String s = action.getConsequence();
-		    if ("".equals(s)) {
-		        writeNode("intermediateThrowEvent", actionNode, xmlDump, includeMeta);
-		        endNode(xmlDump);
-		    } else if (s.startsWith("org.drools.process.instance.impl.WorkItemImpl workItem = new org.drools.process.instance.impl.WorkItemImpl();")) {
+		    if (s.startsWith("org.drools.process.instance.impl.WorkItemImpl workItem = new org.drools.process.instance.impl.WorkItemImpl();")) {
                 writeNode("intermediateThrowEvent", actionNode, xmlDump, includeMeta);
                 xmlDump.append(">" + EOL);
                 String variable = (String) actionNode.getMetaData("MappingVariable");
                 if (variable != null) {
                     xmlDump.append(
-                        "      <dataInput id=\"_" + actionNode.getUniqueId() + "_Input\" />" + EOL + 
+                        "      <dataInput id=\"_" + XmlBPMNProcessDumper.getUniqueNodeId(actionNode) + "_Input\" />" + EOL + 
                         "      <dataInputAssociation>" + EOL + 
                         "        <sourceRef>" + variable + "</sourceRef>" + EOL + 
-                        "        <targetRef>_" + actionNode.getUniqueId() + "_Input</targetRef>" + EOL + 
+                        "        <targetRef>_" + XmlBPMNProcessDumper.getUniqueNodeId(actionNode) + "_Input</targetRef>" + EOL + 
                         "      </dataInputAssociation>" + EOL + 
                         "      <inputSet>" + EOL + 
-                        "        <dataInputRefs>_" + actionNode.getUniqueId() + "_Input</dataInputRefs>" + EOL + 
+                        "        <dataInputRefs>_" + XmlBPMNProcessDumper.getUniqueNodeId(actionNode) + "_Input</dataInputRefs>" + EOL + 
                         "      </inputSet>" + EOL);
                 }
-                xmlDump.append("      <messageEventDefinition messageRef=\"" + "_" + actionNode.getUniqueId() + "_Message\"/>" + EOL);
+                xmlDump.append("      <messageEventDefinition messageRef=\"" + "_" + XmlBPMNProcessDumper.getUniqueNodeId(actionNode) + "_Message\"/>" + EOL);
                 endNode("intermediateThrowEvent", xmlDump);
             } else if (s.startsWith("kcontext.getKnowledgeRuntime().signalEvent(\"")) {
                 writeNode("intermediateThrowEvent", actionNode, xmlDump, includeMeta);
@@ -53,13 +50,13 @@
                 if (!s.startsWith("null")) {
                     variable = s.substring(0, s.indexOf(")"));
                     xmlDump.append(
-                        "      <dataInput id=\"_" + actionNode.getUniqueId() + "_Input\" />" + EOL + 
+                        "      <dataInput id=\"_" + XmlBPMNProcessDumper.getUniqueNodeId(actionNode) + "_Input\" />" + EOL + 
                         "      <dataInputAssociation>" + EOL + 
                         "        <sourceRef>" + variable + "</sourceRef>" + EOL + 
-                        "        <targetRef>_" + actionNode.getUniqueId() + "_Input</targetRef>" + EOL + 
+                        "        <targetRef>_" + XmlBPMNProcessDumper.getUniqueNodeId(actionNode) + "_Input</targetRef>" + EOL + 
                         "      </dataInputAssociation>" + EOL + 
                         "      <inputSet>" + EOL + 
-                        "        <dataInputRefs>_" + actionNode.getUniqueId() + "_Input</dataInputRefs>" + EOL + 
+                        "        <dataInputRefs>_" + XmlBPMNProcessDumper.getUniqueNodeId(actionNode) + "_Input</dataInputRefs>" + EOL + 
                         "      </inputSet>" + EOL);
                 }
                 if (type.startsWith("Compensate-")) {
@@ -83,6 +80,9 @@
                 s = s.substring(s.indexOf(",") + 2);
                 xmlDump.append("      <escalationEventDefinition escalationCode=\"" + type + "\"/>" + EOL);
                 endNode("intermediateThrowEvent", xmlDump);
+            } else if ("IntermediateThrowEvent-None".equals(actionNode.getMetaData("NodeType"))) {
+            	writeNode("intermediateThrowEvent", actionNode, xmlDump, includeMeta);
+                endNode(xmlDump);
             } else {
                 writeNode("scriptTask", actionNode, xmlDump, includeMeta);
                 if (JavaDialect.ID.equals(action.getDialect())) {

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/AdHocSubProcessHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/AdHocSubProcessHandler.java	2010-01-29 23:17:31 UTC (rev 31329)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/AdHocSubProcessHandler.java	2010-01-29 23:19:28 UTC (rev 31330)
@@ -2,15 +2,24 @@
 
 import java.util.List;
 
+import org.drools.bpmn2.core.SequenceFlow;
 import org.drools.definition.process.Connection;
+import org.drools.process.core.context.variable.VariableScope;
 import org.drools.workflow.core.Node;
 import org.drools.workflow.core.node.DynamicNode;
+import org.drools.xml.ExtensibleXmlParser;
+import org.w3c.dom.Element;
 import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
 
 public class AdHocSubProcessHandler extends CompositeContextNodeHandler {
     
     protected Node createNode(Attributes attrs) {
-        return new DynamicNode();
+        DynamicNode result = new DynamicNode();
+        VariableScope variableScope = new VariableScope();
+        result.addContext(variableScope);
+        result.setDefaultContext(variableScope);
+        return result;
     }
     
     @SuppressWarnings("unchecked")
@@ -18,6 +27,17 @@
         return DynamicNode.class;
     }
     
+    @SuppressWarnings("unchecked")
+	protected void handleNode(final Node node, final Element element, final String uri, 
+            final String localName, final ExtensibleXmlParser parser) throws SAXException {
+    	super.handleNode(node, element, uri, localName, parser);
+    	DynamicNode dynamicNode = (DynamicNode) node;
+    	List<SequenceFlow> connections = (List<SequenceFlow>)
+			dynamicNode.getMetaData(ProcessHandler.CONNECTIONS);
+    	ProcessHandler.linkConnections(dynamicNode, connections);
+    	ProcessHandler.linkBoundaryEvents(dynamicNode);
+    }
+    
     public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) {
         DynamicNode dynamicNode = (DynamicNode) node;
 		writeNode("adHocSubProcess", dynamicNode, xmlDump, includeMeta);

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/CompositeContextNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/CompositeContextNodeHandler.java	2010-01-29 23:17:31 UTC (rev 31329)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/CompositeContextNodeHandler.java	2010-01-29 23:19:28 UTC (rev 31330)
@@ -38,7 +38,7 @@
             for (Variable variable: variableScope.getVariables()) {
                 xmlDump.append("    <property id=\"" + variable.getName() + "\" ");
                 if (variable.getType() != null) {
-                    xmlDump.append("itemSubjectRef=\"_" + compositeNode.getUniqueId() + "-" + variable.getName() + "Item\"" );
+                    xmlDump.append("itemSubjectRef=\"_" + XmlBPMNProcessDumper.getUniqueNodeId(compositeNode) + "-" + variable.getName() + "Item\"" );
                 }
                 // TODO: value
                 xmlDump.append("/>" + EOL);

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EndNodeHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EndNodeHandler.java	2010-01-29 23:17:31 UTC (rev 31329)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/EndNodeHandler.java	2010-01-29 23:19:28 UTC (rev 31330)
@@ -37,16 +37,16 @@
                         String variable = (String) endNode.getMetaData("MappingVariable");
                         if (variable != null) {
                             xmlDump.append(
-                                "      <dataInput id=\"_" + endNode.getUniqueId() + "_Input\" />" + EOL + 
+                                "      <dataInput id=\"_" + XmlBPMNProcessDumper.getUniqueNodeId(endNode) + "_Input\" />" + EOL + 
                                 "      <dataInputAssociation>" + EOL + 
                                 "        <sourceRef>" + variable + "</sourceRef>" + EOL + 
-                                "        <targetRef>_" + endNode.getUniqueId() + "_Input</targetRef>" + EOL + 
+                                "        <targetRef>_" + XmlBPMNProcessDumper.getUniqueNodeId(endNode) + "_Input</targetRef>" + EOL + 
                                 "      </dataInputAssociation>" + EOL + 
                                 "      <inputSet>" + EOL + 
-                                "        <dataInputRefs>_" + endNode.getUniqueId() + "_Input</dataInputRefs>" + EOL + 
+                                "        <dataInputRefs>_" + XmlBPMNProcessDumper.getUniqueNodeId(endNode) + "_Input</dataInputRefs>" + EOL + 
                                 "      </inputSet>" + EOL);
                         }
-                        xmlDump.append("      <messageEventDefinition messageRef=\"" + "_" + endNode.getUniqueId() + "_Message\"/>" + EOL);
+                        xmlDump.append("      <messageEventDefinition messageRef=\"" + "_" + XmlBPMNProcessDumper.getUniqueNodeId(endNode) + "_Message\"/>" + EOL);
                         endNode("endEvent", xmlDump);
 		            } else if (s.startsWith("kcontext.getKnowledgeRuntime().signalEvent(\"")) {
                         xmlDump.append(">" + EOL);
@@ -57,13 +57,13 @@
 		                if (!s.startsWith("null")) {
 		                    variable = s.substring(0, s.indexOf(")"));
 	                        xmlDump.append(
-                                "      <dataInput id=\"_" + endNode.getUniqueId() + "_Input\" />" + EOL + 
+                                "      <dataInput id=\"_" + XmlBPMNProcessDumper.getUniqueNodeId(endNode) + "_Input\" />" + EOL + 
                                 "      <dataInputAssociation>" + EOL + 
                                 "        <sourceRef>" + variable + "</sourceRef>" + EOL + 
-                                "        <targetRef>_" + endNode.getUniqueId() + "_Input</targetRef>" + EOL + 
+                                "        <targetRef>_" + XmlBPMNProcessDumper.getUniqueNodeId(endNode) + "_Input</targetRef>" + EOL + 
                                 "      </dataInputAssociation>" + EOL + 
                                 "      <inputSet>" + EOL + 
-                                "        <dataInputRefs>_" + endNode.getUniqueId() + "_Input</dataInputRefs>" + EOL + 
+                                "        <dataInputRefs>_" + XmlBPMNProcessDumper.getUniqueNodeId(endNode) + "_Input</dataInputRefs>" + EOL + 
                                 "      </inputSet>" + EOL);
 	                    }
 		                xmlDump.append("      <signalEventDefinition signalRef=\"" + type + "\"/>" + EOL);

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/IntermediateThrowEventHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/IntermediateThrowEventHandler.java	2010-01-29 23:17:31 UTC (rev 31329)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/IntermediateThrowEventHandler.java	2010-01-29 23:19:28 UTC (rev 31330)
@@ -60,6 +60,7 @@
         // none event definition
         if (node.getAction() == null) {
             node.setAction(new DroolsConsequenceAction("mvel", ""));
+            node.setMetaData("NodeType", "IntermediateThrowEvent-None");
         }
         NodeContainer nodeContainer = (NodeContainer) parser.getParent();
         nodeContainer.addNode(node);

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ProcessHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ProcessHandler.java	2010-01-29 23:17:31 UTC (rev 31329)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/ProcessHandler.java	2010-01-29 23:19:28 UTC (rev 31330)
@@ -241,7 +241,7 @@
                         String eventType = "Compensate-";
                         String uniqueId = (String) node.getMetaData("UniqueId");
             	        if (uniqueId == null) {
-            	        	eventType += "_" + ((NodeImpl) attachedNode).getUniqueId();
+            	        	eventType += "_" + XmlBPMNProcessDumper.getUniqueNodeId(attachedNode);
             	        } else {
             	        	eventType += uniqueId;
             	        }
@@ -296,7 +296,7 @@
 	        if (uniqueId != null) {
 	            lane = laneMapping.get(uniqueId);
 	        } else {
-	            lane = laneMapping.get(((NodeImpl) node).getUniqueId());
+	            lane = laneMapping.get(XmlBPMNProcessDumper.getUniqueNodeId(node));
 	        }
 	        if (lane != null) {
 	            ((NodeImpl) node).setMetaData("Lane", lane);

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/UserTaskHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/UserTaskHandler.java	2010-01-29 23:17:31 UTC (rev 31329)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/UserTaskHandler.java	2010-01-29 23:19:28 UTC (rev 31330)
@@ -86,30 +86,30 @@
 	protected void writeIO(WorkItemNode workItemNode, StringBuilder xmlDump) {
 		xmlDump.append("      <ioSpecification>" + EOL);
 		for (Map.Entry<String, String> entry: workItemNode.getInMappings().entrySet()) {
-			xmlDump.append("        <dataInput id=\"_" + workItemNode.getUniqueId() + "_" + entry.getKey() + "Input\" name=\"" + entry.getKey() + "\" />" + EOL);
+			xmlDump.append("        <dataInput id=\"_" + XmlBPMNProcessDumper.getUniqueNodeId(workItemNode) + "_" + entry.getKey() + "Input\" name=\"" + entry.getKey() + "\" />" + EOL);
 		}
 		for (Map.Entry<String, Object> entry: workItemNode.getWork().getParameters().entrySet()) {
 			if (!"ActorId".equals(entry.getKey()) && entry.getValue() != null) {
-				xmlDump.append("        <dataInput id=\"_" + workItemNode.getUniqueId() + "_" + entry.getKey() + "Input\" name=\"" + entry.getKey() + "\" />" + EOL);
+				xmlDump.append("        <dataInput id=\"_" + XmlBPMNProcessDumper.getUniqueNodeId(workItemNode) + "_" + entry.getKey() + "Input\" name=\"" + entry.getKey() + "\" />" + EOL);
 			}
 		}
 		for (Map.Entry<String, String> entry: workItemNode.getOutMappings().entrySet()) {
-			xmlDump.append("        <dataOutput id=\"_" + workItemNode.getUniqueId() + "_" + entry.getKey() + "Output\" name=\"" + entry.getKey() + "\" />" + EOL);
+			xmlDump.append("        <dataOutput id=\"_" + XmlBPMNProcessDumper.getUniqueNodeId(workItemNode) + "_" + entry.getKey() + "Output\" name=\"" + entry.getKey() + "\" />" + EOL);
 		}
 		xmlDump.append("        <inputSet>" + EOL);
 		for (Map.Entry<String, String> entry: workItemNode.getInMappings().entrySet()) {
-			xmlDump.append("          <dataInputRefs>_" + workItemNode.getUniqueId() + "_" + entry.getKey() + "Input</dataInputRefs>" + EOL);
+			xmlDump.append("          <dataInputRefs>_" + XmlBPMNProcessDumper.getUniqueNodeId(workItemNode) + "_" + entry.getKey() + "Input</dataInputRefs>" + EOL);
 		}
 		for (Map.Entry<String, Object> entry: workItemNode.getWork().getParameters().entrySet()) {
 			if (!"ActorId".equals(entry.getKey()) && entry.getValue() != null) {
-				xmlDump.append("          <dataInputRefs>_" + workItemNode.getUniqueId() + "_" + entry.getKey() + "Input</dataInputRefs>" + EOL);
+				xmlDump.append("          <dataInputRefs>_" + XmlBPMNProcessDumper.getUniqueNodeId(workItemNode) + "_" + entry.getKey() + "Input</dataInputRefs>" + EOL);
 			}
 		}
 		xmlDump.append(
 			"        </inputSet>" + EOL);
 		xmlDump.append("        <outputSet>" + EOL);
 		for (Map.Entry<String, String> entry: workItemNode.getOutMappings().entrySet()) {
-			xmlDump.append("          <dataOutputRefs>_" + workItemNode.getUniqueId() + "_" + entry.getKey() + "Output</dataOutputRefs>" + EOL);
+			xmlDump.append("          <dataOutputRefs>_" + XmlBPMNProcessDumper.getUniqueNodeId(workItemNode) + "_" + entry.getKey() + "Output</dataOutputRefs>" + EOL);
 		}
 		xmlDump.append(
 			"        </outputSet>" + EOL);
@@ -118,14 +118,14 @@
 		for (Map.Entry<String, Object> entry: workItemNode.getWork().getParameters().entrySet()) {
 			if (!"ActorId".equals(entry.getKey()) && entry.getValue() != null) {
 				xmlDump.append(
-					"      <property id=\"_" + workItemNode.getUniqueId() + "_" + entry.getKey() + "\" />" + EOL);
+					"      <property id=\"_" + XmlBPMNProcessDumper.getUniqueNodeId(workItemNode) + "_" + entry.getKey() + "\" />" + EOL);
 			}
 		}
 		for (Map.Entry<String, String> entry: workItemNode.getInMappings().entrySet()) {
 			xmlDump.append("      <dataInputAssociation>" + EOL);
 			xmlDump.append(
-				"        <sourceRef>_" + workItemNode.getUniqueId() + "_" + entry.getValue() + "</sourceRef>" + EOL +
-				"        <targetRef>_" + workItemNode.getUniqueId() + "_" + entry.getKey() + "</targetRef>" + EOL);
+				"        <sourceRef>_" + XmlBPMNProcessDumper.getUniqueNodeId(workItemNode) + "_" + entry.getValue() + "</sourceRef>" + EOL +
+				"        <targetRef>_" + XmlBPMNProcessDumper.getUniqueNodeId(workItemNode) + "_" + entry.getKey() + "</targetRef>" + EOL);
 			xmlDump.append("      </dataInputAssociation>" + EOL);
 		}
 		for (Map.Entry<String, Object> entry: workItemNode.getWork().getParameters().entrySet()) {
@@ -134,18 +134,18 @@
 				xmlDump.append(
 					"        <assignment>" + EOL +
 					"          <from xs:type=\"tFormalExpression\">" + entry.getValue().toString() + "</from>" + EOL +
-					"          <to xs:type=\"tFormalExpression\">_" + workItemNode.getUniqueId() + "_" + entry.getKey() + "Input</to>" + EOL +
+					"          <to xs:type=\"tFormalExpression\">_" + XmlBPMNProcessDumper.getUniqueNodeId(workItemNode) + "_" + entry.getKey() + "Input</to>" + EOL +
 					"        </assignment>" + EOL +
-					"        <sourceRef>_" + workItemNode.getUniqueId() + "_" + entry.getKey() + "</sourceRef>" + EOL +
-					"        <targetRef>_" + workItemNode.getUniqueId() + "_" + entry.getKey() + "Input</targetRef>" + EOL);
+					"        <sourceRef>_" + XmlBPMNProcessDumper.getUniqueNodeId(workItemNode) + "_" + entry.getKey() + "</sourceRef>" + EOL +
+					"        <targetRef>_" + XmlBPMNProcessDumper.getUniqueNodeId(workItemNode) + "_" + entry.getKey() + "Input</targetRef>" + EOL);
 				xmlDump.append("      </dataInputAssociation>" + EOL);
 			}
 		}
 		for (Map.Entry<String, String> entry: workItemNode.getOutMappings().entrySet()) {
 			xmlDump.append("      <dataOutputAssociation>" + EOL);
 			xmlDump.append(
-				"        <sourceRef>_" + workItemNode.getUniqueId() + "_" + entry.getKey() + "</sourceRef>" + EOL +
-				"        <targetRef>_" + workItemNode.getUniqueId() + "_" + entry.getValue() + "</targetRef>" + EOL);
+				"        <sourceRef>_" + XmlBPMNProcessDumper.getUniqueNodeId(workItemNode) + "_" + entry.getKey() + "</sourceRef>" + EOL +
+				"        <targetRef>_" + XmlBPMNProcessDumper.getUniqueNodeId(workItemNode) + "_" + entry.getValue() + "</targetRef>" + EOL);
 			xmlDump.append("      </dataOutputAssociation>" + EOL);
 		}
 	}

Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/XmlBPMNProcessDumper.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/XmlBPMNProcessDumper.java	2010-01-29 23:17:31 UTC (rev 31329)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/main/java/org/drools/bpmn2/xml/XmlBPMNProcessDumper.java	2010-01-29 23:19:28 UTC (rev 31330)
@@ -127,7 +127,7 @@
                 VariableScope variableScope = (VariableScope) 
                     ((ContextContainer) node).getDefaultContext(VariableScope.VARIABLE_SCOPE);
                 if (variableScope != null) {
-                    visitVariableScope(variableScope, "_" + ((NodeImpl) node).getUniqueId() + "-", xmlDump);
+                    visitVariableScope(variableScope, "_" + XmlBPMNProcessDumper.getUniqueNodeId(node) + "-", xmlDump);
                 }
             }
             if (node instanceof NodeContainer) {
@@ -157,12 +157,12 @@
             if (node instanceof HumanTaskNode) {
                 String swimlane = ((HumanTaskNode) node).getSwimlane();
                 if (lane.equals(swimlane)) {
-                    xmlDump.append("        <flowElementRef>_" + ((NodeImpl) node).getUniqueId() + "</flowElementRef>" + EOL);
+                    xmlDump.append("        <flowElementRef>_" + XmlBPMNProcessDumper.getUniqueNodeId(node) + "</flowElementRef>" + EOL);
                 }
             } else {
                 String swimlane = (String) node.getMetaData("Lane");
                 if (lane.equals(swimlane)) {
-                    xmlDump.append("        <flowElementRef>_" + ((NodeImpl) node).getUniqueId() + "</flowElementRef>" + EOL);
+                    xmlDump.append("        <flowElementRef>_" + XmlBPMNProcessDumper.getUniqueNodeId(node) + "</flowElementRef>" + EOL);
                 }
             }
             if (node instanceof NodeContainer) {



More information about the jboss-svn-commits mailing list