public Element writeToXMLElement()

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;
	}