in taverna-external-tool-activity/src/main/java/org/apache/taverna/activities/externaltool/desc/ToolDescription.java [167:308]
public Element writeToXMLElement() {
Element programNode = new Element("program");
programNode.setAttribute("name", getUsecaseid());
programNode.setAttribute("description", getDescription());
// Always use element version of command
// programNode.setAttribute("command", getCommand());
Element commandNode = new Element("command");
commandNode.addContent(getCommand());
programNode.addContent(commandNode);
programNode.setAttribute("timeout", Integer.toString(getExecutionTimeoutInSeconds()));
programNode.setAttribute("preparing_timeout", Integer.toString(getPreparingTimeoutInSeconds()));
programNode.setAttribute("includeStdIn", Boolean.toString(isIncludeStdIn()));
programNode.setAttribute("includeStdOut", Boolean.toString(isIncludeStdOut()));
programNode.setAttribute("includeStdErr", Boolean.toString(isIncludeStdErr()));
for (ScriptInputStatic si : getStatic_inputs()) {
Element staticNode = new Element("static");
if (si.isBinary()) {
staticNode.setAttribute("binary", "true");
}
if (si.isForceCopy()) {
staticNode.setAttribute("forceCopy", "true");
}
if (si.isFile()) {
Element fileNode = new Element("file");
fileNode.setAttribute("path", si.getTag());
staticNode.addContent(fileNode);
} else if (si.isTempFile()) {
Element tempfileNode = new Element("tempfile");
tempfileNode.setAttribute("tag", si.getTag());
staticNode.addContent(tempfileNode);
} else {
Element replaceNode = new Element("replace");
replaceNode.setAttribute("tag", si.getTag());
staticNode.addContent(replaceNode);
}
if (si.getUrl() != null) {
Element contentNode = new Element("content");
contentNode.setAttribute("url", si.getUrl());
staticNode.addContent(contentNode);
} else {
Element contentNode = new Element("content");
contentNode.addContent((String) si.getContent());
staticNode.addContent(contentNode);
}
programNode.addContent(staticNode);
}
for (Entry<String, ScriptInput> entry : getInputs().entrySet()) {
String name = entry.getKey();
ScriptInputUser si = (ScriptInputUser) entry.getValue();
Element inputNode = new Element("input");
inputNode.setAttribute("name", name);
if (si.isBinary()) {
inputNode.setAttribute("binary", "true");
}
if (si.isForceCopy()) {
inputNode.setAttribute("forceCopy", "true");
}
if (si.isConcatenate()) {
inputNode.setAttribute("concatenate", "true");
}
if (si.isList()) {
inputNode.setAttribute("list", "true");
}
if (si.isFile()) {
Element fileNode = new Element("file");
fileNode.setAttribute("path", si.getTag());
inputNode.addContent(fileNode);
} else if (si.isTempFile()) {
Element tempfileNode = new Element("tempfile");
tempfileNode.setAttribute("tag", si.getTag());
inputNode.addContent(tempfileNode);
} else {
Element replaceNode = new Element("replace");
replaceNode.setAttribute("tag", si.getTag());
inputNode.addContent(replaceNode);
}
for (String mime : si.getMime()) {
Element mimeNode = new Element("mime");
mimeNode.setAttribute("type", mime);
inputNode.addContent(mimeNode);
}
programNode.addContent(inputNode);
}
for (Entry<String, ScriptOutput> entry : getOutputs().entrySet()) {
String name = entry.getKey();
ScriptOutput so = entry.getValue();
Element outputNode = new Element("output");
outputNode.setAttribute("name", name);
if (so.isBinary()) {
outputNode.setAttribute("binary", "true");
}
Element fromfileNode = new Element("fromfile");
fromfileNode.setAttribute("path", so.getPath());
outputNode.addContent(fromfileNode);
for (String mime : so.getMime()) {
Element mimeNode = new Element("mime");
mimeNode.setAttribute("type", mime);
outputNode.addContent(mimeNode);
}
programNode.addContent(outputNode);
}
for (RuntimeEnvironmentConstraint rec : getREs()) {
Element rteNode = new Element("rte");
rteNode.setAttribute("name", rec.getID());
rteNode.setAttribute("relation", rec.getRelation());
programNode.addContent(rteNode);
}
if ((group != null) && !group.isEmpty()) {
Element groupNode = new Element("group");
groupNode.setAttribute("name", group);
programNode.addContent(groupNode);
}
if ((test_local != null) && !test_local.isEmpty()) {
Element testNode = new Element("test");
testNode.setAttribute("local", test_local);
programNode.addContent(testNode);
}
if ((icon_url != null) && !icon_url.isEmpty()) {
Element iconNode = new Element("icon");
iconNode.setAttribute("url", icon_url);
programNode.addContent(iconNode);
}
if (!getQueue_preferred().isEmpty() || !getQueue_deny().isEmpty()) {
Element queueNode = new Element("queue");
for (String url : getQueue_preferred()) {
Element preferredNode = new Element("prefer");
preferredNode.setAttribute("url", url);
queueNode.addContent(preferredNode);
}
for (String url : getQueue_deny()) {
Element denyNode = new Element("deny");
denyNode.setAttribute("url", url);
queueNode.addContent(denyNode);
}
programNode.addContent(queueNode);
}
Element validReturnCodesNode = new Element("validReturnCodes");
validReturnCodesNode.setAttribute("codes", getReturnCodesAsText());
programNode.addContent(validReturnCodesNode);
return programNode;
}