Author: koen.aers(a)jboss.com
Date: 2009-07-01 11:46:56 -0400 (Wed, 01 Jul 2009)
New Revision: 16321
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/HqlTaskTreeRootEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ParameterListTreeEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/WireObjectTreeEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/handler/AddParameterHandler.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/AbstractElementDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/AbstractElementSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ArgumentDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ArgumentSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/AssignmentDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ElementDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ElementSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerContainerDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerContainerSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ExclusiveGatewayDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ExclusiveGatewaySerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/FieldDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/FieldSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/HumanTaskDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/HumanTaskSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/JavaTaskDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/JavaTaskSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/JpdlDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/JpdlSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/NodeDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ParameterDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ParameterSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/PostProcessor.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessNodeSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessPostProcessor.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/Registry.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ScriptTaskDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ScriptTaskSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SequenceFlowDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SequenceFlowSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SubprocessTaskDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SubprocessTaskSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SwimlaneDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SwimlaneSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TerminateEndEventDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TerminateEndEventSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TimerDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TimerSerializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/WireObject.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/WireObjectContainer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/HqlTaskQuerySection.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/HqlTaskUniqueSection.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/HqlTaskVariableNameSection.java
Removed:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSerializer.java
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/META-INF/MANIFEST.MF
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlEditor.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ArgumentTreeEditPart.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlTreeEditPartFactory.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/HqlTask.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/ScriptTask.java
Log:
Refactoring of serialization/deserialization mechanism
Modified: trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/META-INF/MANIFEST.MF
===================================================================
--- trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/META-INF/MANIFEST.MF 2009-07-01 15:43:43
UTC (rev 16320)
+++ trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/META-INF/MANIFEST.MF 2009-07-01 15:46:56
UTC (rev 16321)
@@ -17,5 +17,6 @@
Bundle-Activator: org.jboss.tools.flow.jpdl4.Activator
Export-Package: org.jboss.tools.flow.jpdl4,
org.jboss.tools.flow.jpdl4.editor,
+ org.jboss.tools.flow.jpdl4.io,
org.jboss.tools.flow.jpdl4.model
Bundle-Localization: plugin
Modified: trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml
===================================================================
--- trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml 2009-07-01 15:43:43 UTC (rev
16320)
+++ trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml 2009-07-01 15:46:56 UTC (rev
16321)
@@ -615,6 +615,27 @@
tab="org.jboss.tools.jpdl4.general">
<input type="org.jboss.tools.flow.jpdl4.model.Field"/>
</propertySection>
+ <propertySection
+ afterSection="org.jboss.tools.jpdl4.name"
+
class="org.jboss.tools.flow.jpdl4.properties.HqlTaskVariableNameSection"
+ id="org.jboss.tools.jpdl4.hqlTask.variableName"
+ tab="org.jboss.tools.jpdl4.general">
+ <input type="org.jboss.tools.flow.jpdl4.model.HqlTask"/>
+ </propertySection>
+ <propertySection
+ afterSection="org.jboss.tools.jpdl4.hqlTask.variableName"
+
class="org.jboss.tools.flow.jpdl4.properties.HqlTaskUniqueSection"
+ id="org.jboss.tools.jpdl4.hqlTask.unique"
+ tab="org.jboss.tools.jpdl4.general">
+ <input type="org.jboss.tools.flow.jpdl4.model.HqlTask"/>
+ </propertySection>
+ <propertySection
+ afterSection="org.jboss.tools.jpdl4.hqlTask.unique"
+
class="org.jboss.tools.flow.jpdl4.properties.HqlTaskQuerySection"
+ id="org.jboss.tools.jpdl4.hqlTask.query"
+ tab="org.jboss.tools.jpdl4.general">
+ <input type="org.jboss.tools.flow.jpdl4.model.HqlTask"/>
+ </propertySection>
</propertySections>
</extension>
<extension
@@ -678,6 +699,12 @@
</command>
<command
categoryId="org.jboss.tools.flow.jpdl4"
+
defaultHandler="org.jboss.tools.flow.jpdl4.handler.AddParameterHandler"
+ id="org.jboss.tools.flow.jpdl4.addParameter"
+ name="Add Parameter">
+ </command>
+ <command
+ categoryId="org.jboss.tools.flow.jpdl4"
defaultHandler="org.jboss.tools.flow.jpdl4.handler.DeleteElementHandler"
id="org.jboss.tools.flow.jpdl4.delete"
name="Delete">
@@ -808,6 +835,25 @@
</visibleWhen>
</command>
<command
+ commandId="org.jboss.tools.flow.jpdl4.addParameter"
+ icon="icons/16/argument.gif"
+ id="org.jboss.tools.flow.jpdl4.addParameter"
+ style="push">
+ <visibleWhen
+ checkEnabled="true">
+ <iterate>
+ <or>
+ <instanceof
+
value="org.jboss.tools.flow.jpdl4.editpart.HqlTaskTreeRootEditPart">
+ </instanceof>
+ <instanceof
+
value="org.jboss.tools.flow.jpdl4.editpart.ParameterListTreeEditPart">
+ </instanceof>
+ </or>
+ </iterate>
+ </visibleWhen>
+ </command>
+ <command
commandId="org.jboss.tools.flow.jpdl4.addField"
icon="icons/16/field.gif"
id="org.jboss.tools.flow.jpdl4.addField"
Deleted:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlDeserializer.java 2009-07-01
15:43:43 UTC (rev 16320)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -1,789 +0,0 @@
-package org.jboss.tools.flow.jpdl4.editor;
-
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import javax.xml.parsers.DocumentBuilderFactory;
-
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.jboss.tools.flow.common.properties.IPropertyId;
-import org.jboss.tools.flow.common.registry.ElementRegistry;
-import org.jboss.tools.flow.common.wrapper.ConnectionWrapper;
-import org.jboss.tools.flow.common.wrapper.DefaultWrapper;
-import org.jboss.tools.flow.common.wrapper.FlowWrapper;
-import org.jboss.tools.flow.common.wrapper.NodeWrapper;
-import org.jboss.tools.flow.common.wrapper.Wrapper;
-import org.jboss.tools.flow.jpdl4.Logger;
-import org.jboss.tools.flow.jpdl4.model.Argument;
-import org.jboss.tools.flow.jpdl4.model.Assignment;
-import org.jboss.tools.flow.jpdl4.model.AssignmentPropertySource;
-import org.jboss.tools.flow.jpdl4.model.EventListener;
-import org.jboss.tools.flow.jpdl4.model.EventListenerContainer;
-import org.jboss.tools.flow.jpdl4.model.ExclusiveGateway;
-import org.jboss.tools.flow.jpdl4.model.Field;
-import org.jboss.tools.flow.jpdl4.model.HumanTask;
-import org.jboss.tools.flow.jpdl4.model.InputParameter;
-import org.jboss.tools.flow.jpdl4.model.JavaTask;
-import org.jboss.tools.flow.jpdl4.model.OutputParameter;
-import org.jboss.tools.flow.jpdl4.model.Parameter;
-import org.jboss.tools.flow.jpdl4.model.Process;
-import org.jboss.tools.flow.jpdl4.model.ScriptTask;
-import org.jboss.tools.flow.jpdl4.model.SequenceFlow;
-import org.jboss.tools.flow.jpdl4.model.SubprocessTask;
-import org.jboss.tools.flow.jpdl4.model.Swimlane;
-import org.jboss.tools.flow.jpdl4.model.TerminateEndEvent;
-import org.jboss.tools.flow.jpdl4.model.Timer;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class JpdlDeserializer {
-
- interface AttributeDeserializer {
- void deserializeAttributes(Wrapper wrapper, Element element);
- }
-
- interface ChildNodeDeserializer {
- Wrapper deserializeChildNode(Wrapper parent, Node node);
- }
-
- interface PostProcessor {
- void postProcess(Wrapper wrapper);
- }
-
- class DefaultAttributeDeserializer implements AttributeDeserializer {
- protected List<String> getAttributesToRead() {
- return new ArrayList<String>();
- }
- protected String getXmlName(String attributeName) {
- return null;
- }
- public void deserializeAttributes(Wrapper wrapper, Element element) {
- wrapper.getElement().setMetaData("attributes", element.getAttributes());
- List<String> attributeNames = getAttributesToRead();
- for (String attributeName : attributeNames) {
- String xmlName = getXmlName(attributeName);
- if (xmlName == null) continue;
- String attribute = element.getAttribute(xmlName);
- if (!"".equals(attribute) && attribute != null) {
- wrapper.setPropertyValue(attributeName, attribute);
- }
- }
- }
- }
-
- class ProcessAttributeHandler extends DefaultAttributeDeserializer {
- public void deserializeAttributes(Wrapper wrapper, Element element) {
- super.deserializeAttributes(wrapper, element);
- if (!(wrapper.getElement() instanceof Process)) return;
- Process process = (Process)wrapper.getElement();
- process.setName(element.getAttribute("name"));
- process.setKey(element.getAttribute("key"));
- process.setVersion(element.getAttribute("version"));
- process.setDescription(element.getAttribute("description"));
- }
- }
-
- class NodeAttributeHandler extends DefaultAttributeDeserializer {
- public void deserializeAttributes(Wrapper wrapper, Element element) {
- super.deserializeAttributes(wrapper, element);
- if (!(wrapper instanceof NodeWrapper)) return;
- NodeWrapper nodeWrapper = (NodeWrapper)wrapper;
- addGraphics(nodeWrapper, element);
- nodeWrapper.setName(element.getAttribute("name"));
- }
- }
-
- class ExclusiveGatewayAttributeHandler extends NodeAttributeHandler {
- public void deserializeAttributes(Wrapper wrapper, Element element) {
- super.deserializeAttributes(wrapper, element);
- if (!(wrapper.getElement() instanceof ExclusiveGateway)) return;
- ExclusiveGateway exclusiveGateWay = (ExclusiveGateway)wrapper.getElement();
- exclusiveGateWay.setExpr(element.getAttribute("expr"));
- exclusiveGateWay.setLang(element.getAttribute("lang"));
- }
- }
-
- class JavaTaskAttributeHandler extends NodeAttributeHandler {
- public void deserializeAttributes(Wrapper wrapper, Element element) {
- super.deserializeAttributes(wrapper, element);
- wrapper.setPropertyValue(JavaTask.CLASS, element.getAttribute("class"));
- wrapper.setPropertyValue(JavaTask.METHOD, element.getAttribute("method"));
- wrapper.setPropertyValue(JavaTask.VAR, element.getAttribute("var"));
- }
- }
-
- class ScriptTaskAttributeHandler extends NodeAttributeHandler {
- public void deserializeAttributes(Wrapper wrapper, Element element) {
- super.deserializeAttributes(wrapper, element);
- wrapper.setPropertyValue(ScriptTask.EXPR, element.getAttribute("expr"));
- wrapper.setPropertyValue(ScriptTask.LANG, element.getAttribute("lang"));
- wrapper.setPropertyValue(ScriptTask.VAR, element.getAttribute("var"));
- }
- }
-
- class TerminateEndEventAttributeHandler extends NodeAttributeHandler {
- public void deserializeAttributes(Wrapper wrapper, Element element) {
- super.deserializeAttributes(wrapper, element);
- if (!(wrapper.getElement() instanceof TerminateEndEvent)) return;
- TerminateEndEvent terminateEndEvent = (TerminateEndEvent)wrapper.getElement();
- terminateEndEvent.setEnds(element.getAttribute("ends"));
- terminateEndEvent.setState(element.getAttribute("state"));
- }
- }
-
- class HumanTaskAttributeHandler extends NodeAttributeHandler {
- AssignmentAttributeHandler assignmentAttributeHandler = new
AssignmentAttributeHandler();
- public void deserializeAttributes(Wrapper wrapper, Element element) {
- super.deserializeAttributes(wrapper, element);
- assignmentAttributeHandler.deserializeAttributes(wrapper, element);
- }
-
- }
-
- class SwimlaneAttributeHandler extends DefaultAttributeDeserializer {
- AssignmentAttributeHandler assignmentAttributeHandler = new
AssignmentAttributeHandler();
- public void deserializeAttributes(Wrapper wrapper, Element element) {
- super.deserializeAttributes(wrapper, element);
- String name = element.getAttribute("name");
- if (!"".equals(name) && name != null) {
- wrapper.setPropertyValue(IPropertyId.NAME, name);
- }
- assignmentAttributeHandler.deserializeAttributes(wrapper, element);
- }
- }
-
- class TimerAttributeHandler extends DefaultAttributeDeserializer {
- protected List<String> getAttributesToRead() {
- List<String> result = super.getAttributesToRead();
- result.add(Timer.DUE_DATE);
- result.add(Timer.REPEAT);
- result.add(Timer.DUE_DATETIME);
- return result;
- }
- protected String getXmlName(String attributeName) {
- if (Timer.DUE_DATE.equals(attributeName)) {
- return "duedate";
- } else if (Timer.REPEAT.equals(attributeName)) {
- return "repeat";
- } else if (Timer.DUE_DATETIME.equals(attributeName)) {
- return "duedatetime";
- } else {
- return super.getXmlName(attributeName);
- }
- }
- }
-
- class ParameterAttributeHandler extends DefaultAttributeDeserializer {
- protected List<String> getAttributesToRead() {
- List<String> result = super.getAttributesToRead();
- result.add(Parameter.VAR);
- result.add(Parameter.SUBVAR);
- result.add(Parameter.EXPR);
- result.add(Parameter.LANG);
- return result;
- }
- protected String getXmlName(String attributeName) {
- if (Parameter.VAR.equals(attributeName)) {
- return "var";
- } else if (Parameter.SUBVAR.equals(attributeName)) {
- return "subvar";
- } else if (Parameter.EXPR.equals(attributeName)) {
- return "expr";
- } else if (Parameter.LANG.equals(attributeName)) {
- return "lang";
- } else {
- return super.getXmlName(attributeName);
- }
- }
- }
-
- class ArgumentAttributeHandler extends DefaultAttributeDeserializer {
- protected List<String> getAttributesToRead() {
- List<String> result = super.getAttributesToRead();
- return result;
- }
- }
-
- class FieldAttributeHandler extends DefaultAttributeDeserializer {
- protected List<String> getAttributesToRead() {
- List<String> result = super.getAttributesToRead();
- result.add(Field.NAME);
- return result;
- }
- protected String getXmlName(String attributeName) {
- if (Field.NAME.equals(attributeName)) {
- return "name";
- } else {
- return super.getXmlName(attributeName);
- }
- }
- }
-
- class SubprocessTaskAttributeHandler extends NodeAttributeHandler {
- protected List<String> getAttributesToRead() {
- List<String> result = super.getAttributesToRead();
- result.add(SubprocessTask.ID);
- result.add(SubprocessTask.KEY);
- result.add(SubprocessTask.OUTCOME);
- return result;
- }
- protected String getXmlName(String attributeName) {
- if (SubprocessTask.ID.equals(attributeName)) {
- return "sub-process-id";
- } else if (SubprocessTask.KEY.equals(attributeName)) {
- return "sub-process-key";
- } else if (SubprocessTask.OUTCOME.equals(attributeName)) {
- return "outcome";
- } else {
- return super.getXmlName(attributeName);
- }
- }
- }
-
- class EventListenerContainerAttributeHandler extends DefaultAttributeDeserializer {
- protected List<String> getAttributesToRead() {
- ArrayList<String> result = new ArrayList<String>();
- result.add(EventListenerContainer.EVENT_TYPE);
- return result;
- }
- protected String getXmlName(String attributeName) {
- if (EventListenerContainer.EVENT_TYPE.equals(attributeName)) {
- return "event";
- } else {
- return super.getXmlName(attributeName);
- }
- }
- }
-
- class EventListenerAttributeHandler extends DefaultAttributeDeserializer {
- protected List<String> getAttributesToRead() {
- ArrayList<String> result = new ArrayList<String>();
- result.add(EventListener.CLASS_NAME);
- return result;
- }
- protected String getXmlName(String attributeName) {
- if (EventListener.CLASS_NAME.equals(attributeName)) {
- return "class";
- } else {
- return super.getXmlName(attributeName);
- }
- }
- }
-
- class AssignmentAttributeHandler implements AttributeDeserializer {
- public void deserializeAttributes(Wrapper wrapper, Element element) {
- String assignee = element.getAttribute(Assignment.ASSIGNEE);
- if (!"".equals(assignee)) {
- wrapper.setPropertyValue(
- Assignment.ASSIGNMENT_TYPE,
- AssignmentPropertySource.getAssignmentTypesIndex(Assignment.ASSIGNEE));
- wrapper.setPropertyValue(Assignment.ASSIGNMENT_EXPRESSION, assignee);
- return;
- }
- String candidateGroups = element.getAttribute(Assignment.CANDIDATE_GROUPS);
- if (!"".equals(candidateGroups)) {
- wrapper.setPropertyValue(
- Assignment.ASSIGNMENT_TYPE,
- AssignmentPropertySource.getAssignmentTypesIndex(Assignment.CANDIDATE_GROUPS));
- wrapper.setPropertyValue(Assignment.ASSIGNMENT_EXPRESSION, candidateGroups);
- return;
- }
- String swimlane = element.getAttribute(HumanTask.SWIMLANE);
- if (!"".equals(swimlane)) {
- wrapper.setPropertyValue(
- Assignment.ASSIGNMENT_TYPE,
- AssignmentPropertySource.getAssignmentTypesIndex(HumanTask.SWIMLANE));
- wrapper.setPropertyValue(HumanTask.ASSIGNMENT_EXPRESSION, swimlane);
- return;
- }
- }
- }
-
- class SequenceFlowAttributeHandler extends DefaultAttributeDeserializer {
- public void deserializeAttributes(Wrapper wrapper, Element element) {
- super.deserializeAttributes(wrapper, element);
- if (!(wrapper instanceof ConnectionWrapper)) return;
- ConnectionWrapper connectionWrapper = (ConnectionWrapper)wrapper;
- addGraphics(connectionWrapper, element);
- connectionWrapper.getElement().setMetaData("to",
element.getAttribute("to"));
- connectionWrapper.setPropertyValue(IPropertyId.NAME,
element.getAttribute("name"));
- }
- }
-
- class SequenceFlowChildNodeHandler implements ChildNodeDeserializer {
- public Wrapper deserializeChildNode(Wrapper parent, Node node) {
- Wrapper result = null;
- if (!(parent instanceof ConnectionWrapper)) return result;
- ConnectionWrapper connectionWrapper = (ConnectionWrapper)parent;
- if (node instanceof Element) {
- if ("timer".equals(node.getNodeName())) {
- String duedate = ((Element)node).getAttribute("duedate");
- if (duedate != null && !("".equals(duedate))) {
- parent.setPropertyValue(SequenceFlow.TIMER, duedate);
- }
- } else if ("outcome-value".equals(node.getNodeName())) {
- NodeList nodeList = ((Element)node).getElementsByTagName("string");
- if (nodeList.getLength() == 1) {
- String value = ((Element)nodeList.item(0)).getAttribute("value");
- if (value != null && !("".equals("value"))) {
- parent.setPropertyValue(SequenceFlow.OUTCOME_VALUE, value);
- }
- }
- } else {
- result = createWrapper((Element)node);
- }
- if (result == null) return null;
- if (result instanceof Wrapper) {
- if (result.getElement() instanceof EventListener) {
- connectionWrapper.addChild("listener", result);
- }
- }
- }
- return result;
- }
- }
-
- class ScriptTaskChildNodeHandler extends NodeChildNodeHandler {
- public Wrapper deserializeChildNode(Wrapper parent, Node node) {
- Wrapper result = null;
- if (node instanceof Element && "text".equals(node.getNodeName())) {
- String text = ((Element)node).getTextContent();
- if (text != null && !("".equals(text))) {
- parent.setPropertyValue(ScriptTask.TEXT, text);
- }
- } else {
- result = super.deserializeChildNode(parent, node);
- }
- return result;
- }
- }
-
- class ArgumentChildNodeHandler extends NodeChildNodeHandler {
- public Wrapper deserializeChildNode(Wrapper parent, Node node) {
- Wrapper result = null;
- if (node instanceof Element && "string".equals(node.getNodeName()))
{
- String value = ((Element)node).getAttribute("value");
- if (value != null && !("".equals(value))) {
- parent.setPropertyValue(Argument.VALUE, value);
- }
- } else {
- result = super.deserializeChildNode(parent, node);
- }
- return result;
- }
- }
-
- class FieldChildNodeHandler extends NodeChildNodeHandler {
- public Wrapper deserializeChildNode(Wrapper parent, Node node) {
- Wrapper result = null;
- if (node instanceof Element && "string".equals(node.getNodeName()))
{
- String value = ((Element)node).getAttribute("value");
- if (value != null && !("".equals(value))) {
- parent.setPropertyValue(Field.VALUE, value);
- }
- } else {
- result = super.deserializeChildNode(parent, node);
- }
- return result;
- }
- }
-
- class JavaTaskChildNodeHandler extends NodeChildNodeHandler {
- public Wrapper deserializeChildNode(Wrapper parent, Node node) {
- Wrapper result = super.deserializeChildNode(parent, node);
- if (result == null) return result;
- if (result.getElement() instanceof Argument) {
- parent.addChild(JavaTask.ARGS, result);
- } else if (result.getElement() instanceof Field) {
- parent.addChild(JavaTask.FIELDS, result);
- }
- return result;
- }
- }
-
- class ProcessChildNodeHandler implements ChildNodeDeserializer {
- public Wrapper deserializeChildNode(Wrapper parent, Node node) {
- Wrapper result = null;
- if (!(parent instanceof FlowWrapper)) return result;
- FlowWrapper flowWrapper = (FlowWrapper)parent;
- if (node instanceof Element) {
- result = createWrapper((Element)node);
- if (result == null) return null;
- if (result instanceof NodeWrapper) {
- flowWrapper.addElement((NodeWrapper)result);
- } else if (result.getElement() instanceof Swimlane) {
- flowWrapper.addChild("swimlane", result);
- } else if (result.getElement() instanceof Timer) {
- flowWrapper.addChild("timer", result);
- } else if (result.getElement() instanceof EventListenerContainer) {
- flowWrapper.addChild("eventListener", result);
- }
- }
- return result;
- }
- }
-
- class SubprocessTaskChildNodeHandler extends NodeChildNodeHandler {
- public Wrapper deserializeChildNode(Wrapper parent, Node node) {
- Wrapper result = super.deserializeChildNode(parent, node);
- if (result == null) return result;
- if (result.getElement() instanceof InputParameter) {
- parent.addChild(SubprocessTask.INPUT_PARAMETERS, result);
- } else if (result.getElement() instanceof OutputParameter) {
- parent.addChild(SubprocessTask.OUTPUT_PARAMETERS, result);
- }
- return result;
- }
- }
-
- class EventListenerContainerChildNodeHandler implements ChildNodeDeserializer {
- public Wrapper deserializeChildNode(Wrapper parent, Node node) {
- Wrapper result = null;
- if (!(parent.getElement() instanceof EventListenerContainer)) return result;
- if (node instanceof Element) {
- result = createWrapper((Element)node);
- if (result != null) {
- if (result.getElement() instanceof EventListener) {
- parent.addChild(EventListenerContainer.LISTENERS, result);
- } else if (result.getElement() instanceof Timer) {
- parent.setPropertyValue(EventListenerContainer.DUE_DATE,
result.getPropertyValue(Timer.DUE_DATE));
- parent.setPropertyValue(EventListenerContainer.REPEAT,
result.getPropertyValue(Timer.REPEAT));
- }
- }
- }
- return result;
- }
- }
-
- class NodeChildNodeHandler implements ChildNodeDeserializer {
- @SuppressWarnings("unchecked")
- public Wrapper deserializeChildNode(Wrapper parent, Node node) {
- Wrapper result = null;
- if (!(parent instanceof NodeWrapper)) return result;
- NodeWrapper nodeWrapper = (NodeWrapper)parent;
- ArrayList<ConnectionWrapper> flows =
(ArrayList<ConnectionWrapper>)nodeWrapper.getElement().getMetaData("flows");
- if (flows == null) {
- flows = new ArrayList<ConnectionWrapper>();
- nodeWrapper.getElement().setMetaData("flows", flows);
- }
- if (node instanceof Element) {
- result = createWrapper((Element)node);
- if (result != null) {
- if (result instanceof ConnectionWrapper) {
- flows.add((ConnectionWrapper)result);
- } else if (result.getElement() instanceof EventListenerContainer) {
- parent.addChild("eventListener", result);
- }
- }
- }
- return result;
- }
- }
-
- class ExclusiveGateWayChildNodeHandler extends NodeChildNodeHandler {
- public Wrapper deserializeChildNode(Wrapper parent, Node node) {
- Wrapper result = null;
- ExclusiveGateway exclusiveGateway = (ExclusiveGateway)parent.getElement();
- if (node instanceof Element && "handler".equals(node.getNodeName()))
{
- String className = ((Element)node).getAttribute("class");
- exclusiveGateway.setHandler("".equals(className) ? null : className);
- } else {
- result = super.deserializeChildNode(parent, node);
- }
- return result;
- }
- }
-
- class ProcessPostProcessor implements PostProcessor {
- @SuppressWarnings("unchecked")
- public void postProcess(Wrapper wrapper) {
- if (!(wrapper instanceof FlowWrapper)) return;
- FlowWrapper flowWrapper = (FlowWrapper)wrapper;
- for (NodeWrapper source : flowWrapper.getNodeWrappers()) {
- ArrayList<ConnectionWrapper> flows =
(ArrayList<ConnectionWrapper>)source.getElement().getMetaData("flows");
- if (flows == null) continue;
- for (ConnectionWrapper connectionWrapper : flows) {
- String to = (String)connectionWrapper.getElement().getMetaData("to");
- if (to == null) {
- Logger.logInfo("Ignoring sequenceflow without target");
- continue;
- }
- NodeWrapper target = getNamedNode(to, flowWrapper);
- if (target == null) {
- Logger.logInfo("Ignoring unknown target " + to + " while resolving
sequenceflow target.");
- continue;
- }
- connectionWrapper.connect(source, target);
- }
- }
- }
- }
-
- private static DocumentBuilderFactory documentBuilderFactory =
DocumentBuilderFactory.newInstance();
-
- public Wrapper deserialize(InputStream is) {
- Wrapper result = null;
- try {
- Document document = documentBuilderFactory.newDocumentBuilder().parse(is);
- result = createWrapper(document.getDocumentElement());
- } catch (Exception e) {
- Logger.logError("An error occurred while creating the diagram", e);
- }
- return result;
- }
-
- private Wrapper createWrapper(Element element) {
- String elementId = getElementId(element.getNodeName());
- if (elementId == null) return null;
- Wrapper result = ElementRegistry.createWrapper(elementId);
- if (result == null) return null;
- AttributeDeserializer attributeHandler = getAttributeHandler(result);
- if (attributeHandler != null) {
- attributeHandler.deserializeAttributes(result, element);
- }
- ChildNodeDeserializer childNodeHandler = getChildNodeHandler(result);
- if (childNodeHandler != null) {
- NodeList nodeList = element.getChildNodes();
- ArrayList<Node> unknownNodeList = new ArrayList<Node>();
- for (int i = 0; i < nodeList.getLength(); i++) {
- Wrapper childWrapper = childNodeHandler.deserializeChildNode(result,
nodeList.item(i));
- if (childWrapper != null) {
- childWrapper.getElement().setMetaData("leadingNodes", unknownNodeList);
- unknownNodeList = new ArrayList<Node>();
- } else {
- unknownNodeList.add(nodeList.item(i));
- }
- }
- result.getElement().setMetaData("trailingNodes", unknownNodeList);
- }
- PostProcessor postProcessor = getPostProcessor(result);
- if (postProcessor != null) {
- postProcessor.postProcess(result);
- }
- return result;
- }
-
- private PostProcessor getPostProcessor(Wrapper wrapper) {
- if (wrapper instanceof FlowWrapper) {
- return new ProcessPostProcessor();
- }
- return null;
- }
-
- private AttributeDeserializer getAttributeHandler(Wrapper wrapper) {
- if (wrapper instanceof FlowWrapper) {
- return new ProcessAttributeHandler();
- } else if (wrapper instanceof NodeWrapper) {
- return getNodeAttributeHandler(wrapper);
- } else if (wrapper instanceof ConnectionWrapper) {
- return new SequenceFlowAttributeHandler();
- } else if (wrapper instanceof DefaultWrapper) {
- return getDefaultAttributeHandler(wrapper);
- }
- return null;
- }
-
- private AttributeDeserializer getDefaultAttributeHandler(Wrapper wrapper) {
- Object element = wrapper.getElement();
- if (element instanceof Swimlane) {
- return new SwimlaneAttributeHandler();
- } else if (element instanceof Timer) {
- return new TimerAttributeHandler();
- } else if (element instanceof EventListenerContainer) {
- return new EventListenerContainerAttributeHandler();
- } else if (element instanceof EventListener) {
- return new EventListenerAttributeHandler();
- } else if (element instanceof Parameter) {
- return new ParameterAttributeHandler();
- } else if (element instanceof Argument) {
- return new ArgumentAttributeHandler();
- } else if (element instanceof Field) {
- return new FieldAttributeHandler();
- }
- return null;
- }
-
- private AttributeDeserializer getNodeAttributeHandler(Wrapper wrapper) {
- Object element = wrapper.getElement();
- if (element instanceof HumanTask) {
- return new HumanTaskAttributeHandler();
- } else if (element instanceof SubprocessTask) {
- return new SubprocessTaskAttributeHandler();
- } else if (element instanceof ExclusiveGateway) {
- return new ExclusiveGatewayAttributeHandler();
- } else if (element instanceof TerminateEndEvent) {
- return new TerminateEndEventAttributeHandler();
- } else if (element instanceof JavaTask) {
- return new JavaTaskAttributeHandler();
- } else if (element instanceof ScriptTask) {
- return new ScriptTaskAttributeHandler();
- } else {
- return new NodeAttributeHandler();
- }
- }
-
- private ChildNodeDeserializer getChildNodeHandler(Wrapper wrapper) {
- if (wrapper instanceof FlowWrapper) {
- return new ProcessChildNodeHandler();
- } else if (wrapper instanceof NodeWrapper) {
- return getNodeChildNodeDeserializer(wrapper);
- } else if (wrapper instanceof DefaultWrapper) {
- return getDefaultChildNodeHandler(wrapper);
- } else if (wrapper instanceof ConnectionWrapper) {
- return new SequenceFlowChildNodeHandler();
- }
- return null;
- }
-
- private ChildNodeDeserializer getNodeChildNodeDeserializer(Wrapper wrapper) {
- Object element = wrapper.getElement();
- if (element instanceof ExclusiveGateway) {
- return new ExclusiveGateWayChildNodeHandler();
- } else if (element instanceof ScriptTask) {
- return new ScriptTaskChildNodeHandler();
- } else if (element instanceof SubprocessTask) {
- return new SubprocessTaskChildNodeHandler();
- } else if (element instanceof JavaTask) {
- return new JavaTaskChildNodeHandler();
- } else {
- return new NodeChildNodeHandler();
- }
- }
-
- private ChildNodeDeserializer getDefaultChildNodeHandler(Wrapper wrapper) {
- Object element = wrapper.getElement();
- if (element == null) return null;
- if (element instanceof EventListenerContainer) {
- return new EventListenerContainerChildNodeHandler();
- } else if (element instanceof Argument) {
- return new ArgumentChildNodeHandler();
- } else if (element instanceof Field) {
- return new FieldChildNodeHandler();
- }
- return null;
- }
-
- private String getElementId(String nodeName) {
- if ("process".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.process";
- else if ("start".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.startEvent";
- else if ("end".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.terminateEndEvent";
- else if ("end-error".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.errorEndEvent";
- else if ("end-cancel".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.cancelEndEvent";
- else if ("state".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.waitTask";
- else if ("hql".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.hqlTask";
- else if ("sql".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.sqlTask";
- else if ("java".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.javaTask";
- else if ("script".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.scriptTask";
- else if ("esb".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.serviceTask";
- else if ("mail".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.mailTask";
- else if ("task".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.humanTask";
- else if ("custom".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.customTask";
- else if ("sub-process".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.subprocessTask";
- else if ("decision".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.exclusiveGateway";
- else if ("join".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.parallelJoinGateway";
- else if ("fork".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.parallelForkGateway";
- else if ("transition".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.sequenceFlow";
- else if ("swimlane".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.swimlane";
- else if ("timer".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.timer";
- else if ("on".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.eventListenerContainer";
- else if ("event-listener".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.eventListener";
- else if ("parameter-in".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.inputParameter";
- else if ("parameter-out".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.outputParameter";
- else if ("field".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.field";
- else if ("arg".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.argument";
- else return null;
- }
-
- private NodeWrapper getNamedNode(String name, FlowWrapper flowWrapper) {
- if (name == null) return null;
- for (NodeWrapper nodeWrapper : flowWrapper.getNodeWrappers()) {
- if (name.equals(nodeWrapper.getName())) return nodeWrapper;
- }
- return null;
- }
-
- private void addGraphics(ConnectionWrapper wrapper, Element element) {
- String graphics = element.getAttribute("g");
- if (graphics != null && !"".equals(graphics)) {
- int pos = graphics.lastIndexOf(':');
- String labelInfo, bendpointInfo = null;
- if (pos != -1) {
- labelInfo = graphics.substring(pos + 1);
- bendpointInfo = graphics.substring(0, pos);
- } else {
- labelInfo = graphics;
- }
- if (labelInfo != null && !"".equals(labelInfo)) {
- addLabelInfo(wrapper, labelInfo);
- }
- if (bendpointInfo != null && !"".equals(bendpointInfo)) {
- addBendpointInfo(wrapper, bendpointInfo);
- }
- }
- }
-
- private void addBendpointInfo(ConnectionWrapper wrapper, String bendpointInfo) {
- StringTokenizer bendpoints = new StringTokenizer(bendpointInfo, ";");
- int index = 0;
- while (bendpoints.hasMoreTokens()) {
- StringTokenizer bendpoint = new StringTokenizer(bendpoints.nextToken(),
",");
- if (bendpoint.countTokens() != 2) {
- Logger.logInfo(
- "Wrong info in attribute 'g' while determining bendpoints.");
- } else {
- int x = convertStringToInt(bendpoint.nextToken());
- int y = convertStringToInt(bendpoint.nextToken());
- wrapper.addBendpoint(index++, new Point(x, y));
- }
- }
- }
-
- private void addLabelInfo(ConnectionWrapper wrapper, String labelInfo) {
- StringTokenizer label = new StringTokenizer(labelInfo, ",");
- if (label.countTokens() != 2) {
- Logger.logInfo("Wrong info in attribute 'g' while determining label
location.");
- } else {
- int x = convertStringToInt(label.nextToken());
- int y = convertStringToInt(label.nextToken());
- wrapper.getLabel().setLocation(new Point(x, y));
- }
- }
-
- private void addGraphics(NodeWrapper wrapper, Element element) {
- String graphics = element.getAttribute("g");
- Rectangle constraint = new Rectangle(0, 0, 80, 40);
- if (graphics != null) {
- StringTokenizer tokenizer = new StringTokenizer(graphics, ",");
- if (tokenizer.countTokens() != 4) {
- Logger.logInfo(
- "Wrong info in attribute 'g' for element '" +
- element.getNodeName() + "'" +
- " with name '" +
- element.getAttribute("name") +
- "'. Using defaults." );
- } else {
- constraint.x = convertStringToInt(tokenizer.nextToken());
- constraint.y = convertStringToInt(tokenizer.nextToken());
- constraint.width = convertStringToInt(tokenizer.nextToken());
- constraint.height = convertStringToInt(tokenizer.nextToken());
- }
- }
- wrapper.setConstraint(constraint);
- }
-
- private int convertStringToInt(String str) {
- int result = 0;
- try {
- result = new Integer(str).intValue();
- } catch (NumberFormatException e) {
- Logger.logError("Error while converting " + str + " to an
integer.", e);
- }
- return result;
- }
-
-}
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlEditor.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlEditor.java 2009-07-01
15:43:43 UTC (rev 16320)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlEditor.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -29,6 +29,8 @@
import org.jboss.tools.flow.common.registry.ElementRegistry;
import org.jboss.tools.flow.common.wrapper.Wrapper;
import org.jboss.tools.flow.jpdl4.editpart.JpdlGraphicalEditPartFactory;
+import org.jboss.tools.flow.jpdl4.io.JpdlDeserializer;
+import org.jboss.tools.flow.jpdl4.io.JpdlSerializer;
import org.jboss.tools.flow.jpdl4.properties.JpdlPropertySheetPage;
import org.jboss.tools.flow.jpdl4.view.DetailsPage;
import org.jboss.tools.flow.jpdl4.view.IDetailsPage;
@@ -64,7 +66,7 @@
protected void writeModel(OutputStream os) throws IOException {
Object object = getModel();
if (object instanceof Wrapper) {
- new JpdlSerializer().serialize((Wrapper)object, os);
+ JpdlSerializer.serialize((Wrapper)object, os);
}
}
@@ -128,7 +130,7 @@
} catch (IOException e) {
// ignored
}
- setModel(empty ? createModel() : new JpdlDeserializer().deserialize(is));
+ setModel(empty ? createModel() : JpdlDeserializer.deserialize(is));
}
// public SelectionSynchronizer getSelectionSynchronizer() {
Deleted:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSerializer.java 2009-07-01
15:43:43 UTC (rev 16320)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editor/JpdlSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -1,985 +0,0 @@
-package org.jboss.tools.flow.jpdl4.editor;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Result;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.jboss.tools.flow.common.model.Element;
-import org.jboss.tools.flow.common.properties.IPropertyId;
-import org.jboss.tools.flow.common.wrapper.ConnectionWrapper;
-import org.jboss.tools.flow.common.wrapper.ContainerWrapper;
-import org.jboss.tools.flow.common.wrapper.FlowWrapper;
-import org.jboss.tools.flow.common.wrapper.LabelWrapper;
-import org.jboss.tools.flow.common.wrapper.NodeWrapper;
-import org.jboss.tools.flow.common.wrapper.Wrapper;
-import org.jboss.tools.flow.jpdl4.Logger;
-import org.jboss.tools.flow.jpdl4.model.Argument;
-import org.jboss.tools.flow.jpdl4.model.Assignment;
-import org.jboss.tools.flow.jpdl4.model.CancelEndEvent;
-import org.jboss.tools.flow.jpdl4.model.CustomTask;
-import org.jboss.tools.flow.jpdl4.model.ErrorEndEvent;
-import org.jboss.tools.flow.jpdl4.model.EventListener;
-import org.jboss.tools.flow.jpdl4.model.EventListenerContainer;
-import org.jboss.tools.flow.jpdl4.model.ExclusiveGateway;
-import org.jboss.tools.flow.jpdl4.model.Field;
-import org.jboss.tools.flow.jpdl4.model.ForkParallelGateway;
-import org.jboss.tools.flow.jpdl4.model.HqlTask;
-import org.jboss.tools.flow.jpdl4.model.HumanTask;
-import org.jboss.tools.flow.jpdl4.model.InputParameter;
-import org.jboss.tools.flow.jpdl4.model.JavaTask;
-import org.jboss.tools.flow.jpdl4.model.JoinParallelGateway;
-import org.jboss.tools.flow.jpdl4.model.MailTask;
-import org.jboss.tools.flow.jpdl4.model.OutputParameter;
-import org.jboss.tools.flow.jpdl4.model.Parameter;
-import org.jboss.tools.flow.jpdl4.model.Process;
-import org.jboss.tools.flow.jpdl4.model.ProcessNode;
-import org.jboss.tools.flow.jpdl4.model.ScriptTask;
-import org.jboss.tools.flow.jpdl4.model.SequenceFlow;
-import org.jboss.tools.flow.jpdl4.model.ServiceTask;
-import org.jboss.tools.flow.jpdl4.model.SqlTask;
-import org.jboss.tools.flow.jpdl4.model.StartEvent;
-import org.jboss.tools.flow.jpdl4.model.SubprocessTask;
-import org.jboss.tools.flow.jpdl4.model.SuperState;
-import org.jboss.tools.flow.jpdl4.model.Swimlane;
-import org.jboss.tools.flow.jpdl4.model.TerminateEndEvent;
-import org.jboss.tools.flow.jpdl4.model.Timer;
-import org.jboss.tools.flow.jpdl4.model.WaitTask;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-public class JpdlSerializer {
-
- private static TransformerFactory transformerFactory =
TransformerFactory.newInstance();
- private static Transformer transformer = null;
-
- static {
- try {
- transformer = transformerFactory.newTransformer();
- transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
- } catch (TransformerConfigurationException e) {
- Logger.logError("Error while creating XML tranformer.", e);
- }
- }
-
- public void serialize(Wrapper wrapper, OutputStream os) throws IOException {
- StringBuffer buffer = new StringBuffer();
- appendToBuffer(buffer, wrapper, 0);
- Writer writer = new OutputStreamWriter(os);
- writer.write(buffer.toString());
- writer.close();
- }
-
- private void appendToBuffer(StringBuffer buffer, Wrapper wrapper, int level) {
- Object object = wrapper.getElement();
- if (!(object instanceof Element)) return;
- appendOpening(buffer, wrapper, level);
- StringBuffer body = new StringBuffer();
- appendBody(body, wrapper, level);
- if (body.length() > 0) {
- buffer.append(">");
- buffer.append(body);
- appendClosing(buffer, wrapper, level);
- } else {
- buffer.append("/>");
- }
- }
-
-
-
- private void appendNodeList(StringBuffer buffer, ArrayList<Node> nodeList) {
- if (transformer == null) {
- Logger.logInfo("Skipping append nodes as transformer is not initialized.");
- return;
- }
- DOMSource domSource = new DOMSource();
- for (Node node : nodeList) {
- StringWriter writer = new StringWriter();
- domSource.setNode(node);
- Result result = new StreamResult(writer);
- try {
- transformer.transform(domSource, result);
- } catch (TransformerException e) {
- Logger.logError("Exception while transforming xml.", e);
- }
- buffer.append(writer.getBuffer());
- }
- }
-
-
-
- interface WrapperSerializer {
- void appendOpening(StringBuffer buffer, Wrapper wrapper, int level);
- }
-
- abstract class AbstractWrapperSerializer implements WrapperSerializer {
- protected abstract List<String> getAttributesToSave();
- protected String getPropertyName(String attributeName) {
- return attributeName;
- }
- protected void appendAttributeToSave(String attributeName, StringBuffer buffer,
Wrapper wrapper) {
- String value = (String)wrapper.getPropertyValue(getPropertyName(attributeName));
- if (value == null || "".equals(value)) return;
- buffer.append(" " + attributeName + "=\"" + value +
"\"");
- }
- @SuppressWarnings("unchecked")
- protected void appendLeadingNodes(StringBuffer buffer, Wrapper wrapper, int level) {
- ArrayList<Node> leadingNodeList =
(ArrayList<Node>)wrapper.getElement().getMetaData("leadingNodes");
- boolean appendLeadingNodes = leadingNodeList != null &&
!leadingNodeList.isEmpty();
- if (appendLeadingNodes) {
- appendNodeList(buffer, leadingNodeList);
- } else {
- buffer.append("\n");
- appendPadding(buffer, level);
- }
- }
- protected void appendDefaultAttribute(StringBuffer buffer, Node node) {
- buffer.append(" " + node.getNodeName() + "=\"" +
node.getNodeValue() + "\"");
- }
- protected void appendAttributes(StringBuffer buffer, Wrapper wrapper, int level) {
- Element element = wrapper.getElement();
- if (element == null) return;
- NamedNodeMap attributes =
(NamedNodeMap)element.getMetaData("attributes");
- List<String> attributeNames = getAttributesToSave();
- if (attributes != null) {
- for (int i = 0; i < attributes.getLength(); i++) {
- String nodeName = attributes.item(i).getNodeName();
- if (attributeNames.contains(nodeName)) {
- appendAttributeToSave(nodeName, buffer, wrapper);
- attributeNames.remove(nodeName);
- } else {
- appendDefaultAttribute(buffer, attributes.item(i));
- }
- }
- }
- for (int i = 0; i < attributeNames.size(); i++) {
- appendAttributeToSave(attributeNames.get(i), buffer, wrapper);
- }
- }
- public void appendOpening(StringBuffer buffer, Wrapper wrapper, int level) {
- appendLeadingNodes(buffer, wrapper, level);
- buffer.append("<" + getNodeName(wrapper.getElement()));
- appendAttributes(buffer, wrapper, level);
- }
- public void appendClosing(StringBuffer buffer, Wrapper wrapper) {
- buffer.append("</" + getNodeName(wrapper.getElement()) +
">");
- }
- public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
- }
- }
-
- private String getNodeName(Element element) {
- IConfigurationElement configuration =
(IConfigurationElement)element.getMetaData("configurationElement");
- String elementId = configuration.getAttribute("id");
- if ("org.jboss.tools.flow.jpdl4.process".equals(elementId)) return
"process";
- else if ("org.jboss.tools.flow.jpdl4.startEvent".equals(elementId)) return
"start";
- else if ("org.jboss.tools.flow.jpdl4.terminateEndEvent".equals(elementId))
return "end";
- else if ("org.jboss.tools.flow.jpdl4.errorEndEvent".equals(elementId)) return
"end-error";
- else if ("org.jboss.tools.flow.jpdl4.cancelEndEvent".equals(elementId))
return "end-cancel";
- else if ("org.jboss.tools.flow.jpdl4.waitTask".equals(elementId)) return
"state";
- else if ("org.jboss.tools.flow.jpdl4.hqlTask".equals(elementId)) return
"hql";
- else if ("org.jboss.tools.flow.jpdl4.sqlTask".equals(elementId)) return
"sql";
- else if ("org.jboss.tools.flow.jpdl4.javaTask".equals(elementId)) return
"java";
- else if ("org.jboss.tools.flow.jpdl4.scriptTask".equals(elementId)) return
"script";
- else if ("org.jboss.tools.flow.jpdl4.mailTask".equals(elementId)) return
"mail";
- else if ("org.jboss.tools.flow.jpdl4.serviceTask".equals(elementId)) return
"esb";
- else if ("org.jboss.tools.flow.jpdl4.humanTask".equals(elementId)) return
"task";
- else if ("org.jboss.tools.flow.jpdl4.subprocessTask".equals(elementId))
return "sub-process";
- else if ("org.jboss.tools.flow.jpdl4.customTask".equals(elementId)) return
"custom";
- else if ("org.jboss.tools.flow.jpdl4.exclusiveGateway".equals(elementId))
return "decision";
- else if ("org.jboss.tools.flow.jpdl4.parallelJoinGateway".equals(elementId))
return "join";
- else if ("org.jboss.tools.flow.jpdl4.parallelForkGateway".equals(elementId))
return "fork";
- else if ("org.jboss.tools.flow.jpdl4.sequenceFlow".equals(elementId)) return
"transition";
- else if ("org.jboss.tools.flow.jpdl4.swimlane".equals(elementId)) return
"swimlane";
- else if ("org.jboss.tools.flow.jpdl4.timer".equals(elementId)) return
"timer";
- else if
("org.jboss.tools.flow.jpdl4.eventListenerContainer".equals(elementId)) return
"on";
- else if ("org.jboss.tools.flow.jpdl4.eventListener".equals(elementId)) return
"event-listener";
- else if ("org.jboss.tools.flow.jpdl4.inputParameter".equals(elementId))
return "parameter-in";
- else if ("org.jboss.tools.flow.jpdl4.outputParameter".equals(elementId))
return "parameter-out";
- else if ("org.jboss.tools.flow.jpdl4.argument".equals(elementId)) return
"arg";
- else if ("org.jboss.tools.flow.jpdl4.field".equals(elementId)) return
"field";
- else return null;
- }
-
- class SequenceFlowWrapperSerializer extends AbstractWrapperSerializer {
- protected List<String> getAttributesToSave() {
- ArrayList<String> result = new ArrayList<String>();
- result.add("name");
- result.add("to");
- result.add("g");
- return result;
- }
- protected void appendAttributeToSave(String attributeName, StringBuffer buffer,
Wrapper wrapper) {
- if (!(wrapper instanceof ConnectionWrapper)) return;
- Element element = wrapper.getElement();
- if (!(element instanceof SequenceFlow)) return;
- if ("name".equals(attributeName)) {
- appendName(buffer, (SequenceFlow)element);
- } else if ("to".equals(attributeName)) {
- appendTo(buffer, (SequenceFlow)element);
- } else if ("g".equals(attributeName)) {
- appendGraphics(buffer, (ConnectionWrapper)wrapper);
- }
- }
- protected void appendName(StringBuffer buffer, SequenceFlow sequenceFlow) {
- if (sequenceFlow.getName() == null) return;
- String value = sequenceFlow.getName();
- if (value == null || "".equals(sequenceFlow.getName())) return;
- buffer.append(" name=\"" + value + "\"");
- }
- protected void appendTo(StringBuffer buffer, SequenceFlow sequenceFlow) {
- if (sequenceFlow.getTo() == null) return;
- String value = sequenceFlow.getTo().getName();
- if (value == null || "".equals(value)) return;
- buffer.append(" to=\"" + value + "\"");
- }
- protected void appendGraphics(StringBuffer buffer, ConnectionWrapper wrapper) {
- StringBuffer bendPointBuffer = new StringBuffer();
- List<Point> bendPoints = wrapper.getBendpoints();
- if (bendPoints != null && bendPoints.size() > 0) {
- for (int i = 0; i < bendPoints.size(); i++) {
- bendPointBuffer.append(bendPoints.get(i).x);
- bendPointBuffer.append(",");
- bendPointBuffer.append(bendPoints.get(i).y);
- if (i < bendPoints.size() - 1) bendPointBuffer.append(";");
- }
- }
- StringBuffer labelBuffer = new StringBuffer();
- LabelWrapper labelWrapper = wrapper.getLabel();
- if (labelWrapper != null && !isEmpty(labelWrapper.getText())) {
- Point location = labelWrapper.getLocation();
- if (location != null) {
- labelBuffer.append(location.x);
- labelBuffer.append(',');
- labelBuffer.append(location.y);
- }
- }
- if (bendPointBuffer.length() + labelBuffer.length() == 0) return;
- buffer.append(" g=\"");
- buffer.append(bendPointBuffer);
- if (bendPointBuffer.length() > 0) buffer.append(':');
- buffer.append(labelBuffer);
- buffer.append("\"");
- }
- public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
- String timer = (String)wrapper.getPropertyValue(SequenceFlow.TIMER);
- if (timer != null && !("".equals(timer))) {
- buffer.append("\n");
- appendPadding(buffer, level + 1);
- buffer.append("<timer duedate=\"" + timer +
"\"/>");
- }
- String outcome = (String)wrapper.getPropertyValue(SequenceFlow.OUTCOME_VALUE);
- if (outcome != null && !("".equals(outcome))) {
- buffer.append("\n");
- appendPadding(buffer, level + 1);
- buffer.append("<outcome-value><string value=\"" + outcome
+ "\"/></outcome-value>");
- }
- List<Element> eventListeners = wrapper.getChildren("listener");
- if (eventListeners != null) {
- for (Element eventListener : eventListeners) {
- if (!(eventListener instanceof Wrapper)) continue;
- appendToBuffer(buffer, (Wrapper)eventListener, level+1);
- }
- }
- }
- }
-
- class ProcessNodeWrapperSerializer extends AbstractWrapperSerializer {
- protected List<String> getAttributesToSave() {
- ArrayList<String> result = new ArrayList<String>();
- result.add("name");
- result.add("g");
- return result;
- }
- protected void appendAttributeToSave(String attributeName, StringBuffer buffer,
Wrapper wrapper) {
- if (!(wrapper instanceof NodeWrapper)) return;
- Element element = wrapper.getElement();
- if (!(element instanceof ProcessNode)) return;
- if ("name".equals(attributeName)) {
- appendName(buffer, (ProcessNode)element);
- } else if ("g".equals(attributeName)) {
- appendGraphics(buffer, (NodeWrapper)wrapper);
- } else {
- super.appendAttributeToSave(attributeName, buffer, wrapper);
- }
- }
- protected void appendName(StringBuffer buffer, ProcessNode processNode) {
- String value = processNode.getName();
- if (value == null || "".equals(value)) return;
- buffer.append(" name=\"" + value + "\"");
- }
- protected void appendGraphics(StringBuffer buffer, NodeWrapper wrapper) {
- Rectangle constraint = wrapper.getConstraint();
- buffer.append(" g=\"");
- buffer.append(constraint.x);
- buffer.append(",");
- buffer.append(constraint.y);
- buffer.append(",");
- buffer.append(constraint.width);
- buffer.append(",");
- buffer.append(constraint.height);
- buffer.append("\"");
- }
- public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
- NodeWrapper nodeWrapper = (NodeWrapper)wrapper;
- List<Element> eventListenerContainers =
nodeWrapper.getChildren("eventListener");
- if (eventListenerContainers != null) {
- for (Element eventListenerContainer : eventListenerContainers) {
- if (!(eventListenerContainer instanceof Wrapper)) continue;
- appendToBuffer(buffer, (Wrapper)eventListenerContainer, level+1);
- }
- }
- List<ConnectionWrapper> children = nodeWrapper.getOutgoingConnections();
- for (ConnectionWrapper connectionWrapper : children) {
- appendToBuffer(buffer, connectionWrapper, level+1);
- }
- }
- }
-
- class ExclusiveGatewayWrapperSerializer extends ProcessNodeWrapperSerializer {
- protected List<String> getAttributesToSave() {
- List<String> result = super.getAttributesToSave();
- result.add("expr");
- result.add("lang");
- return result;
- }
- public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
- ExclusiveGateway exclusiveGateway = (ExclusiveGateway)wrapper.getElement();
- String handler = exclusiveGateway.getHandler();
- if (handler != null && !"".equals(handler)) {
- buffer.append("\n");
- appendPadding(buffer, level + 1);
- buffer.append("<handler class=\"" + handler + "\"
/>");
- }
- super.appendBody(buffer, wrapper, level);
- }
- }
-
- class TerminateEndEventWrapperSerializer extends ProcessNodeWrapperSerializer {
- protected List<String> getAttributesToSave() {
- List<String> result = super.getAttributesToSave();
- result.add("ends");
- result.add("state");
- return result;
- }
- }
-
- class JavaTaskWrapperSerializer extends ProcessNodeWrapperSerializer {
- protected List<String> getAttributesToSave() {
- List<String> result = super.getAttributesToSave();
- result.add("class");
- result.add("method");
- result.add("var");
- return result;
- }
- protected String getPropertyName(String attributeName) {
- if ("class".equals(attributeName)) {
- return JavaTask.CLASS;
- } else if ("method".equals(attributeName)) {
- return JavaTask.METHOD;
- } else if ("var".equals(attributeName)) {
- return JavaTask.VAR;
- }
- return super.getPropertyName(attributeName);
- }
- public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
- List<Element> fields = wrapper.getChildren(JavaTask.FIELDS);
- if (fields != null) {
- for (Element field : fields) {
- if (!(field instanceof Wrapper)) continue;
- appendToBuffer(buffer, (Wrapper)field, level+1);
- }
- }
- List<Element> arguments = wrapper.getChildren(JavaTask.ARGS);
- if (arguments != null) {
- for (Element argument : arguments) {
- if (!(argument instanceof Wrapper)) continue;
- appendToBuffer(buffer, (Wrapper)argument, level+1);
- }
- }
- super.appendBody(buffer, wrapper, level);
- }
- }
-
- class ScriptTaskWrapperSerializer extends ProcessNodeWrapperSerializer {
- protected List<String> getAttributesToSave() {
- List<String> result = super.getAttributesToSave();
- result.add("expr");
- result.add("lang");
- result.add("var");
- return result;
- }
- protected String getPropertyName(String attributeName) {
- if ("expr".equals(attributeName)) {
- return ScriptTask.EXPR;
- } else if ("lang".equals(attributeName)) {
- return ScriptTask.LANG;
- } else if ("var".equals(attributeName)) {
- return ScriptTask.VAR;
- }
- return super.getPropertyName(attributeName);
- }
- public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
- String text = (String)wrapper.getPropertyValue(ScriptTask.TEXT);
- if (text != null && !("".equals(text))) {
- buffer.append("\n");
- appendPadding(buffer, level + 1);
- buffer.append("<text>" + text + "</text>");
- }
- super.appendBody(buffer, wrapper, level);
- }
- }
-
- class HumanTaskWrapperSerializer extends ProcessNodeWrapperSerializer {
- protected List<String> getAttributesToSave() {
- List<String> result = super.getAttributesToSave();
- result.add(Assignment.ASSIGNEE);
- result.add(Assignment.CANDIDATE_GROUPS);
- result.add(Assignment.SWIMLANE);
- return result;
- }
- protected void appendAttributeToSave(String attributeName, StringBuffer buffer,
Wrapper wrapper) {
- if (!(wrapper instanceof NodeWrapper)) return;
- Element element = wrapper.getElement();
- if (!(element instanceof HumanTask)) return;
- if (HumanTask.ASSIGNEE.equals(attributeName)) {
- appendExpression(HumanTask.ASSIGNEE, buffer, wrapper);
- } else if (HumanTask.CANDIDATE_GROUPS.equals(attributeName)) {
- appendExpression(HumanTask.CANDIDATE_GROUPS, buffer, wrapper);
- } else if (HumanTask.SWIMLANE.equals(attributeName)) {
- appendExpression(HumanTask.SWIMLANE, buffer, wrapper);
- } else {
- super.appendAttributeToSave(attributeName, buffer, wrapper);
- }
- }
- protected void appendExpression(String type, StringBuffer buffer, Wrapper wrapper)
{
- Object assignmentType = wrapper.getPropertyValue(HumanTask.ASSIGNMENT_TYPE);
- if (!(assignmentType instanceof Integer)) return;
- if (type.equals(HumanTask.ASSIGNMENT_TYPES[(Integer)assignmentType])) {
- Object value = wrapper.getPropertyValue(HumanTask.ASSIGNMENT_EXPRESSION);
- if (value == null || "".equals(value)) return;
- buffer.append(" " + type + "=\"" + value +
"\"");
- }
- }
- }
-
- class SwimlaneWrapperSerializer extends AbstractWrapperSerializer {
- protected List<String> getAttributesToSave() {
- ArrayList<String> result = new ArrayList<String>();
- result.add("name");
- result.add(Assignment.ASSIGNEE);
- result.add(Assignment.CANDIDATE_GROUPS);
- result.add(Assignment.SWIMLANE);
- return result;
- }
- protected void appendAttributeToSave(String attributeName, StringBuffer buffer,
Wrapper wrapper) {
- Element element = wrapper.getElement();
- if (!(element instanceof Swimlane)) return;
- if (Assignment.ASSIGNEE.equals(attributeName)) {
- appendExpression(Assignment.ASSIGNEE, buffer, wrapper);
- } else if (Assignment.CANDIDATE_GROUPS.equals(attributeName)) {
- appendExpression(Assignment.CANDIDATE_GROUPS, buffer, wrapper);
- } else if (Assignment.SWIMLANE.equals(attributeName)) {
- appendExpression(Assignment.SWIMLANE, buffer, wrapper);
- } else if ("name".equals(attributeName)){
- appendName(buffer, wrapper);
- }
- }
- protected void appendName(StringBuffer buffer, Wrapper wrapper) {
- String value = (String)wrapper.getPropertyValue(IPropertyId.NAME);
- if (value == null || "".equals(value)) return;
- buffer.append(" name=\"" + value + "\"");
- }
- protected void appendExpression(String type, StringBuffer buffer, Wrapper wrapper)
{
- Object assignmentType = wrapper.getPropertyValue(HumanTask.ASSIGNMENT_TYPE);
- if (!(assignmentType instanceof Integer)) return;
- if (type.equals(HumanTask.ASSIGNMENT_TYPES[(Integer)assignmentType])) {
- Object value = wrapper.getPropertyValue(HumanTask.ASSIGNMENT_EXPRESSION);
- if (value == null || "".equals(value)) return;
- buffer.append(" " + type + "=\"" + value +
"\"");
- }
- }
- public void appendOpening(StringBuffer buffer, Wrapper wrapper, int level) {
- appendLeadingNodes(buffer, wrapper, level);
- buffer.append("<swimlane");
- appendAttributes(buffer, wrapper, level);
- }
- }
-
- class TimerWrapperSerializer extends AbstractWrapperSerializer {
- protected List<String> getAttributesToSave() {
- ArrayList<String> result = new ArrayList<String>();
- result.add("duedate");
- result.add("repeat");
- result.add("duedatetime");
- return result;
- }
- protected String getPropertyName(String attributeName) {
- if ("duedate".equals(attributeName)) {
- return Timer.DUE_DATE;
- } else if ("repeat".equals(attributeName)) {
- return Timer.REPEAT;
- } else if ("duedatetime".equals(attributeName)) {
- return Timer.DUE_DATETIME;
- }
- return super.getPropertyName(attributeName);
- }
- }
-
- class ParameterWrapperSerializer extends AbstractWrapperSerializer {
- protected List<String> getAttributesToSave() {
- ArrayList<String> result = new ArrayList<String>();
- result.add("var");
- result.add("subvar");
- result.add("expr");
- result.add("lang");
- return result;
- }
- protected String getPropertyName(String attributeName) {
- if ("var".equals(attributeName)) {
- return Parameter.VAR;
- } else if ("subvar".equals(attributeName)) {
- return Parameter.SUBVAR;
- } else if ("expr".equals(attributeName)) {
- return Parameter.EXPR;
- } else if ("lang".equals(attributeName)) {
- return Parameter.LANG;
- }
- return super.getPropertyName(attributeName);
- }
- }
-
- class ArgumentWrapperSerializer extends AbstractWrapperSerializer {
- protected List<String> getAttributesToSave() {
- ArrayList<String> result = new ArrayList<String>();
- return result;
- }
- public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
- String value = (String)wrapper.getPropertyValue(Argument.VALUE);
- if (value != null && !("".equals(value))) {
- buffer.append("\n");
- appendPadding(buffer, level + 1);
- buffer.append("<string value=\"" + value +
"\"/>");
- }
- super.appendBody(buffer, wrapper, level);
- }
- }
-
- class FieldWrapperSerializer extends AbstractWrapperSerializer {
- protected List<String> getAttributesToSave() {
- ArrayList<String> result = new ArrayList<String>();
- result.add("name");
- return result;
- }
- protected String getPropertyName(String attributeName) {
- if ("name".equals(attributeName)) {
- return Field.NAME;
- }
- return super.getPropertyName(attributeName);
- }
- public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
- String value = (String)wrapper.getPropertyValue(Field.VALUE);
- if (value != null && !("".equals(value))) {
- buffer.append("\n");
- appendPadding(buffer, level + 1);
- buffer.append("<string value=\"" + value +
"\"/>");
- }
- super.appendBody(buffer, wrapper, level);
- }
- }
-
- class SubprocessTaskWrapperSerializer extends ProcessNodeWrapperSerializer {
- protected List<String> getAttributesToSave() {
- List<String> result = super.getAttributesToSave();
- result.add("sub-process-id");
- result.add("sub-process-key");
- result.add("outcome");
- return result;
- }
- protected String getPropertyName(String attributeName) {
- if ("sub-process-id".equals(attributeName)) {
- return SubprocessTask.ID;
- } else if ("sub-process-key".equals(attributeName)) {
- return SubprocessTask.KEY;
- } else if ("outcome".equals(attributeName)) {
- return SubprocessTask.OUTCOME;
- }
- return super.getPropertyName(attributeName);
- }
- public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
- List<Element> inputParameters =
wrapper.getChildren(SubprocessTask.INPUT_PARAMETERS);
- if (inputParameters != null) {
- for (Element inputParameter : inputParameters) {
- if (!(inputParameter instanceof Wrapper)) continue;
- appendToBuffer(buffer, (Wrapper)inputParameter, level+1);
- }
- }
- List<Element> outputParameters =
wrapper.getChildren(SubprocessTask.OUTPUT_PARAMETERS);
- if (outputParameters != null) {
- for (Element outputParameter : outputParameters) {
- if (!(outputParameter instanceof Wrapper)) continue;
- appendToBuffer(buffer, (Wrapper)outputParameter, level+1);
- }
- }
- super.appendBody(buffer, wrapper, level);
- }
- }
-
- class EventListenerContainerWrapperSerializer extends AbstractWrapperSerializer {
- protected List<String> getAttributesToSave() {
- ArrayList<String> result = new ArrayList<String>();
- result.add("event");
- return result;
- }
- protected String getPropertyName(String attributeName) {
- if ("event".equals(attributeName)) {
- return EventListenerContainer.EVENT_TYPE;
- }
- return super.getPropertyName(attributeName);
- }
- public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
- EventListenerContainer eventListenerContainer =
(EventListenerContainer)wrapper.getElement();
- String dueDate = eventListenerContainer.getDueDate();
- String repeat = eventListenerContainer.getRepeat();
- if ((dueDate != null && !"".equals(dueDate)) || (repeat != null
&& !"".equals(repeat))) {
- buffer.append("\n");
- appendPadding(buffer, level);
- buffer.append("<timer");
- if (dueDate != null && !"".equals(dueDate)) {
- buffer.append(" duedate=\"" + dueDate + "\"");
- }
- if (repeat != null && !"".equals(repeat)) {
- buffer.append(" repeat=\"" + repeat + "\"");
- }
- buffer.append("/>");
- }
- List<Element> eventListeners =
wrapper.getChildren(EventListenerContainer.LISTENERS);
- if (eventListeners != null) {
- for (Element eventListener : eventListeners) {
- if (!(eventListener instanceof Wrapper)) continue;
- appendToBuffer(buffer, (Wrapper)eventListener, level+1);
- }
- }
- }
- }
-
- class EventListenerWrapperSerializer extends AbstractWrapperSerializer {
- protected List<String> getAttributesToSave() {
- ArrayList<String> result = new ArrayList<String>();
- result.add("class");
- return result;
- }
- protected String getPropertyName(String attributeName) {
- if ("class".equals(attributeName)) {
- return EventListener.CLASS_NAME;
- }
- return super.getPropertyName(attributeName);
- }
- }
-
- class ProcessWrapperSerializer extends AbstractWrapperSerializer {
- public void appendOpening(StringBuffer buffer, Wrapper wrapper, int level) {
- buffer.append("<?xml version=\"1.0\"
encoding=\"UTF-8\"?>\n\n");
- buffer.append("<" + getNodeName(wrapper.getElement()));
- appendAttributes(buffer, wrapper, level);
- }
- protected List<String> getAttributesToSave() {
- ArrayList<String> result = new ArrayList<String>();
- result.add("name");
- result.add("initial");
- result.add("key");
- result.add("version");
- result.add("description");
- return result;
- }
- protected void appendAttributeToSave(String attributeName, StringBuffer buffer,
Wrapper wrapper) {
- if (!(wrapper instanceof FlowWrapper)) return;
- Element element = wrapper.getElement();
- if (element == null || !(element instanceof Process)) return;
- if ("name".equals(attributeName)) {
- appendName(buffer, (Process)element);
- } else if ("key".equals(attributeName)) {
- appendKey(buffer, (Process)element);
- } else if ("version".equals(attributeName)) {
- appendVersion(buffer, (Process)element);
- } else if ("description".equals(attributeName)) {
- appendDescription(buffer, (Process)element);
- } else if ("initial".equals(attributeName)) {
- appendInitial(buffer, (Process)element);
- } else {
- super.appendAttributeToSave(attributeName, buffer, wrapper);
- }
- }
- protected void appendName(StringBuffer buffer, Process process) {
- String value = process.getName();
- if (value == null || "".equals(value)) return;
- buffer.append(" name=\"" + value + "\"");
- }
- protected void appendInitial(StringBuffer buffer, Process process) {
- if (process.getInitial() == null) return;
- String value = process.getInitial().getName();
- if (value == null || "".equals(value)) return;
- buffer.append(" initial=\"" + value + "\"");
- }
- protected void appendKey(StringBuffer buffer, Process process) {
- if (process.getKey() == null) return;
- String value = process.getKey();
- if (value == null || "".equals(value)) return;
- buffer.append(" key=\"" + value + "\"");
- }
- protected void appendVersion(StringBuffer buffer, Process process) {
- if (process.getVersion() == null) return;
- String value = process.getVersion();
- if (value == null || "".equals(value)) return;
- buffer.append(" version=\"" + value + "\"");
- }
- protected void appendDescription(StringBuffer buffer, Process process) {
- if (process.getDescription() == null) return;
- String value = process.getDescription();
- if (value == null || "".equals(value)) return;
- buffer.append(" description=\"" + value + "\"");
- }
- public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
- FlowWrapper flowWrapper = (FlowWrapper)wrapper;
- List<Element> swimlanes = flowWrapper.getChildren("swimlane");
- if (swimlanes != null) {
- for (Element swimlane : swimlanes) {
- if (!(swimlane instanceof Wrapper)) continue;
- appendToBuffer(buffer, (Wrapper)swimlane, level+1);
- }
- }
- List<Element> timers = flowWrapper.getChildren("timer");
- if (timers != null) {
- for (Element timer : timers) {
- if (!(timer instanceof Wrapper)) continue;
- appendToBuffer(buffer, (Wrapper)timer, level+1);
- }
- }
- List<Element> eventListenerContainers =
flowWrapper.getChildren("eventListener");
- if (eventListenerContainers != null) {
- for (Element eventListenerContainer : eventListenerContainers) {
- if (!(eventListenerContainer instanceof Wrapper)) continue;
- appendToBuffer(buffer, (Wrapper)eventListenerContainer, level+1);
- }
- }
- ContainerWrapper containerWrapper = (ContainerWrapper)wrapper;
- List<NodeWrapper> children = containerWrapper.getNodeWrappers();
- for (NodeWrapper nodeWrapper : children) {
- appendToBuffer(buffer, nodeWrapper, level+1);
- }
- }
- }
-
- private void appendOpening(StringBuffer buffer, Wrapper wrapper, int level) {
- Element element = (Element)wrapper.getElement();
- if (element instanceof SequenceFlow) {
- new SequenceFlowWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof TerminateEndEvent) {
- new TerminateEndEventWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof ErrorEndEvent) {
- new ProcessNodeWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof CancelEndEvent) {
- new ProcessNodeWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof StartEvent) {
- new ProcessNodeWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof SuperState) {
- new ProcessNodeWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof WaitTask) {
- new ProcessNodeWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof HqlTask) {
- new ProcessNodeWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof SqlTask) {
- new ProcessNodeWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof JavaTask) {
- new JavaTaskWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof ScriptTask) {
- new ScriptTaskWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof MailTask) {
- new ProcessNodeWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof ServiceTask) {
- new ProcessNodeWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof HumanTask) {
- new HumanTaskWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof SubprocessTask) {
- new SubprocessTaskWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof CustomTask) {
- new ProcessNodeWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof ExclusiveGateway) {
- new ExclusiveGatewayWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof ForkParallelGateway) {
- new ProcessNodeWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof JoinParallelGateway) {
- new ProcessNodeWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof Process) {
- new ProcessWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof Swimlane) {
- new SwimlaneWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof Timer) {
- new TimerWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof EventListenerContainer) {
- new EventListenerContainerWrapperSerializer().appendOpening(buffer, wrapper,
level);
- } else if (element instanceof EventListener) {
- new EventListenerWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof Parameter) {
- new ParameterWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof Argument) {
- new ArgumentWrapperSerializer().appendOpening(buffer, wrapper, level);
- } else if (element instanceof Field) {
- new FieldWrapperSerializer().appendOpening(buffer, wrapper, level);
- }
-
- }
-
- @SuppressWarnings("unchecked")
- private void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
- Element element = wrapper.getElement();
- if (element instanceof SequenceFlow) {
- new SequenceFlowWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof TerminateEndEvent) {
- new TerminateEndEventWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof ErrorEndEvent) {
- new ProcessNodeWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof CancelEndEvent) {
- new ProcessNodeWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof StartEvent) {
- new ProcessNodeWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof SuperState) {
- new ProcessNodeWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof WaitTask) {
- new ProcessNodeWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof HqlTask) {
- new ProcessNodeWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof SqlTask) {
- new ProcessNodeWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof JavaTask) {
- new JavaTaskWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof ScriptTask) {
- new ScriptTaskWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof MailTask) {
- new ProcessNodeWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof ServiceTask) {
- new ProcessNodeWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof HumanTask) {
- new HumanTaskWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof SubprocessTask) {
- new SubprocessTaskWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof CustomTask) {
- new ProcessNodeWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof ExclusiveGateway) {
- new ExclusiveGatewayWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof ForkParallelGateway) {
- new ProcessNodeWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof JoinParallelGateway) {
- new ProcessNodeWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof Process) {
- new ProcessWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof Swimlane) {
- new SwimlaneWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof Timer) {
- new TimerWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof EventListenerContainer) {
- new EventListenerContainerWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof EventListener) {
- new EventListenerWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof Argument) {
- new ArgumentWrapperSerializer().appendBody(buffer, wrapper, level);
- } else if (element instanceof Field) {
- new FieldWrapperSerializer().appendBody(buffer, wrapper, level);
- }
- ArrayList<Node> trailingNodeList =
(ArrayList<Node>)element.getMetaData("trailingNodes");
- boolean appendTrailingNodes = trailingNodeList != null &&
!trailingNodeList.isEmpty();
- if (appendTrailingNodes) {
- appendNodeList(buffer, trailingNodeList);
- } else if (buffer.length() > 0){
- buffer.append("\n");
- appendPadding(buffer, level);
- }
- }
-
- private void appendPadding(StringBuffer buffer, int level) {
- for (int i = 0; i < level; i++) {
- buffer.append(" ");
- }
- }
-
- private void appendClosing(StringBuffer buffer, Wrapper wrapper, int level) {
- Element element = (Element)wrapper.getElement();
- if (element instanceof SequenceFlow) {
- buffer.append("</transition>");
- } else if (element instanceof TerminateEndEvent) {
- buffer.append("</end>");
- } else if (element instanceof ErrorEndEvent) {
- buffer.append("</end-error>");
- } else if (element instanceof CancelEndEvent) {
- buffer.append("</end-cancel>");
- } else if (element instanceof StartEvent) {
- buffer.append("</start>");
- } else if (element instanceof SuperState) {
- buffer.append("</super-state>");
- } else if (element instanceof WaitTask) {
- buffer.append("</state>");
- } else if (element instanceof HqlTask) {
- buffer.append("</hql>");
- } else if (element instanceof SqlTask) {
- buffer.append("</sql>");
- } else if (element instanceof JavaTask) {
- buffer.append("</java>");
- } else if (element instanceof ScriptTask) {
- buffer.append("</script>");
- } else if (element instanceof MailTask) {
- buffer.append("</mail>");
- } else if (element instanceof ServiceTask) {
- buffer.append("</esb>");
- } else if (element instanceof HumanTask) {
- buffer.append("</task>");
- } else if (element instanceof SubprocessTask) {
- buffer.append("</sub-process>");
- } else if (element instanceof CustomTask) {
- buffer.append("</custom>");
- } else if (element instanceof ExclusiveGateway) {
- buffer.append("</decision>");
- } else if (element instanceof ForkParallelGateway) {
- buffer.append("</fork>");
- } else if (element instanceof JoinParallelGateway) {
- buffer.append("</join>");
- } else if (element instanceof Process) {
- buffer.append("</process>");
- } else if (element instanceof Swimlane) {
- buffer.append("</swimlane>");
- } else if (element instanceof Timer) {
- buffer.append("</timer>");
- } else if (element instanceof EventListenerContainer) {
- buffer.append("</on>");
- } else if (element instanceof EventListener) {
- buffer.append("</event-listener>");
- } else if (element instanceof InputParameter) {
- buffer.append("</parameter-in>");
- } else if (element instanceof OutputParameter) {
- buffer.append("</parameter-out>");
- } else if (element instanceof Argument) {
- buffer.append("</arg>");
- } else if (element instanceof Field) {
- buffer.append("</field>");
- }
- }
-
- private boolean isEmpty(String str) {
- return str == null || "".equals(str);
- }
-
-}
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ArgumentTreeEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ArgumentTreeEditPart.java 2009-07-01
15:43:43 UTC (rev 16320)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ArgumentTreeEditPart.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -23,7 +23,7 @@
protected String getText() {
String value = (String)((Wrapper)getModel()).getPropertyValue(Argument.VALUE);
- return (value != null && !("".equals(value))) ? value :
"field";
+ return (value != null && !("".equals(value))) ? value :
"argument";
}
public void modelChanged(ModelEvent event) {
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/HqlTaskTreeRootEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/HqlTaskTreeRootEditPart.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/HqlTaskTreeRootEditPart.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,30 @@
+package org.jboss.tools.flow.jpdl4.editpart;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.tools.flow.common.model.Element;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.HqlTask;
+
+public class HqlTaskTreeRootEditPart extends TaskTreeRootEditPart {
+
+ public HqlTaskTreeRootEditPart(Wrapper wrapper) {
+ super(wrapper);
+ }
+
+ protected List<Object> getModelChildren() {
+ List<Object> result = new ArrayList<Object>();
+ addParameters(result, (Wrapper)getModel());
+ result.addAll(super.getModelChildren());
+ return result;
+ }
+
+ private void addParameters(List<Object> list, Wrapper wrapper) {
+ List<Element> parameters = wrapper.getChildren(HqlTask.PARAMETERS);
+ if (parameters != null && !parameters.isEmpty()) {
+ list.add(new ParameterListTreeEditPart(parameters));
+ }
+ }
+
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/HqlTaskTreeRootEditPart.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlTreeEditPartFactory.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlTreeEditPartFactory.java 2009-07-01
15:43:43 UTC (rev 16320)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/JpdlTreeEditPartFactory.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -11,11 +11,13 @@
import org.jboss.tools.flow.jpdl4.model.EventListener;
import org.jboss.tools.flow.jpdl4.model.EventListenerContainer;
import org.jboss.tools.flow.jpdl4.model.Field;
+import org.jboss.tools.flow.jpdl4.model.HqlTask;
import org.jboss.tools.flow.jpdl4.model.JavaTask;
import org.jboss.tools.flow.jpdl4.model.Parameter;
import org.jboss.tools.flow.jpdl4.model.SubprocessTask;
import org.jboss.tools.flow.jpdl4.model.Swimlane;
import org.jboss.tools.flow.jpdl4.model.Timer;
+import org.jboss.tools.flow.jpdl4.model.WireObject;
public class JpdlTreeEditPartFactory implements EditPartFactory {
@@ -25,6 +27,7 @@
Element element = ((NodeWrapper)model).getElement();
if (element instanceof SubprocessTask) return new
SubprocessTaskTreeRootEditPart((Wrapper)model);
if (element instanceof JavaTask) return new JavaTaskTreeRootEditPart((Wrapper)model);
+ if (element instanceof HqlTask) return new HqlTaskTreeRootEditPart((Wrapper)model);
return new TaskTreeRootEditPart((NodeWrapper)model);
}
if (model instanceof ConnectionWrapper && context == null) return new
SequenceFlowTreeRootEditPart((ConnectionWrapper)model);
@@ -37,6 +40,7 @@
if (element instanceof EventListenerContainer) return new
EventListenerListTreeEditPart((Wrapper)model);
if (element instanceof EventListener) return new
EventListenerTreeEditPart((Wrapper)model);
if (element instanceof Timer) return new TimerTreeEditPart((Wrapper)model);
+ if (element instanceof WireObject) return new WireObjectTreeEditPart((Wrapper)model);
return new NoDetailsTreeRootEditPart();
}
if (model instanceof SwimlaneListTreeEditPart) return (EditPart)model;
@@ -46,6 +50,7 @@
if (model instanceof FieldListTreeEditPart) return (EditPart)model;
if (model instanceof TimerListTreeEditPart) return (EditPart)model;
if (model instanceof ListenerListTreeEditPart) return (EditPart)model;
+ if (model instanceof ParameterListTreeEditPart) return (EditPart)model;
return new NoDetailsTreeRootEditPart();
}
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ParameterListTreeEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ParameterListTreeEditPart.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ParameterListTreeEditPart.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,34 @@
+package org.jboss.tools.flow.jpdl4.editpart;
+
+import java.util.List;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.jboss.tools.flow.common.model.Element;
+import org.jboss.tools.flow.jpdl4.util.SharedImages;
+
+public class ParameterListTreeEditPart extends JpdlTreeEditPart {
+
+ public ParameterListTreeEditPart(List<Element> arguments) {
+ super(arguments);
+ }
+
+ protected Image getImage() {
+ String iconPath = "icons/16/argument_multiple.gif";
+ ImageDescriptor descriptor = ImageDescriptor.createFromURL(
+ Platform.getBundle("org.jboss.tools.flow.jpdl4").getEntry(iconPath));
+ return SharedImages.INSTANCE.getImage(descriptor);
+ }
+
+ protected String getText() {
+ return "Parameters";
+ }
+
+ @SuppressWarnings("unchecked")
+ protected List<Object> getModelChildren() {
+ return (List<Object>)getModel();
+ }
+
+
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ParameterListTreeEditPart.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/WireObjectTreeEditPart.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/WireObjectTreeEditPart.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/WireObjectTreeEditPart.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,42 @@
+package org.jboss.tools.flow.jpdl4.editpart;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.jboss.tools.flow.common.wrapper.ModelEvent;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.util.SharedImages;
+
+public class WireObjectTreeEditPart extends JpdlTreeEditPart implements
ElementTreeEditPart {
+
+ public WireObjectTreeEditPart(Wrapper wrapper) {
+ super(wrapper);
+ }
+
+ protected Image getImage() {
+ String iconPath = "icons/16/argument.gif";
+ ImageDescriptor descriptor = ImageDescriptor.createFromURL(
+ Platform.getBundle("org.jboss.tools.flow.jpdl4").getEntry(iconPath));
+ return SharedImages.INSTANCE.getImage(descriptor);
+ }
+
+ protected String getText() {
+ return "WireObject";
+ }
+
+ public void modelChanged(ModelEvent event) {
+ if (event.getChangeType() == Wrapper.CHANGE_PROPERTY) {
+ refreshVisuals();
+ }
+ }
+
+ public void activate() {
+ super.activate();
+ ((Wrapper)getModel()).addListener(this);
+ }
+
+ public void deactivate() {
+ ((Wrapper)getModel()).removeListener(this);
+ super.deactivate();
+ }
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/WireObjectTreeEditPart.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/handler/AddParameterHandler.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/handler/AddParameterHandler.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/handler/AddParameterHandler.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,17 @@
+package org.jboss.tools.flow.jpdl4.handler;
+
+import org.jboss.tools.flow.jpdl4.model.HqlTask;
+
+public class AddParameterHandler extends AddChildHandler {
+
+ @Override
+ protected String getChildId() {
+ return "org.jboss.tools.flow.jpdl4.wireObject";
+ }
+
+ @Override
+ protected String getChildType() {
+ return HqlTask.PARAMETERS;
+ }
+
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/handler/AddParameterHandler.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/AbstractElementDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/AbstractElementDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/AbstractElementDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,66 @@
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.Logger;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public abstract class AbstractElementDeserializer implements ElementDeserializer {
+
+ protected Wrapper deserializeChildNode(Wrapper parent, Node node) {
+ return null;
+ }
+
+ public void deserializeChildNodes(Wrapper wrapper,
+ Element element) {
+ if (wrapper == null) return;
+ NodeList nodeList = element.getChildNodes();
+ ArrayList<Node> unknownNodeList = new ArrayList<Node>();
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Wrapper childWrapper = deserializeChildNode(wrapper, nodeList.item(i));
+ if (childWrapper != null) {
+ childWrapper.getElement().setMetaData("leadingNodes", unknownNodeList);
+ unknownNodeList = new ArrayList<Node>();
+ } else {
+ unknownNodeList.add(nodeList.item(i));
+ }
+ }
+ wrapper.getElement().setMetaData("trailingNodes", unknownNodeList);
+ }
+
+ protected List<String> getAttributesToRead() {
+ return new ArrayList<String>();
+ }
+
+ protected String getXmlName(String attributeName) {
+ return null;
+ }
+
+ public void deserializeAttributes(Wrapper wrapper, Element element) {
+ wrapper.getElement().setMetaData("attributes", element.getAttributes());
+ List<String> attributeNames = getAttributesToRead();
+ for (String attributeName : attributeNames) {
+ String xmlName = getXmlName(attributeName);
+ if (xmlName == null) continue;
+ String attribute = element.getAttribute(xmlName);
+ if (!"".equals(attribute) && attribute != null) {
+ wrapper.setPropertyValue(attributeName, attribute);
+ }
+ }
+ }
+
+ protected int convertStringToInt(String str) {
+ int result = 0;
+ try {
+ result = new Integer(str).intValue();
+ } catch (NumberFormatException e) {
+ Logger.logError("Error while converting " + str + " to an
integer.", e);
+ }
+ return result;
+ }
+
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/AbstractElementDeserializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/AbstractElementSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/AbstractElementSerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/AbstractElementSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,149 @@
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Result;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.jboss.tools.flow.common.model.Element;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.Logger;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+
+public abstract class AbstractElementSerializer implements ElementSerializer {
+
+ private static TransformerFactory transformerFactory =
TransformerFactory.newInstance();
+ private static Transformer transformer = null;
+
+ static {
+ try {
+ transformer = transformerFactory.newTransformer();
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
+ } catch (TransformerConfigurationException e) {
+ Logger.logError("Error while creating XML tranformer.", e);
+ }
+ }
+
+ public void appendToBuffer(StringBuffer buffer, Wrapper wrapper, int level) {
+ appendOpening(buffer, wrapper, level);
+ StringBuffer body = new StringBuffer();
+ appendBody(body, wrapper, level);
+ appendTrailingNodes(body, wrapper, level);
+ if (body.length() > 0) {
+ buffer.append(">");
+ buffer.append(body);
+ appendClosing(buffer, wrapper, level);
+ } else {
+ buffer.append("/>");
+ }
+ }
+
+ protected void appendPadding(StringBuffer buffer, int level) {
+ for (int i = 0; i < level; i++) {
+ buffer.append(" ");
+ }
+ }
+
+ protected abstract List<String> getAttributesToSave();
+
+ protected String getPropertyName(String attributeName) {
+ return attributeName;
+ }
+
+ protected void appendAttributeToSave(String attributeName, StringBuffer buffer, Wrapper
wrapper) {
+ String value = (String)wrapper.getPropertyValue(getPropertyName(attributeName));
+ if (value == null || "".equals(value)) return;
+ buffer.append(" " + attributeName + "=\"" + value +
"\"");
+ }
+
+ @SuppressWarnings("unchecked")
+ protected void appendLeadingNodes(StringBuffer buffer, Wrapper wrapper, int level) {
+ ArrayList<Node> leadingNodeList =
(ArrayList<Node>)wrapper.getElement().getMetaData("leadingNodes");
+ boolean appendLeadingNodes = leadingNodeList != null &&
!leadingNodeList.isEmpty();
+ if (appendLeadingNodes) {
+ appendNodeList(buffer, leadingNodeList);
+ } else {
+ buffer.append("\n");
+ appendPadding(buffer, level);
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ protected void appendTrailingNodes(StringBuffer buffer, Wrapper wrapper, int level) {
+ ArrayList<Node> trailingNodeList =
(ArrayList<Node>)wrapper.getElement().getMetaData("trailingNodes");
+ boolean appendTrailingNodes = trailingNodeList != null &&
!trailingNodeList.isEmpty();
+ if (appendTrailingNodes) {
+ appendNodeList(buffer, trailingNodeList);
+ } else if (buffer.length() > 0){
+ buffer.append("\n");
+ appendPadding(buffer, level);
+ }
+ }
+
+ protected void appendDefaultAttribute(StringBuffer buffer, Node node) {
+ buffer.append(" " + node.getNodeName() + "=\"" +
node.getNodeValue() + "\"");
+ }
+
+ protected void appendAttributes(StringBuffer buffer, Wrapper wrapper, int level) {
+ Element element = wrapper.getElement();
+ if (element == null) return;
+ NamedNodeMap attributes = (NamedNodeMap)element.getMetaData("attributes");
+ List<String> attributeNames = getAttributesToSave();
+ if (attributes != null) {
+ for (int i = 0; i < attributes.getLength(); i++) {
+ String nodeName = attributes.item(i).getNodeName();
+ if (attributeNames.contains(nodeName)) {
+ appendAttributeToSave(nodeName, buffer, wrapper);
+ attributeNames.remove(nodeName);
+ } else {
+ appendDefaultAttribute(buffer, attributes.item(i));
+ }
+ }
+ }
+ for (int i = 0; i < attributeNames.size(); i++) {
+ appendAttributeToSave(attributeNames.get(i), buffer, wrapper);
+ }
+ }
+
+ protected void appendNodeList(StringBuffer buffer, ArrayList<Node> nodeList) {
+ if (transformer == null) {
+ Logger.logInfo("Skipping append nodes as transformer is not initialized.");
+ return;
+ }
+ DOMSource domSource = new DOMSource();
+ for (Node node : nodeList) {
+ StringWriter writer = new StringWriter();
+ domSource.setNode(node);
+ Result result = new StreamResult(writer);
+ try {
+ transformer.transform(domSource, result);
+ } catch (TransformerException e) {
+ Logger.logError("Exception while transforming xml.", e);
+ }
+ buffer.append(writer.getBuffer());
+ }
+ }
+
+ protected void appendOpening(StringBuffer buffer, Wrapper wrapper, int level) {
+ appendLeadingNodes(buffer, wrapper, level);
+ buffer.append("<" + Registry.getXmlNodeName(wrapper.getElement()));
+ appendAttributes(buffer, wrapper, level);
+ }
+
+ protected void appendClosing(StringBuffer buffer, Wrapper wrapper, int level) {
+ buffer.append("</" + Registry.getXmlNodeName(wrapper.getElement()) +
">");
+ }
+
+ protected void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
+ }
+
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/AbstractElementSerializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ArgumentDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ArgumentDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ArgumentDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,30 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.List;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.Argument;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+class ArgumentDeserializer extends AbstractElementDeserializer {
+ protected List<String> getAttributesToRead() {
+ List<String> result = super.getAttributesToRead();
+ return result;
+ }
+ public Wrapper deserializeChildNode(Wrapper parent, Node node) {
+ Wrapper result = null;
+ if (node instanceof Element && "string".equals(node.getNodeName()))
{
+ String value = ((Element)node).getAttribute("value");
+ if (value != null && !("".equals(value))) {
+ parent.setPropertyValue(Argument.VALUE, value);
+ }
+ } else {
+ result = super.deserializeChildNode(parent, node);
+ }
+ return result;
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ArgumentDeserializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ArgumentSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ArgumentSerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ArgumentSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,26 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.Argument;
+
+class ArgumentSerializer extends AbstractElementSerializer {
+ protected List<String> getAttributesToSave() {
+ ArrayList<String> result = new ArrayList<String>();
+ return result;
+ }
+ public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
+ String value = (String)wrapper.getPropertyValue(Argument.VALUE);
+ if (value != null && !("".equals(value))) {
+ buffer.append("\n");
+ appendPadding(buffer, level + 1);
+ buffer.append("<string value=\"" + value +
"\"/>");
+ }
+ super.appendBody(buffer, wrapper, level);
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ArgumentSerializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/AssignmentDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/AssignmentDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/AssignmentDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,41 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.Assignment;
+import org.jboss.tools.flow.jpdl4.model.AssignmentPropertySource;
+import org.jboss.tools.flow.jpdl4.model.HumanTask;
+import org.w3c.dom.Element;
+
+class AssignmentDeserializer extends AbstractElementDeserializer {
+
+ public void deserializeAttributes(Wrapper wrapper, Element element) {
+ String assignee = element.getAttribute(Assignment.ASSIGNEE);
+ if (!"".equals(assignee)) {
+ wrapper.setPropertyValue(
+ Assignment.ASSIGNMENT_TYPE,
+ AssignmentPropertySource.getAssignmentTypesIndex(Assignment.ASSIGNEE));
+ wrapper.setPropertyValue(Assignment.ASSIGNMENT_EXPRESSION, assignee);
+ return;
+ }
+ String candidateGroups = element.getAttribute(Assignment.CANDIDATE_GROUPS);
+ if (!"".equals(candidateGroups)) {
+ wrapper.setPropertyValue(
+ Assignment.ASSIGNMENT_TYPE,
+ AssignmentPropertySource.getAssignmentTypesIndex(Assignment.CANDIDATE_GROUPS));
+ wrapper.setPropertyValue(Assignment.ASSIGNMENT_EXPRESSION, candidateGroups);
+ return;
+ }
+ String swimlane = element.getAttribute(HumanTask.SWIMLANE);
+ if (!"".equals(swimlane)) {
+ wrapper.setPropertyValue(
+ Assignment.ASSIGNMENT_TYPE,
+ AssignmentPropertySource.getAssignmentTypesIndex(HumanTask.SWIMLANE));
+ wrapper.setPropertyValue(HumanTask.ASSIGNMENT_EXPRESSION, swimlane);
+ return;
+ }
+ }
+
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/AssignmentDeserializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ElementDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ElementDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ElementDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,12 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.w3c.dom.Element;
+
+interface ElementDeserializer {
+ void deserializeAttributes(Wrapper wrapper, Element element);
+ void deserializeChildNodes(Wrapper wrapper, Element element);
+}
\ No newline at end of file
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ElementSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ElementSerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ElementSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,10 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+
+interface ElementSerializer {
+ void appendToBuffer(StringBuffer buffer, Wrapper wrapper, int level);
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ElementSerializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerContainerDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerContainerDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerContainerDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,45 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.EventListener;
+import org.jboss.tools.flow.jpdl4.model.EventListenerContainer;
+import org.jboss.tools.flow.jpdl4.model.Timer;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+class EventListenerContainerDeserializer extends AbstractElementDeserializer {
+ protected List<String> getAttributesToRead() {
+ ArrayList<String> result = new ArrayList<String>();
+ result.add(EventListenerContainer.EVENT_TYPE);
+ return result;
+ }
+ protected String getXmlName(String attributeName) {
+ if (EventListenerContainer.EVENT_TYPE.equals(attributeName)) {
+ return "event";
+ } else {
+ return super.getXmlName(attributeName);
+ }
+ }
+ public Wrapper deserializeChildNode(Wrapper parent, Node node) {
+ Wrapper result = null;
+ if (!(parent.getElement() instanceof EventListenerContainer)) return result;
+ if (node instanceof Element) {
+ result = Registry.createWrapper((Element)node);
+ if (result != null) {
+ if (result.getElement() instanceof EventListener) {
+ parent.addChild(EventListenerContainer.LISTENERS, result);
+ } else if (result.getElement() instanceof Timer) {
+ parent.setPropertyValue(EventListenerContainer.DUE_DATE,
result.getPropertyValue(Timer.DUE_DATE));
+ parent.setPropertyValue(EventListenerContainer.REPEAT,
result.getPropertyValue(Timer.REPEAT));
+ }
+ }
+ }
+ return result;
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerContainerDeserializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerContainerSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerContainerSerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerContainerSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,50 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.tools.flow.common.model.Element;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.EventListenerContainer;
+
+class EventListenerContainerSerializer extends AbstractElementSerializer {
+ protected List<String> getAttributesToSave() {
+ ArrayList<String> result = new ArrayList<String>();
+ result.add("event");
+ return result;
+ }
+ protected String getPropertyName(String attributeName) {
+ if ("event".equals(attributeName)) {
+ return EventListenerContainer.EVENT_TYPE;
+ }
+ return super.getPropertyName(attributeName);
+ }
+ public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
+ EventListenerContainer eventListenerContainer =
(EventListenerContainer)wrapper.getElement();
+ String dueDate = eventListenerContainer.getDueDate();
+ String repeat = eventListenerContainer.getRepeat();
+ if ((dueDate != null && !"".equals(dueDate)) || (repeat != null
&& !"".equals(repeat))) {
+ buffer.append("\n");
+ appendPadding(buffer, level);
+ buffer.append("<timer");
+ if (dueDate != null && !"".equals(dueDate)) {
+ buffer.append(" duedate=\"" + dueDate + "\"");
+ }
+ if (repeat != null && !"".equals(repeat)) {
+ buffer.append(" repeat=\"" + repeat + "\"");
+ }
+ buffer.append("/>");
+ }
+ List<Element> eventListeners =
wrapper.getChildren(EventListenerContainer.LISTENERS);
+ if (eventListeners != null) {
+ for (Element eventListener : eventListeners) {
+ if (eventListener instanceof Wrapper) {
+ JpdlSerializer.serialize((Wrapper)eventListener, buffer, level+1);
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerContainerSerializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,24 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.tools.flow.jpdl4.model.EventListener;
+
+class EventListenerDeserializer extends AbstractElementDeserializer {
+ protected List<String> getAttributesToRead() {
+ ArrayList<String> result = new ArrayList<String>();
+ result.add(EventListener.CLASS_NAME);
+ return result;
+ }
+ protected String getXmlName(String attributeName) {
+ if (EventListener.CLASS_NAME.equals(attributeName)) {
+ return "class";
+ } else {
+ return super.getXmlName(attributeName);
+ }
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerDeserializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerSerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,23 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.tools.flow.jpdl4.model.EventListener;
+
+class EventListenerSerializer extends AbstractElementSerializer {
+ protected List<String> getAttributesToSave() {
+ ArrayList<String> result = new ArrayList<String>();
+ result.add("class");
+ return result;
+ }
+ protected String getPropertyName(String attributeName) {
+ if ("class".equals(attributeName)) {
+ return EventListener.CLASS_NAME;
+ }
+ return super.getPropertyName(attributeName);
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/EventListenerSerializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ExclusiveGatewayDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ExclusiveGatewayDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ExclusiveGatewayDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,30 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.ExclusiveGateway;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+class ExclusiveGatewayDeserializer extends NodeDeserializer {
+ public void deserializeAttributes(Wrapper wrapper, Element element) {
+ super.deserializeAttributes(wrapper, element);
+ if (!(wrapper.getElement() instanceof ExclusiveGateway)) return;
+ ExclusiveGateway exclusiveGateWay = (ExclusiveGateway)wrapper.getElement();
+ exclusiveGateWay.setExpr(element.getAttribute("expr"));
+ exclusiveGateWay.setLang(element.getAttribute("lang"));
+ }
+ public Wrapper deserializeChildNode(Wrapper parent, Node node) {
+ Wrapper result = null;
+ ExclusiveGateway exclusiveGateway = (ExclusiveGateway)parent.getElement();
+ if (node instanceof Element && "handler".equals(node.getNodeName()))
{
+ String className = ((Element)node).getAttribute("class");
+ exclusiveGateway.setHandler("".equals(className) ? null : className);
+ } else {
+ result = super.deserializeChildNode(parent, node);
+ }
+ return result;
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ExclusiveGatewayDeserializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ExclusiveGatewaySerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ExclusiveGatewaySerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ExclusiveGatewaySerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,28 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.List;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.ExclusiveGateway;
+
+class ExclusiveGatewaySerializer extends ProcessNodeSerializer {
+ protected List<String> getAttributesToSave() {
+ List<String> result = super.getAttributesToSave();
+ result.add("expr");
+ result.add("lang");
+ return result;
+ }
+ public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
+ ExclusiveGateway exclusiveGateway = (ExclusiveGateway)wrapper.getElement();
+ String handler = exclusiveGateway.getHandler();
+ if (handler != null && !"".equals(handler)) {
+ buffer.append("\n");
+ appendPadding(buffer, level + 1);
+ buffer.append("<handler class=\"" + handler + "\"
/>");
+ }
+ super.appendBody(buffer, wrapper, level);
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ExclusiveGatewaySerializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/FieldDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/FieldDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/FieldDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,38 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.List;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.Field;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+class FieldDeserializer extends AbstractElementDeserializer {
+ protected List<String> getAttributesToRead() {
+ List<String> result = super.getAttributesToRead();
+ result.add(Field.NAME);
+ return result;
+ }
+ protected String getXmlName(String attributeName) {
+ if (Field.NAME.equals(attributeName)) {
+ return "name";
+ } else {
+ return super.getXmlName(attributeName);
+ }
+ }
+ public Wrapper deserializeChildNode(Wrapper parent, Node node) {
+ Wrapper result = null;
+ if (node instanceof Element && "string".equals(node.getNodeName()))
{
+ String value = ((Element)node).getAttribute("value");
+ if (value != null && !("".equals(value))) {
+ parent.setPropertyValue(Field.VALUE, value);
+ }
+ } else {
+ result = super.deserializeChildNode(parent, node);
+ }
+ return result;
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/FieldDeserializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/FieldSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/FieldSerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/FieldSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,33 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.Field;
+
+class FieldSerializer extends AbstractElementSerializer {
+ protected List<String> getAttributesToSave() {
+ ArrayList<String> result = new ArrayList<String>();
+ result.add("name");
+ return result;
+ }
+ protected String getPropertyName(String attributeName) {
+ if ("name".equals(attributeName)) {
+ return Field.NAME;
+ }
+ return super.getPropertyName(attributeName);
+ }
+ public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
+ String value = (String)wrapper.getPropertyValue(Field.VALUE);
+ if (value != null && !("".equals(value))) {
+ buffer.append("\n");
+ appendPadding(buffer, level + 1);
+ buffer.append("<string value=\"" + value +
"\"/>");
+ }
+ super.appendBody(buffer, wrapper, level);
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/FieldSerializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/HumanTaskDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/HumanTaskDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/HumanTaskDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,16 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.w3c.dom.Element;
+
+class HumanTaskDeserializer extends NodeDeserializer {
+ AssignmentDeserializer assignmentAttributeHandler = new AssignmentDeserializer();
+ public void deserializeAttributes(Wrapper wrapper, Element element) {
+ super.deserializeAttributes(wrapper, element);
+ assignmentAttributeHandler.deserializeAttributes(wrapper, element);
+ }
+
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/HumanTaskDeserializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/HumanTaskSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/HumanTaskSerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/HumanTaskSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,45 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.List;
+
+import org.jboss.tools.flow.common.model.Element;
+import org.jboss.tools.flow.common.wrapper.NodeWrapper;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.Assignment;
+import org.jboss.tools.flow.jpdl4.model.HumanTask;
+
+class HumanTaskSerializer extends ProcessNodeSerializer {
+ protected List<String> getAttributesToSave() {
+ List<String> result = super.getAttributesToSave();
+ result.add(Assignment.ASSIGNEE);
+ result.add(Assignment.CANDIDATE_GROUPS);
+ result.add(Assignment.SWIMLANE);
+ return result;
+ }
+ protected void appendAttributeToSave(String attributeName, StringBuffer buffer, Wrapper
wrapper) {
+ if (!(wrapper instanceof NodeWrapper)) return;
+ Element element = wrapper.getElement();
+ if (!(element instanceof HumanTask)) return;
+ if (HumanTask.ASSIGNEE.equals(attributeName)) {
+ appendExpression(HumanTask.ASSIGNEE, buffer, wrapper);
+ } else if (HumanTask.CANDIDATE_GROUPS.equals(attributeName)) {
+ appendExpression(HumanTask.CANDIDATE_GROUPS, buffer, wrapper);
+ } else if (HumanTask.SWIMLANE.equals(attributeName)) {
+ appendExpression(HumanTask.SWIMLANE, buffer, wrapper);
+ } else {
+ super.appendAttributeToSave(attributeName, buffer, wrapper);
+ }
+ }
+ protected void appendExpression(String type, StringBuffer buffer, Wrapper wrapper) {
+ Object assignmentType = wrapper.getPropertyValue(HumanTask.ASSIGNMENT_TYPE);
+ if (!(assignmentType instanceof Integer)) return;
+ if (type.equals(HumanTask.ASSIGNMENT_TYPES[(Integer)assignmentType])) {
+ Object value = wrapper.getPropertyValue(HumanTask.ASSIGNMENT_EXPRESSION);
+ if (value == null || "".equals(value)) return;
+ buffer.append(" " + type + "=\"" + value +
"\"");
+ }
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/HumanTaskSerializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/JavaTaskDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/JavaTaskDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/JavaTaskDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,30 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.Argument;
+import org.jboss.tools.flow.jpdl4.model.Field;
+import org.jboss.tools.flow.jpdl4.model.JavaTask;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+class JavaTaskDeserializer extends NodeDeserializer {
+ public void deserializeAttributes(Wrapper wrapper, Element element) {
+ super.deserializeAttributes(wrapper, element);
+ wrapper.setPropertyValue(JavaTask.CLASS, element.getAttribute("class"));
+ wrapper.setPropertyValue(JavaTask.METHOD, element.getAttribute("method"));
+ wrapper.setPropertyValue(JavaTask.VAR, element.getAttribute("var"));
+ }
+ public Wrapper deserializeChildNode(Wrapper parent, Node node) {
+ Wrapper result = super.deserializeChildNode(parent, node);
+ if (result == null) return result;
+ if (result.getElement() instanceof Argument) {
+ parent.addChild(JavaTask.ARGS, result);
+ } else if (result.getElement() instanceof Field) {
+ parent.addChild(JavaTask.FIELDS, result);
+ }
+ return result;
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/JavaTaskDeserializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/JavaTaskSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/JavaTaskSerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/JavaTaskSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,49 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.List;
+
+import org.jboss.tools.flow.common.model.Element;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.JavaTask;
+
+class JavaTaskSerializer extends ProcessNodeSerializer {
+ protected List<String> getAttributesToSave() {
+ List<String> result = super.getAttributesToSave();
+ result.add("class");
+ result.add("method");
+ result.add("var");
+ return result;
+ }
+ protected String getPropertyName(String attributeName) {
+ if ("class".equals(attributeName)) {
+ return JavaTask.CLASS;
+ } else if ("method".equals(attributeName)) {
+ return JavaTask.METHOD;
+ } else if ("var".equals(attributeName)) {
+ return JavaTask.VAR;
+ }
+ return super.getPropertyName(attributeName);
+ }
+ public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
+ List<Element> fields = wrapper.getChildren(JavaTask.FIELDS);
+ if (fields != null) {
+ for (Element field : fields) {
+ if (field instanceof Wrapper) {
+ JpdlSerializer.serialize((Wrapper)field, buffer, level+1);
+ }
+ }
+ }
+ List<Element> arguments = wrapper.getChildren(JavaTask.ARGS);
+ if (arguments != null) {
+ for (Element argument : arguments) {
+ if (argument instanceof Wrapper) {
+ JpdlSerializer.serialize((Wrapper)argument, buffer, level+1);
+ }
+ }
+ }
+ super.appendBody(buffer, wrapper, level);
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/JavaTaskSerializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/JpdlDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/JpdlDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/JpdlDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,26 @@
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.io.InputStream;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.Logger;
+import org.w3c.dom.Document;
+
+public class JpdlDeserializer {
+
+ private static DocumentBuilderFactory documentBuilderFactory =
DocumentBuilderFactory.newInstance();
+
+ public static Wrapper deserialize(InputStream is) {
+ Wrapper result = null;
+ try {
+ Document document = documentBuilderFactory.newDocumentBuilder().parse(is);
+ result = Registry.createWrapper(document.getDocumentElement());
+ } catch (Exception e) {
+ Logger.logError("An error occurred while creating the diagram", e);
+ }
+ return result;
+ }
+
+}
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/JpdlSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/JpdlSerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/JpdlSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,27 @@
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+
+public class JpdlSerializer {
+
+ public static void serialize(Wrapper wrapper, OutputStream os) throws IOException {
+ StringBuffer buffer = new StringBuffer();
+ serialize(wrapper, buffer, 0);
+ Writer writer = new OutputStreamWriter(os);
+ writer.write(buffer.toString());
+ writer.close();
+ }
+
+ public static void serialize(Wrapper wrapper, StringBuffer buffer, int level) {
+ ElementSerializer elementSerializer =
Registry.getElementSerializer(wrapper.getElement());
+ if (elementSerializer != null) {
+ elementSerializer.appendToBuffer(buffer, wrapper, level);
+ }
+ }
+
+}
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/NodeDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/NodeDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/NodeDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,74 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.ArrayList;
+import java.util.StringTokenizer;
+
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.jboss.tools.flow.common.wrapper.ConnectionWrapper;
+import org.jboss.tools.flow.common.wrapper.NodeWrapper;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.Logger;
+import org.jboss.tools.flow.jpdl4.model.EventListenerContainer;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+class NodeDeserializer extends AbstractElementDeserializer {
+
+ public void deserializeAttributes(Wrapper wrapper, Element element) {
+ super.deserializeAttributes(wrapper, element);
+ if (!(wrapper instanceof NodeWrapper)) return;
+ NodeWrapper nodeWrapper = (NodeWrapper)wrapper;
+ addGraphics(nodeWrapper, element);
+ nodeWrapper.setName(element.getAttribute("name"));
+ }
+
+ void addGraphics(NodeWrapper wrapper, Element element) {
+ String graphics = element.getAttribute("g");
+ Rectangle constraint = new Rectangle(0, 0, 80, 40);
+ if (graphics != null) {
+ StringTokenizer tokenizer = new StringTokenizer(graphics, ",");
+ if (tokenizer.countTokens() != 4) {
+ Logger.logInfo(
+ "Wrong info in attribute 'g' for element '" +
+ element.getNodeName() + "'" +
+ " with name '" +
+ element.getAttribute("name") +
+ "'. Using defaults." );
+ } else {
+ constraint.x = convertStringToInt(tokenizer.nextToken());
+ constraint.y = convertStringToInt(tokenizer.nextToken());
+ constraint.width = convertStringToInt(tokenizer.nextToken());
+ constraint.height = convertStringToInt(tokenizer.nextToken());
+ }
+ }
+ wrapper.setConstraint(constraint);
+ }
+
+ @SuppressWarnings("unchecked")
+ public Wrapper deserializeChildNode(Wrapper parent, Node node) {
+ Wrapper result = null;
+ if (!(parent instanceof NodeWrapper)) return result;
+ NodeWrapper nodeWrapper = (NodeWrapper)parent;
+ ArrayList<ConnectionWrapper> flows =
(ArrayList<ConnectionWrapper>)nodeWrapper.getElement().getMetaData("flows");
+ if (flows == null) {
+ flows = new ArrayList<ConnectionWrapper>();
+ nodeWrapper.getElement().setMetaData("flows", flows);
+ }
+ if (node instanceof Element) {
+ result = Registry.createWrapper((Element)node);
+ if (result != null) {
+ if (result instanceof ConnectionWrapper) {
+ flows.add((ConnectionWrapper)result);
+ } else if (result.getElement() instanceof EventListenerContainer) {
+ parent.addChild("eventListener", result);
+ }
+ }
+ }
+ return result;
+ }
+
+
+}
\ No newline at end of file
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ParameterDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ParameterDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ParameterDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,32 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.List;
+
+import org.jboss.tools.flow.jpdl4.model.Parameter;
+
+class ParameterDeserializer extends AbstractElementDeserializer {
+ protected List<String> getAttributesToRead() {
+ List<String> result = super.getAttributesToRead();
+ result.add(Parameter.VAR);
+ result.add(Parameter.SUBVAR);
+ result.add(Parameter.EXPR);
+ result.add(Parameter.LANG);
+ return result;
+ }
+ protected String getXmlName(String attributeName) {
+ if (Parameter.VAR.equals(attributeName)) {
+ return "var";
+ } else if (Parameter.SUBVAR.equals(attributeName)) {
+ return "subvar";
+ } else if (Parameter.EXPR.equals(attributeName)) {
+ return "expr";
+ } else if (Parameter.LANG.equals(attributeName)) {
+ return "lang";
+ } else {
+ return super.getXmlName(attributeName);
+ }
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ParameterDeserializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ParameterSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ParameterSerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ParameterSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,32 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.tools.flow.jpdl4.model.Parameter;
+
+class ParameterSerializer extends AbstractElementSerializer {
+ protected List<String> getAttributesToSave() {
+ ArrayList<String> result = new ArrayList<String>();
+ result.add("var");
+ result.add("subvar");
+ result.add("expr");
+ result.add("lang");
+ return result;
+ }
+ protected String getPropertyName(String attributeName) {
+ if ("var".equals(attributeName)) {
+ return Parameter.VAR;
+ } else if ("subvar".equals(attributeName)) {
+ return Parameter.SUBVAR;
+ } else if ("expr".equals(attributeName)) {
+ return Parameter.EXPR;
+ } else if ("lang".equals(attributeName)) {
+ return Parameter.LANG;
+ }
+ return super.getPropertyName(attributeName);
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ParameterSerializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/PostProcessor.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/PostProcessor.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/PostProcessor.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,10 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+
+interface PostProcessor {
+ void postProcess(Wrapper wrapper);
+}
\ No newline at end of file
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,48 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import org.jboss.tools.flow.common.wrapper.FlowWrapper;
+import org.jboss.tools.flow.common.wrapper.NodeWrapper;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.EventListenerContainer;
+import org.jboss.tools.flow.jpdl4.model.Process;
+import org.jboss.tools.flow.jpdl4.model.Swimlane;
+import org.jboss.tools.flow.jpdl4.model.Timer;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+class ProcessDeserializer extends AbstractElementDeserializer {
+
+ public void deserializeAttributes(Wrapper wrapper, Element element) {
+ super.deserializeAttributes(wrapper, element);
+ if (!(wrapper.getElement() instanceof Process)) return;
+ Process process = (Process)wrapper.getElement();
+ process.setName(element.getAttribute("name"));
+ process.setKey(element.getAttribute("key"));
+ process.setVersion(element.getAttribute("version"));
+ process.setDescription(element.getAttribute("description"));
+ }
+
+ public Wrapper deserializeChildNode(Wrapper parent, Node node) {
+ Wrapper result = null;
+ if (!(parent instanceof FlowWrapper)) return result;
+ FlowWrapper flowWrapper = (FlowWrapper)parent;
+ if (node instanceof Element) {
+ result = Registry.createWrapper((Element)node);
+ if (result == null) return null;
+ if (result instanceof NodeWrapper) {
+ flowWrapper.addElement((NodeWrapper)result);
+ } else if (result.getElement() instanceof Swimlane) {
+ flowWrapper.addChild("swimlane", result);
+ } else if (result.getElement() instanceof Timer) {
+ flowWrapper.addChild("timer", result);
+ } else if (result.getElement() instanceof EventListenerContainer) {
+ flowWrapper.addChild("eventListener", result);
+ }
+ }
+ return result;
+ }
+
+}
\ No newline at end of file
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessNodeSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessNodeSerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessNodeSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,67 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.draw2d.geometry.Rectangle;
+import org.jboss.tools.flow.common.model.Element;
+import org.jboss.tools.flow.common.wrapper.ConnectionWrapper;
+import org.jboss.tools.flow.common.wrapper.NodeWrapper;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.ProcessNode;
+
+class ProcessNodeSerializer extends AbstractElementSerializer {
+ protected List<String> getAttributesToSave() {
+ ArrayList<String> result = new ArrayList<String>();
+ result.add("name");
+ result.add("g");
+ return result;
+ }
+ protected void appendAttributeToSave(String attributeName, StringBuffer buffer, Wrapper
wrapper) {
+ if (!(wrapper instanceof NodeWrapper)) return;
+ Element element = wrapper.getElement();
+ if (!(element instanceof ProcessNode)) return;
+ if ("name".equals(attributeName)) {
+ appendName(buffer, (ProcessNode)element);
+ } else if ("g".equals(attributeName)) {
+ appendGraphics(buffer, (NodeWrapper)wrapper);
+ } else {
+ super.appendAttributeToSave(attributeName, buffer, wrapper);
+ }
+ }
+ protected void appendName(StringBuffer buffer, ProcessNode processNode) {
+ String value = processNode.getName();
+ if (value == null || "".equals(value)) return;
+ buffer.append(" name=\"" + value + "\"");
+ }
+ protected void appendGraphics(StringBuffer buffer, NodeWrapper wrapper) {
+ Rectangle constraint = wrapper.getConstraint();
+ buffer.append(" g=\"");
+ buffer.append(constraint.x);
+ buffer.append(",");
+ buffer.append(constraint.y);
+ buffer.append(",");
+ buffer.append(constraint.width);
+ buffer.append(",");
+ buffer.append(constraint.height);
+ buffer.append("\"");
+ }
+ public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
+ NodeWrapper nodeWrapper = (NodeWrapper)wrapper;
+ List<Element> eventListenerContainers =
nodeWrapper.getChildren("eventListener");
+ if (eventListenerContainers != null) {
+ for (Element eventListenerContainer : eventListenerContainers) {
+ if (eventListenerContainer instanceof Wrapper) {
+ JpdlSerializer.serialize((Wrapper)eventListenerContainer, buffer, level+1);
+ }
+ }
+ }
+ List<ConnectionWrapper> children = nodeWrapper.getOutgoingConnections();
+ for (ConnectionWrapper connectionWrapper : children) {
+ JpdlSerializer.serialize(connectionWrapper, buffer, level+1);
+ }
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessNodeSerializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessPostProcessor.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessPostProcessor.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessPostProcessor.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,48 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.ArrayList;
+
+import org.jboss.tools.flow.common.wrapper.ConnectionWrapper;
+import org.jboss.tools.flow.common.wrapper.FlowWrapper;
+import org.jboss.tools.flow.common.wrapper.NodeWrapper;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.Logger;
+
+class ProcessPostProcessor implements PostProcessor {
+
+ @SuppressWarnings("unchecked")
+ public void postProcess(Wrapper wrapper) {
+ if (!(wrapper instanceof FlowWrapper)) return;
+ FlowWrapper flowWrapper = (FlowWrapper)wrapper;
+ for (NodeWrapper source : flowWrapper.getNodeWrappers()) {
+ ArrayList<ConnectionWrapper> flows =
(ArrayList<ConnectionWrapper>)source.getElement().getMetaData("flows");
+ if (flows == null) continue;
+ for (ConnectionWrapper connectionWrapper : flows) {
+ String to = (String)connectionWrapper.getElement().getMetaData("to");
+ if (to == null) {
+ Logger.logInfo("Ignoring sequenceflow without target");
+ continue;
+ }
+ NodeWrapper target = getNamedNode(to, flowWrapper);
+ if (target == null) {
+ Logger.logInfo("Ignoring unknown target " + to + " while resolving
sequenceflow target.");
+ continue;
+ }
+ connectionWrapper.connect(source, target);
+ }
+ }
+ }
+
+ NodeWrapper getNamedNode(String name, FlowWrapper flowWrapper) {
+ if (name == null) return null;
+ for (NodeWrapper nodeWrapper : flowWrapper.getNodeWrappers()) {
+ if (name.equals(nodeWrapper.getName())) return nodeWrapper;
+ }
+ return null;
+ }
+
+
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessPostProcessor.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessSerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,110 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.tools.flow.common.model.Element;
+import org.jboss.tools.flow.common.wrapper.ContainerWrapper;
+import org.jboss.tools.flow.common.wrapper.FlowWrapper;
+import org.jboss.tools.flow.common.wrapper.NodeWrapper;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.Process;
+
+class ProcessSerializer extends AbstractElementSerializer {
+ public void appendOpening(StringBuffer buffer, Wrapper wrapper, int level) {
+ buffer.append("<?xml version=\"1.0\"
encoding=\"UTF-8\"?>\n\n");
+ buffer.append("<" + Registry.getXmlNodeName(wrapper.getElement()));
+ appendAttributes(buffer, wrapper, level);
+ }
+ protected List<String> getAttributesToSave() {
+ ArrayList<String> result = new ArrayList<String>();
+ result.add("name");
+ result.add("initial");
+ result.add("key");
+ result.add("version");
+ result.add("description");
+ return result;
+ }
+ protected void appendAttributeToSave(String attributeName, StringBuffer buffer, Wrapper
wrapper) {
+ if (!(wrapper instanceof FlowWrapper)) return;
+ Element element = wrapper.getElement();
+ if (element == null || !(element instanceof Process)) return;
+ if ("name".equals(attributeName)) {
+ appendName(buffer, (Process)element);
+ } else if ("key".equals(attributeName)) {
+ appendKey(buffer, (Process)element);
+ } else if ("version".equals(attributeName)) {
+ appendVersion(buffer, (Process)element);
+ } else if ("description".equals(attributeName)) {
+ appendDescription(buffer, (Process)element);
+ } else if ("initial".equals(attributeName)) {
+ appendInitial(buffer, (Process)element);
+ } else {
+ super.appendAttributeToSave(attributeName, buffer, wrapper);
+ }
+ }
+ protected void appendName(StringBuffer buffer, Process process) {
+ String value = process.getName();
+ if (value == null || "".equals(value)) return;
+ buffer.append(" name=\"" + value + "\"");
+ }
+ protected void appendInitial(StringBuffer buffer, Process process) {
+ if (process.getInitial() == null) return;
+ String value = process.getInitial().getName();
+ if (value == null || "".equals(value)) return;
+ buffer.append(" initial=\"" + value + "\"");
+ }
+ protected void appendKey(StringBuffer buffer, Process process) {
+ if (process.getKey() == null) return;
+ String value = process.getKey();
+ if (value == null || "".equals(value)) return;
+ buffer.append(" key=\"" + value + "\"");
+ }
+ protected void appendVersion(StringBuffer buffer, Process process) {
+ if (process.getVersion() == null) return;
+ String value = process.getVersion();
+ if (value == null || "".equals(value)) return;
+ buffer.append(" version=\"" + value + "\"");
+ }
+ protected void appendDescription(StringBuffer buffer, Process process) {
+ if (process.getDescription() == null) return;
+ String value = process.getDescription();
+ if (value == null || "".equals(value)) return;
+ buffer.append(" description=\"" + value + "\"");
+ }
+ public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
+ FlowWrapper flowWrapper = (FlowWrapper)wrapper;
+ List<Element> swimlanes = flowWrapper.getChildren("swimlane");
+ if (swimlanes != null) {
+ for (Element swimlane : swimlanes) {
+ if (swimlane instanceof Wrapper) {
+ JpdlSerializer.serialize((Wrapper)swimlane, buffer, level+1);
+ }
+ }
+ }
+ List<Element> timers = flowWrapper.getChildren("timer");
+ if (timers != null) {
+ for (Element timer : timers) {
+ if (timer instanceof Wrapper) {
+ JpdlSerializer.serialize((Wrapper)timer, buffer, level+1);
+ }
+ }
+ }
+ List<Element> eventListenerContainers =
flowWrapper.getChildren("eventListener");
+ if (eventListenerContainers != null) {
+ for (Element eventListenerContainer : eventListenerContainers) {
+ if (eventListenerContainer instanceof Wrapper) {
+ JpdlSerializer.serialize((Wrapper)eventListenerContainer, buffer, level+1);
+ }
+ }
+ }
+ ContainerWrapper containerWrapper = (ContainerWrapper)wrapper;
+ List<NodeWrapper> children = containerWrapper.getNodeWrappers();
+ for (NodeWrapper nodeWrapper : children) {
+ JpdlSerializer.serialize(nodeWrapper, buffer, level+1);
+ }
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ProcessSerializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/Registry.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/Registry.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/Registry.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,241 @@
+package org.jboss.tools.flow.jpdl4.io;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.jboss.tools.flow.common.registry.ElementRegistry;
+import org.jboss.tools.flow.common.wrapper.ConnectionWrapper;
+import org.jboss.tools.flow.common.wrapper.DefaultWrapper;
+import org.jboss.tools.flow.common.wrapper.FlowWrapper;
+import org.jboss.tools.flow.common.wrapper.NodeWrapper;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.Argument;
+import org.jboss.tools.flow.jpdl4.model.CancelEndEvent;
+import org.jboss.tools.flow.jpdl4.model.CustomTask;
+import org.jboss.tools.flow.jpdl4.model.ErrorEndEvent;
+import org.jboss.tools.flow.jpdl4.model.EventListener;
+import org.jboss.tools.flow.jpdl4.model.EventListenerContainer;
+import org.jboss.tools.flow.jpdl4.model.ExclusiveGateway;
+import org.jboss.tools.flow.jpdl4.model.Field;
+import org.jboss.tools.flow.jpdl4.model.ForkParallelGateway;
+import org.jboss.tools.flow.jpdl4.model.HqlTask;
+import org.jboss.tools.flow.jpdl4.model.HumanTask;
+import org.jboss.tools.flow.jpdl4.model.JavaTask;
+import org.jboss.tools.flow.jpdl4.model.JoinParallelGateway;
+import org.jboss.tools.flow.jpdl4.model.MailTask;
+import org.jboss.tools.flow.jpdl4.model.Parameter;
+import org.jboss.tools.flow.jpdl4.model.Process;
+import org.jboss.tools.flow.jpdl4.model.ScriptTask;
+import org.jboss.tools.flow.jpdl4.model.SequenceFlow;
+import org.jboss.tools.flow.jpdl4.model.ServiceTask;
+import org.jboss.tools.flow.jpdl4.model.SqlTask;
+import org.jboss.tools.flow.jpdl4.model.StartEvent;
+import org.jboss.tools.flow.jpdl4.model.SubprocessTask;
+import org.jboss.tools.flow.jpdl4.model.SuperState;
+import org.jboss.tools.flow.jpdl4.model.Swimlane;
+import org.jboss.tools.flow.jpdl4.model.TerminateEndEvent;
+import org.jboss.tools.flow.jpdl4.model.Timer;
+import org.jboss.tools.flow.jpdl4.model.WaitTask;
+import org.w3c.dom.Element;
+
+public class Registry {
+
+ public static String getElementId(String nodeName) {
+ if ("process".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.process";
+ else if ("start".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.startEvent";
+ else if ("end".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.terminateEndEvent";
+ else if ("end-error".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.errorEndEvent";
+ else if ("end-cancel".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.cancelEndEvent";
+ else if ("state".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.waitTask";
+ else if ("hql".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.hqlTask";
+ else if ("sql".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.sqlTask";
+ else if ("java".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.javaTask";
+ else if ("script".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.scriptTask";
+ else if ("esb".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.serviceTask";
+ else if ("mail".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.mailTask";
+ else if ("task".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.humanTask";
+ else if ("custom".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.customTask";
+ else if ("sub-process".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.subprocessTask";
+ else if ("decision".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.exclusiveGateway";
+ else if ("join".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.parallelJoinGateway";
+ else if ("fork".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.parallelForkGateway";
+ else if ("transition".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.sequenceFlow";
+ else if ("swimlane".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.swimlane";
+ else if ("timer".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.timer";
+ else if ("on".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.eventListenerContainer";
+ else if ("event-listener".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.eventListener";
+ else if ("parameter-in".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.inputParameter";
+ else if ("parameter-out".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.outputParameter";
+ else if ("field".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.field";
+ else if ("arg".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.argument";
+ else return null;
+ }
+
+ public static AbstractElementDeserializer getElementDeserializer(Wrapper wrapper) {
+ if (wrapper instanceof FlowWrapper) {
+ return new ProcessDeserializer();
+ } else if (wrapper instanceof NodeWrapper) {
+ return getNodeDeserializer(wrapper);
+ } else if (wrapper instanceof ConnectionWrapper) {
+ return new SequenceFlowDeserializer();
+ } else if (wrapper instanceof DefaultWrapper) {
+ return getDefaultDeserializer(wrapper);
+ }
+ return null;
+ }
+
+ public static PostProcessor getPostProcessor(Wrapper wrapper) {
+ if (wrapper instanceof FlowWrapper) {
+ return new ProcessPostProcessor();
+ }
+ return null;
+ }
+
+
+ private static AbstractElementDeserializer getDefaultDeserializer(Wrapper wrapper) {
+ Object element = wrapper.getElement();
+ if (element instanceof Swimlane) {
+ return new SwimlaneDeserializer();
+ } else if (element instanceof Timer) {
+ return new TimerDeserializer();
+ } else if (element instanceof EventListenerContainer) {
+ return new EventListenerContainerDeserializer();
+ } else if (element instanceof EventListener) {
+ return new EventListenerDeserializer();
+ } else if (element instanceof Parameter) {
+ return new ParameterDeserializer();
+ } else if (element instanceof Argument) {
+ return new ArgumentDeserializer();
+ } else if (element instanceof Field) {
+ return new FieldDeserializer();
+ }
+ return null;
+ }
+
+ private static AbstractElementDeserializer getNodeDeserializer(Wrapper wrapper) {
+ Object element = wrapper.getElement();
+ if (element instanceof HumanTask) {
+ return new HumanTaskDeserializer();
+ } else if (element instanceof SubprocessTask) {
+ return new SubprocessTaskDeserializer();
+ } else if (element instanceof ExclusiveGateway) {
+ return new ExclusiveGatewayDeserializer();
+ } else if (element instanceof TerminateEndEvent) {
+ return new TerminateEndEventDeserializer();
+ } else if (element instanceof JavaTask) {
+ return new JavaTaskDeserializer();
+ } else if (element instanceof ScriptTask) {
+ return new ScriptTaskDeserializer();
+ } else {
+ return new NodeDeserializer();
+ }
+ }
+
+ protected static Wrapper createWrapper(Element element) {
+ String elementId = Registry.getElementId(element.getNodeName());
+ if (elementId == null) return null;
+ Wrapper result = ElementRegistry.createWrapper(elementId);
+ if (result == null) return null;
+ AbstractElementDeserializer elementDeserializer =
Registry.getElementDeserializer(result);
+ if (elementDeserializer != null) {
+ elementDeserializer.deserializeAttributes(result, element);
+ elementDeserializer.deserializeChildNodes(result, element);
+ }
+ PostProcessor postProcessor = Registry.getPostProcessor(result);
+ if (postProcessor != null) {
+ postProcessor.postProcess(result);
+ }
+ return result;
+ }
+
+ public static ElementSerializer
getElementSerializer(org.jboss.tools.flow.common.model.Element element) {
+ if (element instanceof SequenceFlow) {
+ return new SequenceFlowSerializer();
+ } else if (element instanceof TerminateEndEvent) {
+ return new TerminateEndEventSerializer();
+ } else if (element instanceof ErrorEndEvent) {
+ return new ProcessNodeSerializer();
+ } else if (element instanceof CancelEndEvent) {
+ return new ProcessNodeSerializer();
+ } else if (element instanceof StartEvent) {
+ return new ProcessNodeSerializer();
+ } else if (element instanceof SuperState) {
+ return new ProcessNodeSerializer();
+ } else if (element instanceof WaitTask) {
+ return new ProcessNodeSerializer();
+ } else if (element instanceof HqlTask) {
+ return new ProcessNodeSerializer();
+ } else if (element instanceof SqlTask) {
+ return new ProcessNodeSerializer();
+ } else if (element instanceof JavaTask) {
+ return new JavaTaskSerializer();
+ } else if (element instanceof ScriptTask) {
+ return new ScriptTaskSerializer();
+ } else if (element instanceof MailTask) {
+ return new ProcessNodeSerializer();
+ } else if (element instanceof ServiceTask) {
+ return new ProcessNodeSerializer();
+ } else if (element instanceof HumanTask) {
+ return new HumanTaskSerializer();
+ } else if (element instanceof SubprocessTask) {
+ return new SubprocessTaskSerializer();
+ } else if (element instanceof CustomTask) {
+ return new ProcessNodeSerializer();
+ } else if (element instanceof ExclusiveGateway) {
+ return new ExclusiveGatewaySerializer();
+ } else if (element instanceof ForkParallelGateway) {
+ return new ProcessNodeSerializer();
+ } else if (element instanceof JoinParallelGateway) {
+ return new ProcessNodeSerializer();
+ } else if (element instanceof Process) {
+ return new ProcessSerializer();
+ } else if (element instanceof Swimlane) {
+ return new SwimlaneSerializer();
+ } else if (element instanceof Timer) {
+ return new TimerSerializer();
+ } else if (element instanceof EventListenerContainer) {
+ return new EventListenerContainerSerializer();
+ } else if (element instanceof EventListener) {
+ return new EventListenerSerializer();
+ } else if (element instanceof Parameter) {
+ return new ParameterSerializer();
+ } else if (element instanceof Argument) {
+ return new ArgumentSerializer();
+ } else if (element instanceof Field) {
+ return new FieldSerializer();
+ }
+ return null;
+ }
+
+ public static String getXmlNodeName(org.jboss.tools.flow.common.model.Element
element) {
+ IConfigurationElement configuration =
(IConfigurationElement)element.getMetaData("configurationElement");
+ String elementId = configuration.getAttribute("id");
+ if ("org.jboss.tools.flow.jpdl4.process".equals(elementId)) return
"process";
+ else if ("org.jboss.tools.flow.jpdl4.startEvent".equals(elementId)) return
"start";
+ else if ("org.jboss.tools.flow.jpdl4.terminateEndEvent".equals(elementId))
return "end";
+ else if ("org.jboss.tools.flow.jpdl4.errorEndEvent".equals(elementId)) return
"end-error";
+ else if ("org.jboss.tools.flow.jpdl4.cancelEndEvent".equals(elementId))
return "end-cancel";
+ else if ("org.jboss.tools.flow.jpdl4.waitTask".equals(elementId)) return
"state";
+ else if ("org.jboss.tools.flow.jpdl4.hqlTask".equals(elementId)) return
"hql";
+ else if ("org.jboss.tools.flow.jpdl4.sqlTask".equals(elementId)) return
"sql";
+ else if ("org.jboss.tools.flow.jpdl4.javaTask".equals(elementId)) return
"java";
+ else if ("org.jboss.tools.flow.jpdl4.scriptTask".equals(elementId)) return
"script";
+ else if ("org.jboss.tools.flow.jpdl4.mailTask".equals(elementId)) return
"mail";
+ else if ("org.jboss.tools.flow.jpdl4.serviceTask".equals(elementId)) return
"esb";
+ else if ("org.jboss.tools.flow.jpdl4.humanTask".equals(elementId)) return
"task";
+ else if ("org.jboss.tools.flow.jpdl4.subprocessTask".equals(elementId))
return "sub-process";
+ else if ("org.jboss.tools.flow.jpdl4.customTask".equals(elementId)) return
"custom";
+ else if ("org.jboss.tools.flow.jpdl4.exclusiveGateway".equals(elementId))
return "decision";
+ else if ("org.jboss.tools.flow.jpdl4.parallelJoinGateway".equals(elementId))
return "join";
+ else if ("org.jboss.tools.flow.jpdl4.parallelForkGateway".equals(elementId))
return "fork";
+ else if ("org.jboss.tools.flow.jpdl4.sequenceFlow".equals(elementId)) return
"transition";
+ else if ("org.jboss.tools.flow.jpdl4.swimlane".equals(elementId)) return
"swimlane";
+ else if ("org.jboss.tools.flow.jpdl4.timer".equals(elementId)) return
"timer";
+ else if
("org.jboss.tools.flow.jpdl4.eventListenerContainer".equals(elementId)) return
"on";
+ else if ("org.jboss.tools.flow.jpdl4.eventListener".equals(elementId)) return
"event-listener";
+ else if ("org.jboss.tools.flow.jpdl4.inputParameter".equals(elementId))
return "parameter-in";
+ else if ("org.jboss.tools.flow.jpdl4.outputParameter".equals(elementId))
return "parameter-out";
+ else if ("org.jboss.tools.flow.jpdl4.argument".equals(elementId)) return
"arg";
+ else if ("org.jboss.tools.flow.jpdl4.field".equals(elementId)) return
"field";
+ else return null;
+ }
+
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/Registry.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ScriptTaskDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ScriptTaskDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ScriptTaskDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,30 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.ScriptTask;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+class ScriptTaskDeserializer extends NodeDeserializer {
+ public void deserializeAttributes(Wrapper wrapper, Element element) {
+ super.deserializeAttributes(wrapper, element);
+ wrapper.setPropertyValue(ScriptTask.EXPR, element.getAttribute("expr"));
+ wrapper.setPropertyValue(ScriptTask.LANG, element.getAttribute("lang"));
+ wrapper.setPropertyValue(ScriptTask.VAR, element.getAttribute("var"));
+ }
+ public Wrapper deserializeChildNode(Wrapper parent, Node node) {
+ Wrapper result = null;
+ if (node instanceof Element && "text".equals(node.getNodeName())) {
+ String text = ((Element)node).getTextContent();
+ if (text != null && !("".equals(text))) {
+ parent.setPropertyValue(ScriptTask.TEXT, text);
+ }
+ } else {
+ result = super.deserializeChildNode(parent, node);
+ }
+ return result;
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ScriptTaskDeserializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ScriptTaskSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ScriptTaskSerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ScriptTaskSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,38 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.List;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.ScriptTask;
+
+class ScriptTaskSerializer extends ProcessNodeSerializer {
+ protected List<String> getAttributesToSave() {
+ List<String> result = super.getAttributesToSave();
+ result.add("expr");
+ result.add("lang");
+ result.add("var");
+ return result;
+ }
+ protected String getPropertyName(String attributeName) {
+ if ("expr".equals(attributeName)) {
+ return ScriptTask.EXPR;
+ } else if ("lang".equals(attributeName)) {
+ return ScriptTask.LANG;
+ } else if ("var".equals(attributeName)) {
+ return ScriptTask.VAR;
+ }
+ return super.getPropertyName(attributeName);
+ }
+ public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
+ String text = (String)wrapper.getPropertyValue(ScriptTask.TEXT);
+ if (text != null && !("".equals(text))) {
+ buffer.append("\n");
+ appendPadding(buffer, level + 1);
+ buffer.append("<text>" + text + "</text>");
+ }
+ super.appendBody(buffer, wrapper, level);
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ScriptTaskSerializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SequenceFlowDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SequenceFlowDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SequenceFlowDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,109 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.StringTokenizer;
+
+import org.eclipse.draw2d.geometry.Point;
+import org.jboss.tools.flow.common.properties.IPropertyId;
+import org.jboss.tools.flow.common.wrapper.ConnectionWrapper;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.Logger;
+import org.jboss.tools.flow.jpdl4.model.EventListener;
+import org.jboss.tools.flow.jpdl4.model.SequenceFlow;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+class SequenceFlowDeserializer extends AbstractElementDeserializer {
+
+ public void deserializeAttributes(Wrapper wrapper, Element element) {
+ super.deserializeAttributes(wrapper, element);
+ if (!(wrapper instanceof ConnectionWrapper)) return;
+ ConnectionWrapper connectionWrapper = (ConnectionWrapper)wrapper;
+ addGraphics(connectionWrapper, element);
+ connectionWrapper.getElement().setMetaData("to",
element.getAttribute("to"));
+ connectionWrapper.setPropertyValue(IPropertyId.NAME,
element.getAttribute("name"));
+ }
+
+ private void addGraphics(ConnectionWrapper wrapper, Element element) {
+ String graphics = element.getAttribute("g");
+ if (graphics != null && !"".equals(graphics)) {
+ int pos = graphics.lastIndexOf(':');
+ String labelInfo, bendpointInfo = null;
+ if (pos != -1) {
+ labelInfo = graphics.substring(pos + 1);
+ bendpointInfo = graphics.substring(0, pos);
+ } else {
+ labelInfo = graphics;
+ }
+ if (labelInfo != null && !"".equals(labelInfo)) {
+ addLabelInfo(wrapper, labelInfo);
+ }
+ if (bendpointInfo != null && !"".equals(bendpointInfo)) {
+ addBendpointInfo(wrapper, bendpointInfo);
+ }
+ }
+ }
+
+ private void addBendpointInfo(ConnectionWrapper wrapper, String bendpointInfo) {
+ StringTokenizer bendpoints = new StringTokenizer(bendpointInfo, ";");
+ int index = 0;
+ while (bendpoints.hasMoreTokens()) {
+ StringTokenizer bendpoint = new StringTokenizer(bendpoints.nextToken(),
",");
+ if (bendpoint.countTokens() != 2) {
+ Logger.logInfo(
+ "Wrong info in attribute 'g' while determining bendpoints.");
+ } else {
+ int x = convertStringToInt(bendpoint.nextToken());
+ int y = convertStringToInt(bendpoint.nextToken());
+ wrapper.addBendpoint(index++, new Point(x, y));
+ }
+ }
+ }
+
+ private void addLabelInfo(ConnectionWrapper wrapper, String labelInfo) {
+ StringTokenizer label = new StringTokenizer(labelInfo, ",");
+ if (label.countTokens() != 2) {
+ Logger.logInfo("Wrong info in attribute 'g' while determining label
location.");
+ } else {
+ int x = convertStringToInt(label.nextToken());
+ int y = convertStringToInt(label.nextToken());
+ wrapper.getLabel().setLocation(new Point(x, y));
+ }
+ }
+
+ public Wrapper deserializeChildNode(Wrapper parent, Node node) {
+ Wrapper result = null;
+ if (!(parent instanceof ConnectionWrapper)) return result;
+ ConnectionWrapper connectionWrapper = (ConnectionWrapper)parent;
+ if (node instanceof Element) {
+ if ("timer".equals(node.getNodeName())) {
+ String duedate = ((Element)node).getAttribute("duedate");
+ if (duedate != null && !("".equals(duedate))) {
+ parent.setPropertyValue(SequenceFlow.TIMER, duedate);
+ }
+ } else if ("outcome-value".equals(node.getNodeName())) {
+ NodeList nodeList = ((Element)node).getElementsByTagName("string");
+ if (nodeList.getLength() == 1) {
+ String value = ((Element)nodeList.item(0)).getAttribute("value");
+ if (value != null && !("".equals("value"))) {
+ parent.setPropertyValue(SequenceFlow.OUTCOME_VALUE, value);
+ }
+ }
+ } else {
+ result = Registry.createWrapper((Element)node);
+ }
+ if (result == null) return null;
+ if (result instanceof Wrapper) {
+ if (result.getElement() instanceof EventListener) {
+ connectionWrapper.addChild("listener", result);
+ }
+ }
+ }
+ return result;
+ }
+
+
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SequenceFlowDeserializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SequenceFlowSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SequenceFlowSerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SequenceFlowSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,101 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.draw2d.geometry.Point;
+import org.jboss.tools.flow.common.model.Element;
+import org.jboss.tools.flow.common.wrapper.ConnectionWrapper;
+import org.jboss.tools.flow.common.wrapper.LabelWrapper;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.SequenceFlow;
+
+class SequenceFlowSerializer extends AbstractElementSerializer {
+ protected List<String> getAttributesToSave() {
+ ArrayList<String> result = new ArrayList<String>();
+ result.add("name");
+ result.add("to");
+ result.add("g");
+ return result;
+ }
+ protected void appendAttributeToSave(String attributeName, StringBuffer buffer, Wrapper
wrapper) {
+ if (!(wrapper instanceof ConnectionWrapper)) return;
+ Element element = wrapper.getElement();
+ if (!(element instanceof SequenceFlow)) return;
+ if ("name".equals(attributeName)) {
+ appendName(buffer, (SequenceFlow)element);
+ } else if ("to".equals(attributeName)) {
+ appendTo(buffer, (SequenceFlow)element);
+ } else if ("g".equals(attributeName)) {
+ appendGraphics(buffer, (ConnectionWrapper)wrapper);
+ }
+ }
+ protected void appendName(StringBuffer buffer, SequenceFlow sequenceFlow) {
+ if (sequenceFlow.getName() == null) return;
+ String value = sequenceFlow.getName();
+ if (value == null || "".equals(sequenceFlow.getName())) return;
+ buffer.append(" name=\"" + value + "\"");
+ }
+ protected void appendTo(StringBuffer buffer, SequenceFlow sequenceFlow) {
+ if (sequenceFlow.getTo() == null) return;
+ String value = sequenceFlow.getTo().getName();
+ if (value == null || "".equals(value)) return;
+ buffer.append(" to=\"" + value + "\"");
+ }
+ protected void appendGraphics(StringBuffer buffer, ConnectionWrapper wrapper) {
+ StringBuffer bendPointBuffer = new StringBuffer();
+ List<Point> bendPoints = wrapper.getBendpoints();
+ if (bendPoints != null && bendPoints.size() > 0) {
+ for (int i = 0; i < bendPoints.size(); i++) {
+ bendPointBuffer.append(bendPoints.get(i).x);
+ bendPointBuffer.append(",");
+ bendPointBuffer.append(bendPoints.get(i).y);
+ if (i < bendPoints.size() - 1) bendPointBuffer.append(";");
+ }
+ }
+ StringBuffer labelBuffer = new StringBuffer();
+ LabelWrapper labelWrapper = wrapper.getLabel();
+ if (labelWrapper != null && !isEmpty(labelWrapper.getText())) {
+ Point location = labelWrapper.getLocation();
+ if (location != null) {
+ labelBuffer.append(location.x);
+ labelBuffer.append(',');
+ labelBuffer.append(location.y);
+ }
+ }
+ if (bendPointBuffer.length() + labelBuffer.length() == 0) return;
+ buffer.append(" g=\"");
+ buffer.append(bendPointBuffer);
+ if (bendPointBuffer.length() > 0) buffer.append(':');
+ buffer.append(labelBuffer);
+ buffer.append("\"");
+ }
+ private boolean isEmpty(String str) {
+ return str == null || "".equals(str);
+ }
+ public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
+ String timer = (String)wrapper.getPropertyValue(SequenceFlow.TIMER);
+ if (timer != null && !("".equals(timer))) {
+ buffer.append("\n");
+ appendPadding(buffer, level + 1);
+ buffer.append("<timer duedate=\"" + timer +
"\"/>");
+ }
+ String outcome = (String)wrapper.getPropertyValue(SequenceFlow.OUTCOME_VALUE);
+ if (outcome != null && !("".equals(outcome))) {
+ buffer.append("\n");
+ appendPadding(buffer, level + 1);
+ buffer.append("<outcome-value><string value=\"" + outcome +
"\"/></outcome-value>");
+ }
+ List<Element> eventListeners = wrapper.getChildren("listener");
+ if (eventListeners != null) {
+ for (Element eventListener : eventListeners) {
+ if (eventListener instanceof Wrapper) {
+ JpdlSerializer.serialize((Wrapper)eventListener, buffer, level+1);
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SequenceFlowSerializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SubprocessTaskDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SubprocessTaskDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SubprocessTaskDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,43 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.List;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.InputParameter;
+import org.jboss.tools.flow.jpdl4.model.OutputParameter;
+import org.jboss.tools.flow.jpdl4.model.SubprocessTask;
+import org.w3c.dom.Node;
+
+class SubprocessTaskDeserializer extends NodeDeserializer {
+ protected List<String> getAttributesToRead() {
+ List<String> result = super.getAttributesToRead();
+ result.add(SubprocessTask.ID);
+ result.add(SubprocessTask.KEY);
+ result.add(SubprocessTask.OUTCOME);
+ return result;
+ }
+ protected String getXmlName(String attributeName) {
+ if (SubprocessTask.ID.equals(attributeName)) {
+ return "sub-process-id";
+ } else if (SubprocessTask.KEY.equals(attributeName)) {
+ return "sub-process-key";
+ } else if (SubprocessTask.OUTCOME.equals(attributeName)) {
+ return "outcome";
+ } else {
+ return super.getXmlName(attributeName);
+ }
+ }
+ public Wrapper deserializeChildNode(Wrapper parent, Node node) {
+ Wrapper result = super.deserializeChildNode(parent, node);
+ if (result == null) return result;
+ if (result.getElement() instanceof InputParameter) {
+ parent.addChild(SubprocessTask.INPUT_PARAMETERS, result);
+ } else if (result.getElement() instanceof OutputParameter) {
+ parent.addChild(SubprocessTask.OUTPUT_PARAMETERS, result);
+ }
+ return result;
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SubprocessTaskDeserializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SubprocessTaskSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SubprocessTaskSerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SubprocessTaskSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,49 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.List;
+
+import org.jboss.tools.flow.common.model.Element;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.SubprocessTask;
+
+class SubprocessTaskSerializer extends ProcessNodeSerializer {
+ protected List<String> getAttributesToSave() {
+ List<String> result = super.getAttributesToSave();
+ result.add("sub-process-id");
+ result.add("sub-process-key");
+ result.add("outcome");
+ return result;
+ }
+ protected String getPropertyName(String attributeName) {
+ if ("sub-process-id".equals(attributeName)) {
+ return SubprocessTask.ID;
+ } else if ("sub-process-key".equals(attributeName)) {
+ return SubprocessTask.KEY;
+ } else if ("outcome".equals(attributeName)) {
+ return SubprocessTask.OUTCOME;
+ }
+ return super.getPropertyName(attributeName);
+ }
+ public void appendBody(StringBuffer buffer, Wrapper wrapper, int level) {
+ List<Element> inputParameters =
wrapper.getChildren(SubprocessTask.INPUT_PARAMETERS);
+ if (inputParameters != null) {
+ for (Element inputParameter : inputParameters) {
+ if (inputParameter instanceof Wrapper) {
+ JpdlSerializer.serialize((Wrapper)inputParameter, buffer, level+1);
+ }
+ }
+ }
+ List<Element> outputParameters =
wrapper.getChildren(SubprocessTask.OUTPUT_PARAMETERS);
+ if (outputParameters != null) {
+ for (Element outputParameter : outputParameters) {
+ if (outputParameter instanceof Wrapper) {
+ JpdlSerializer.serialize((Wrapper)outputParameter, buffer, level+1);
+ }
+ }
+ }
+ super.appendBody(buffer, wrapper, level);
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SubprocessTaskSerializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SwimlaneDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SwimlaneDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SwimlaneDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,20 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import org.jboss.tools.flow.common.properties.IPropertyId;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.w3c.dom.Element;
+
+class SwimlaneDeserializer extends AbstractElementDeserializer {
+ AssignmentDeserializer assignmentAttributeHandler = new AssignmentDeserializer();
+ public void deserializeAttributes(Wrapper wrapper, Element element) {
+ super.deserializeAttributes(wrapper, element);
+ String name = element.getAttribute("name");
+ if (!"".equals(name) && name != null) {
+ wrapper.setPropertyValue(IPropertyId.NAME, name);
+ }
+ assignmentAttributeHandler.deserializeAttributes(wrapper, element);
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SwimlaneDeserializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SwimlaneSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SwimlaneSerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SwimlaneSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,57 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.tools.flow.common.model.Element;
+import org.jboss.tools.flow.common.properties.IPropertyId;
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.Assignment;
+import org.jboss.tools.flow.jpdl4.model.HumanTask;
+import org.jboss.tools.flow.jpdl4.model.Swimlane;
+
+class SwimlaneSerializer extends AbstractElementSerializer {
+ protected List<String> getAttributesToSave() {
+ ArrayList<String> result = new ArrayList<String>();
+ result.add("name");
+ result.add(Assignment.ASSIGNEE);
+ result.add(Assignment.CANDIDATE_GROUPS);
+ result.add(Assignment.SWIMLANE);
+ return result;
+ }
+ protected void appendAttributeToSave(String attributeName, StringBuffer buffer, Wrapper
wrapper) {
+ Element element = wrapper.getElement();
+ if (!(element instanceof Swimlane)) return;
+ if (Assignment.ASSIGNEE.equals(attributeName)) {
+ appendExpression(Assignment.ASSIGNEE, buffer, wrapper);
+ } else if (Assignment.CANDIDATE_GROUPS.equals(attributeName)) {
+ appendExpression(Assignment.CANDIDATE_GROUPS, buffer, wrapper);
+ } else if (Assignment.SWIMLANE.equals(attributeName)) {
+ appendExpression(Assignment.SWIMLANE, buffer, wrapper);
+ } else if ("name".equals(attributeName)){
+ appendName(buffer, wrapper);
+ }
+ }
+ protected void appendName(StringBuffer buffer, Wrapper wrapper) {
+ String value = (String)wrapper.getPropertyValue(IPropertyId.NAME);
+ if (value == null || "".equals(value)) return;
+ buffer.append(" name=\"" + value + "\"");
+ }
+ protected void appendExpression(String type, StringBuffer buffer, Wrapper wrapper) {
+ Object assignmentType = wrapper.getPropertyValue(HumanTask.ASSIGNMENT_TYPE);
+ if (!(assignmentType instanceof Integer)) return;
+ if (type.equals(HumanTask.ASSIGNMENT_TYPES[(Integer)assignmentType])) {
+ Object value = wrapper.getPropertyValue(HumanTask.ASSIGNMENT_EXPRESSION);
+ if (value == null || "".equals(value)) return;
+ buffer.append(" " + type + "=\"" + value +
"\"");
+ }
+ }
+ public void appendOpening(StringBuffer buffer, Wrapper wrapper, int level) {
+ appendLeadingNodes(buffer, wrapper, level);
+ buffer.append("<swimlane");
+ appendAttributes(buffer, wrapper, level);
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/SwimlaneSerializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TerminateEndEventDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TerminateEndEventDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TerminateEndEventDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,18 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import org.jboss.tools.flow.common.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.model.TerminateEndEvent;
+import org.w3c.dom.Element;
+
+class TerminateEndEventDeserializer extends NodeDeserializer {
+ public void deserializeAttributes(Wrapper wrapper, Element element) {
+ super.deserializeAttributes(wrapper, element);
+ if (!(wrapper.getElement() instanceof TerminateEndEvent)) return;
+ TerminateEndEvent terminateEndEvent = (TerminateEndEvent)wrapper.getElement();
+ terminateEndEvent.setEnds(element.getAttribute("ends"));
+ terminateEndEvent.setState(element.getAttribute("state"));
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TerminateEndEventDeserializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TerminateEndEventSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TerminateEndEventSerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TerminateEndEventSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,15 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.List;
+
+class TerminateEndEventSerializer extends ProcessNodeSerializer {
+ protected List<String> getAttributesToSave() {
+ List<String> result = super.getAttributesToSave();
+ result.add("ends");
+ result.add("state");
+ return result;
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TerminateEndEventSerializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TimerDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TimerDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TimerDeserializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,29 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.List;
+
+import org.jboss.tools.flow.jpdl4.model.Timer;
+
+class TimerDeserializer extends AbstractElementDeserializer {
+ protected List<String> getAttributesToRead() {
+ List<String> result = super.getAttributesToRead();
+ result.add(Timer.DUE_DATE);
+ result.add(Timer.REPEAT);
+ result.add(Timer.DUE_DATETIME);
+ return result;
+ }
+ protected String getXmlName(String attributeName) {
+ if (Timer.DUE_DATE.equals(attributeName)) {
+ return "duedate";
+ } else if (Timer.REPEAT.equals(attributeName)) {
+ return "repeat";
+ } else if (Timer.DUE_DATETIME.equals(attributeName)) {
+ return "duedatetime";
+ } else {
+ return super.getXmlName(attributeName);
+ }
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TimerDeserializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TimerSerializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TimerSerializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TimerSerializer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,29 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.tools.flow.jpdl4.model.Timer;
+
+class TimerSerializer extends AbstractElementSerializer {
+ protected List<String> getAttributesToSave() {
+ ArrayList<String> result = new ArrayList<String>();
+ result.add("duedate");
+ result.add("repeat");
+ result.add("duedatetime");
+ return result;
+ }
+ protected String getPropertyName(String attributeName) {
+ if ("duedate".equals(attributeName)) {
+ return Timer.DUE_DATE;
+ } else if ("repeat".equals(attributeName)) {
+ return Timer.REPEAT;
+ } else if ("duedatetime".equals(attributeName)) {
+ return Timer.DUE_DATETIME;
+ }
+ return super.getPropertyName(attributeName);
+ }
+}
\ No newline at end of file
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/TimerSerializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/HqlTask.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/HqlTask.java 2009-07-01
15:43:43 UTC (rev 16320)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/HqlTask.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -3,21 +3,78 @@
import java.util.ArrayList;
import java.util.List;
+import org.eclipse.ui.views.properties.IPropertyDescriptor;
+import org.eclipse.ui.views.properties.IPropertySource;
+
public class HqlTask extends Task {
public static final String VAR =
"org.jboss.tools.flow.jpdl4.model.hqlTask.var";
public static final String UNIQUE =
"org.jboss.tools.flow.jpdl4.model.hqlTask.unique";
public static final String QUERY =
"org.jboss.tools.flow.jpdl4.model.hqlTask.query";
- public static final String ARGS =
"org.jboss.tools.flow.jpdl4.model.hqlTask.args";
+ public static final String PARAMETERS =
"org.jboss.tools.flow.jpdl4.model.hqlTask.parameters";
private String variableName;
private String unique;
private String query;
- private List<Field> fields = new ArrayList<Field>();
+ private List<WireObject> parameters = new ArrayList<WireObject>();
+ public HqlTask() {
+ setMetaData("propertySource", new PropertySource());
+ }
+
protected boolean isPropagationExclusive() {
return true;
}
+ private class PropertySource implements IPropertySource {
+
+ public Object getEditableValue() {
+ return null;
+ }
+
+ public IPropertyDescriptor[] getPropertyDescriptors() {
+ return new IPropertyDescriptor[0];
+ }
+
+ public Object getPropertyValue(Object id) {
+ if (VAR.equals(id)) {
+ return variableName;
+ } else if (UNIQUE.equals(id)) {
+ return unique;
+ } else if (QUERY.equals(id)) {
+ return query;
+ } else if (PARAMETERS.equals(id)) {
+ return parameters;
+ }
+ return null;
+ }
+
+ public boolean isPropertySet(Object id) {
+ if (VAR.equals(id)) {
+ return variableName != null;
+ } else if (UNIQUE.equals(id)) {
+ return unique != null;
+ } else if (QUERY.equals(id)) {
+ return query != null;
+ } else if (PARAMETERS.equals(id)) {
+ return true;
+ }
+ return false;
+ }
+
+ public void resetPropertyValue(Object id) {
+ }
+
+ public void setPropertyValue(Object id, Object value) {
+ if (VAR.equals(id)) {
+ variableName = (String)value;
+ } else if (UNIQUE.equals(id)) {
+ unique = (String)value;
+ } else if (QUERY.equals(id)) {
+ query = (String)value;
+ }
+ }
+
+ }
}
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/ScriptTask.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/ScriptTask.java 2009-07-01
15:43:43 UTC (rev 16320)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/ScriptTask.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -8,8 +8,8 @@
public static final String EXPR =
"org.jboss.tools.flow.jpdl4.model.scriptTask.expr";
public static final String LANG =
"org.jboss.tools.flow.jpdl4.model.scriptTask.lang";
- public static final String VAR =
"org.jboss.tools.flow.jpdl4.model.javaTask.var";
- public static final String TEXT =
"org.jboss.tools.flow.jpdl4.model.javaTask.text";
+ public static final String VAR =
"org.jboss.tools.flow.jpdl4.model.scriptTask.var";
+ public static final String TEXT =
"org.jboss.tools.flow.jpdl4.model.scriptTask.text";
private String expression;
private String language;
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/WireObject.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/WireObject.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/WireObject.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,7 @@
+package org.jboss.tools.flow.jpdl4.model;
+
+import org.jboss.tools.flow.common.model.DefaultElement;
+
+public class WireObject extends DefaultElement {
+
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/WireObject.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/WireObjectContainer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/WireObjectContainer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/WireObjectContainer.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,7 @@
+package org.jboss.tools.flow.jpdl4.model;
+
+import org.jboss.tools.flow.common.model.DefaultElement;
+
+public class WireObjectContainer extends DefaultElement {
+
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/WireObjectContainer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/HqlTaskQuerySection.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/HqlTaskQuerySection.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/HqlTaskQuerySection.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,11 @@
+package org.jboss.tools.flow.jpdl4.properties;
+
+import org.jboss.tools.flow.jpdl4.model.HqlTask;
+
+public class HqlTaskQuerySection extends TextFieldPropertySection {
+
+ public HqlTaskQuerySection() {
+ super(HqlTask.QUERY, "Query");
+ }
+
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/HqlTaskQuerySection.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/HqlTaskUniqueSection.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/HqlTaskUniqueSection.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/HqlTaskUniqueSection.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,11 @@
+package org.jboss.tools.flow.jpdl4.properties;
+
+import org.jboss.tools.flow.jpdl4.model.HqlTask;
+
+public class HqlTaskUniqueSection extends TextFieldPropertySection {
+
+ public HqlTaskUniqueSection() {
+ super(HqlTask.UNIQUE, "Unique");
+ }
+
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/HqlTaskUniqueSection.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/HqlTaskVariableNameSection.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/HqlTaskVariableNameSection.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/HqlTaskVariableNameSection.java 2009-07-01
15:46:56 UTC (rev 16321)
@@ -0,0 +1,11 @@
+package org.jboss.tools.flow.jpdl4.properties;
+
+import org.jboss.tools.flow.jpdl4.model.HqlTask;
+
+public class HqlTaskVariableNameSection extends TextFieldPropertySection {
+
+ public HqlTaskVariableNameSection() {
+ super(HqlTask.VAR, "Variable Name");
+ }
+
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/properties/HqlTaskVariableNameSection.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain