Author: koen.aers(a)jboss.com
Date: 2009-07-01 16:10:02 -0400 (Wed, 01 Jul 2009)
New Revision: 16325
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/icons/16/object.png
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/PrimitiveObjectDeserializer.java
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/PrimitiveObject.java
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml
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/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/FieldDeserializer.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/model/Argument.java
Log:
Argument for Java Task is working properly now
Added: trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/icons/16/object.png
===================================================================
(Binary files differ)
Property changes on: trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/icons/16/object.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml
===================================================================
--- trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml 2009-07-01 17:19:09 UTC (rev
16324)
+++ trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/plugin.xml 2009-07-01 20:10:02 UTC (rev
16325)
@@ -296,6 +296,13 @@
label="field"
language="org.jboss.tools.flow.jpdl4">
</element>
+ <element
+ class="org.jboss.tools.flow.jpdl4.model.PrimitiveObject"
+ figure="icons/16/object.png"
+ id="org.jboss.tools.flow.jpdl4.primitive"
+ label="primitive"
+ language="org.jboss.tools.flow.jpdl4">
+ </element>
</extension>
<extension
point="org.eclipse.ui.newWizards">
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
17:19:09 UTC (rev 16324)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/editpart/ArgumentTreeEditPart.java 2009-07-01
20:10:02 UTC (rev 16325)
@@ -23,7 +23,7 @@
protected String getText() {
String value = (String)((Wrapper)getModel()).getPropertyValue(Argument.VALUE);
- return (value != null && !("".equals(value))) ? value :
"argument";
+ return (value != null && !("".equals(value))) ? value.trim() :
"argument";
}
public void modelChanged(ModelEvent event) {
Modified:
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 2009-07-01
17:19:09 UTC (rev 16324)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/AbstractElementSerializer.java 2009-07-01
20:10:02 UTC (rev 16325)
@@ -53,7 +53,9 @@
}
}
- protected abstract List<String> getAttributesToSave();
+ protected List<String> getAttributesToSave() {
+ return new ArrayList<String>();
+ }
protected String getPropertyName(String attributeName) {
return attributeName;
Modified:
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 2009-07-01
17:19:09 UTC (rev 16324)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ArgumentDeserializer.java 2009-07-01
20:10:02 UTC (rev 16325)
@@ -3,28 +3,43 @@
*/
package org.jboss.tools.flow.jpdl4.io;
-import java.util.List;
+import java.io.StringWriter;
+import javax.xml.transform.Result;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
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.w3c.dom.Element;
-import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
-class ArgumentDeserializer extends AbstractElementDeserializer {
- protected List<String> getAttributesToRead() {
- List<String> result = super.getAttributesToRead();
- return result;
+
+class ArgumentDeserializer extends PrimitiveObjectDeserializer {
+
+ public void deserializeAttributes(Wrapper wrapper, Element element) {
}
- 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);
+
+ public void deserializeChildNodes(Wrapper wrapper, Element element) {
+ NodeList nodeList = element.getChildNodes();
+ StringBuffer buffer = new StringBuffer();
+ DOMSource domSource = new DOMSource();
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ StringWriter writer = new StringWriter();
+ domSource.setNode(nodeList.item(i));
+ Result result = new StreamResult(writer);
+ try {
+ getTransformer().transform(domSource, result);
+ } catch (TransformerException e) {
+ Logger.logError("Exception while transforming xml.", e);
}
- } else {
- result = super.deserializeChildNode(parent, node);
+ buffer.append(writer.getBuffer());
}
- return result;
+ wrapper.setPropertyValue(Argument.VALUE, buffer.toString());
+
}
+
+
}
\ No newline at end of file
Modified:
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 2009-07-01
17:19:09 UTC (rev 16324)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/ArgumentSerializer.java 2009-07-01
20:10:02 UTC (rev 16325)
@@ -3,24 +3,21 @@
*/
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 +
"\"/>");
+ buffer.append(value);
}
super.appendBody(buffer, wrapper, level);
}
+
+ protected void appendTrailingNodes(StringBuffer buffer, Wrapper wrapper, int level) {
+ // There are no trailing nodes in an argument serialization
+ }
+
}
\ No newline at end of file
Modified:
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 2009-07-01
17:19:09 UTC (rev 16324)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/FieldDeserializer.java 2009-07-01
20:10:02 UTC (rev 16325)
@@ -3,36 +3,39 @@
*/
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;
import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-class FieldDeserializer extends AbstractElementDeserializer {
+class FieldDeserializer extends ArgumentDeserializer {
+
protected List<String> getAttributesToRead() {
- List<String> result = super.getAttributesToRead();
+ List<String> result = new ArrayList<String>();
result.add(Field.NAME);
return result;
}
+
protected String getXmlName(String attributeName) {
if (Field.NAME.equals(attributeName)) {
return "name";
} else {
- return super.getXmlName(attributeName);
+ return null;
}
}
- 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);
+
+ 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);
}
- } else {
- result = super.deserializeChildNode(parent, node);
}
- return result;
}
}
\ No newline at end of file
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/PrimitiveObjectDeserializer.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/PrimitiveObjectDeserializer.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/PrimitiveObjectDeserializer.java 2009-07-01
20:10:02 UTC (rev 16325)
@@ -0,0 +1,56 @@
+/**
+ *
+ */
+package org.jboss.tools.flow.jpdl4.io;
+
+import java.io.StringWriter;
+
+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.wrapper.Wrapper;
+import org.jboss.tools.flow.jpdl4.Logger;
+import org.jboss.tools.flow.jpdl4.model.PrimitiveObject;
+import org.w3c.dom.Element;
+
+class PrimitiveObjectDeserializer implements ElementDeserializer {
+
+ private static TransformerFactory transformerFactory =
TransformerFactory.newInstance();
+ private static Transformer transformer = null;
+
+ protected static Transformer getTransformer() {
+ if (transformer == null) {
+ try {
+ transformer = transformerFactory.newTransformer();
+ transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
+ } catch (TransformerConfigurationException e) {
+ Logger.logError("Error while creating XML tranformer.", e);
+ }
+ }
+ return transformer;
+ }
+
+ public void deserializeAttributes(Wrapper wrapper, Element element) {
+ DOMSource domSource = new DOMSource();
+ StringWriter writer = new StringWriter();
+ domSource.setNode(element);
+ Result result = new StreamResult(writer);
+ try {
+ getTransformer().transform(domSource, result);
+ } catch (TransformerException e) {
+ Logger.logError("Exception while transforming xml.", e);
+ }
+ wrapper.setPropertyValue(PrimitiveObject.VALUE, writer.getBuffer().toString());
+
+ }
+
+ public void deserializeChildNodes(Wrapper wrapper, Element 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/PrimitiveObjectDeserializer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
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 2009-07-01
17:19:09 UTC (rev 16324)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/io/Registry.java 2009-07-01
20:10:02 UTC (rev 16325)
@@ -22,6 +22,7 @@
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.PrimitiveObject;
import org.jboss.tools.flow.jpdl4.model.Process;
import org.jboss.tools.flow.jpdl4.model.ScriptTask;
import org.jboss.tools.flow.jpdl4.model.SequenceFlow;
@@ -66,10 +67,31 @@
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";
+ // wire object group treated as one kind of element
+ else if ("null".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ else if ("ref".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ else if ("env-ref".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ else if ("jndi".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ else if ("list".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ else if ("map".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ else if ("set".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ else if ("properties".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ else if ("object".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ else if ("string".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ else if ("byte".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ else if ("char".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ else if ("double".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ else if ("false".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ else if ("float".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ else if ("int".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ else if ("long".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ else if ("short".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ else if ("true".equals(nodeName)) return
"org.jboss.tools.flow.jpdl4.primitive";
+ // no corresponding element
else return null;
}
- public static AbstractElementDeserializer getElementDeserializer(Wrapper wrapper) {
+ public static ElementDeserializer getElementDeserializer(Wrapper wrapper) {
if (wrapper instanceof FlowWrapper) {
return new ProcessDeserializer();
} else if (wrapper instanceof NodeWrapper) {
@@ -90,7 +112,7 @@
}
- private static AbstractElementDeserializer getDefaultDeserializer(Wrapper wrapper) {
+ private static ElementDeserializer getDefaultDeserializer(Wrapper wrapper) {
Object element = wrapper.getElement();
if (element instanceof Swimlane) {
return new SwimlaneDeserializer();
@@ -106,11 +128,13 @@
return new ArgumentDeserializer();
} else if (element instanceof Field) {
return new FieldDeserializer();
+ } else if (element instanceof PrimitiveObject) {
+ return new PrimitiveObjectDeserializer();
}
return null;
}
- private static AbstractElementDeserializer getNodeDeserializer(Wrapper wrapper) {
+ private static ElementDeserializer getNodeDeserializer(Wrapper wrapper) {
Object element = wrapper.getElement();
if (element instanceof HumanTask) {
return new HumanTaskDeserializer();
@@ -134,7 +158,7 @@
if (elementId == null) return null;
Wrapper result = ElementRegistry.createWrapper(elementId);
if (result == null) return null;
- AbstractElementDeserializer elementDeserializer =
Registry.getElementDeserializer(result);
+ ElementDeserializer elementDeserializer = Registry.getElementDeserializer(result);
if (elementDeserializer != null) {
elementDeserializer.deserializeAttributes(result, element);
elementDeserializer.deserializeChildNodes(result, element);
Modified:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/Argument.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/Argument.java 2009-07-01
17:19:09 UTC (rev 16324)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/Argument.java 2009-07-01
20:10:02 UTC (rev 16325)
@@ -1,59 +1,5 @@
package org.jboss.tools.flow.jpdl4.model;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.jboss.tools.flow.common.model.DefaultElement;
-
-public class Argument extends DefaultElement {
+public class Argument extends PrimitiveObject {
- public static final String VALUE =
"org.jboss.tools.flow.jpdl4.model.argument.value";
-
- private String value;
-
- public Argument() {
- setMetaData("propertySource", new PropertySource());
- }
-
- public String getValue() {
- return value;
- }
-
- public void setValue(String value) {
- this.value = value;
- }
-
- private class PropertySource implements IPropertySource {
-
- public Object getEditableValue() {
- return null;
- }
-
- public IPropertyDescriptor[] getPropertyDescriptors() {
- return new IPropertyDescriptor[0];
- }
-
- public Object getPropertyValue(Object id) {
- if (VALUE.equals(id)) {
- return getValue();
- }
- return null;
- }
-
- public boolean isPropertySet(Object id) {
- if (VALUE.equals(id)) {
- return getValue() != null;
- }
- return false;
- }
-
- public void resetPropertyValue(Object id) {
- }
-
- public void setPropertyValue(Object id, Object value) {
- if (VALUE.equals(id)) {
- setValue((String)value);
- }
- }
-
- }
}
Added:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/PrimitiveObject.java
===================================================================
---
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/PrimitiveObject.java
(rev 0)
+++
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/PrimitiveObject.java 2009-07-01
20:10:02 UTC (rev 16325)
@@ -0,0 +1,51 @@
+package org.jboss.tools.flow.jpdl4.model;
+
+import org.eclipse.ui.views.properties.IPropertyDescriptor;
+import org.eclipse.ui.views.properties.IPropertySource;
+import org.jboss.tools.flow.common.model.DefaultElement;
+
+public class PrimitiveObject extends DefaultElement {
+
+ public static final String VALUE =
"org.jboss.tools.flow.jpdl4.model.primitiveObject.value";
+
+ private String value = "<string value=\"aValue\"/>";
+
+ public PrimitiveObject() {
+ setMetaData("propertySource", new PropertySource());
+ }
+
+ private class PropertySource implements IPropertySource {
+
+ public Object getEditableValue() {
+ return null;
+ }
+
+ public IPropertyDescriptor[] getPropertyDescriptors() {
+ return new IPropertyDescriptor[0];
+ }
+
+ public Object getPropertyValue(Object id) {
+ if (VALUE.equals(id)) {
+ return value;
+ }
+ return null;
+ }
+
+ public boolean isPropertySet(Object id) {
+ if (VALUE.equals(id)) {
+ return value != null;
+ }
+ return false;
+ }
+
+ public void resetPropertyValue(Object id) {
+ }
+
+ public void setPropertyValue(Object id, Object val) {
+ if (VALUE.equals(id)) {
+ value = (String)val;
+ }
+ }
+
+ }
+}
Property changes on:
trunk/jbpm/plugins/org.jboss.tools.flow.jpdl4/src/org/jboss/tools/flow/jpdl4/model/PrimitiveObject.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain