in taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/ExternalToolActivityParser.java [300:441]
protected ObjectNode parseToolDescription(ObjectNode json, UsecaseDescription toolDesc,
ParserState parserState) {
ObjectNode description = json.objectNode();
description.put("dc:title", toolDesc.getUsecaseid());
if (toolDesc.getGroup() != null)
description.put("group", toolDesc.getGroup());
if (toolDesc.getDescription() != null)
description.put("dc:description", toolDesc.getDescription());
description.put("command", toolDesc.getCommand());
description.put("preparingTimeoutInSeconds",
toolDesc.getPreparingTimeoutInSeconds());
description.put("executionTimeoutInSeconds",
toolDesc.getExecutionTimeoutInSeconds());
// Ignoring tags, REs, queue__preferred, queue__deny
ArrayNode staticInputs = json.arrayNode();
// static inputs
for (ScriptInputStatic inputStatic : toolDesc.getStaticInputs()
.getDeUniLuebeckInbKnowarcUsecasesScriptInputStatic()) {
ObjectNode input = json.objectNode();
staticInputs.add(input);
input.put("tag", inputStatic.getTag());
input.put("file", inputStatic.isFile());
input.put("tempFile", inputStatic.isTempFile());
input.put("binary", inputStatic.isBinary());
input.put("charsetName", inputStatic.getCharsetName());
input.put("forceCopy", inputStatic.isForceCopy());
if (inputStatic.getUrl() != null)
input.put("url", inputStatic.getUrl());
if (inputStatic.getContent() != null)
input.put("content", inputStatic.getContent().getValue());
}
if (staticInputs.size() > 0)
json.put("staticInputs", staticInputs);
// for (ScriptInputStatic inputStatic : toolDesc.getStaticInputs()
// .getDeUniLuebeckInbKnowarcUsecasesScriptInputStatic()) {
// String portName = inputStatic.getTag();
// PropertyResource staticInput = generatePortDefinition(portName, inputStatic.getTag(),
// inputStatic.getCharsetName(), true, false, inputStatic.isBinary(),
// inputStatic.isFile(), inputStatic.isTempFile(), inputStatic.isForceCopy(),
// false, true, parserState);
//
// configResource.addProperty(ACTIVITY_URI.resolve("#staticInput"), staticInput);
// if (inputStatic.getUrl() != null) {
// staticInput.addPropertyReference(ACTIVITY_URI.resolve("#source"),
// URI.create(inputStatic.getUrl()));
// } else {
// PropertyResource content = staticInput.addPropertyAsNewResource(
// ACTIVITY_URI.resolve("#source"), CNT.resolve("#ContentAsText"));
// content.addPropertyAsString(CNT.resolve("#chars"), inputStatic.getContent()
// .getValue());
// // TODO: Support bytes?
// }
// }
// Inputs
ArrayNode inputs = json.arrayNode();
for (Entry entry : toolDesc.getInputs().getEntry()) {
ObjectNode mapping = json.objectNode();
mapping.put("port", entry.getString());
ObjectNode input = json.objectNode();
mapping.put("input", input);
ScriptInputUser scriptInput = entry
.getDeUniLuebeckInbKnowarcUsecasesScriptInputUser();
input.put("tag", scriptInput.getTag());
input.put("file", scriptInput.isFile());
input.put("tempFile", scriptInput.isTempFile());
input.put("binary", scriptInput.isBinary());
input.put("charsetName", scriptInput.getCharsetName());
input.put("forceCopy", scriptInput.isForceCopy());
input.put("list", scriptInput.isList());
input.put("concatenate", scriptInput.isConcatenate());
}
if (inputs.size() > 0)
json.put("inputs", inputs);
// for (Entry entry : toolDesc.getInputs().getEntry()) {
// String portName = entry.getString();
// ScriptInputUser scriptInput = entry.getDeUniLuebeckInbKnowarcUsecasesScriptInputUser();
// PropertyResource portDef = generatePortDefinition(portName, scriptInput.getTag(),
// scriptInput.getCharsetName(), true, scriptInput.isList(),
// scriptInput.isBinary(), scriptInput.isFile(), scriptInput.isTempFile(),
// scriptInput.isForceCopy(), scriptInput.isConcatenate(), false, parserState);
// configResource.addProperty(Scufl2Tools.PORT_DEFINITION.resolve("#inputPortDefinition"),
// portDef);
// }
// Outputs
ArrayNode outputs = json.arrayNode();
for (Entry entry : toolDesc.getOutputs().getEntry()) {
ObjectNode mapping = json.objectNode();
mapping.put("port", entry.getString());
ObjectNode output = json.objectNode();
mapping.put("output", output);
ScriptOutput scriptOutput = entry
.getDeUniLuebeckInbKnowarcUsecasesScriptOutput();
output.put("path", scriptOutput.getPath());
output.put("binary", scriptOutput.isBinary());
}
if (outputs.size() > 0)
json.put("outputs", outputs);
// for (Entry entry : toolDesc.getOutputs().getEntry()) {
// String portName = entry.getString();
// ScriptOutput scriptOutput = entry.getDeUniLuebeckInbKnowarcUsecasesScriptOutput();
// PropertyResource portDef = generatePortDefinition(portName, scriptOutput.getPath(),
// null, false, false, scriptOutput.isBinary(), true, false, false, false, false,
// parserState);
// configResource.addProperty(
// Scufl2Tools.PORT_DEFINITION.resolve("#outputPortDefinition"), portDef);
// }
json.put("includeStdIn", toolDesc.isIncludeStdIn());
json.put("includeStdOut", toolDesc.isIncludeStdOut());
json.put("includeStdErr", toolDesc.isIncludeStdErr());
// if (toolDesc.isIncludeStdIn()) {
// InputActivityPort stdin = new InputActivityPort(parserState.getCurrentActivity(), STDIN);
// stdin.setDepth(0);
// }
// if (toolDesc.isIncludeStdOut()) {
// OutputActivityPort stdout = new OutputActivityPort(parserState.getCurrentActivity(),
// STDOUT);
// stdout.setDepth(0);
// stdout.setGranularDepth(0);
// }
// if (toolDesc.isIncludeStdErr()) {
// OutputActivityPort stderr = new OutputActivityPort(parserState.getCurrentActivity(),
// STDERR);
// stderr.setDepth(0);
// stderr.setGranularDepth(0);
// }
return description;
}