in taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/t23activities/ExternalToolActivityParser.java [117:202]
public Configuration parseConfiguration(T2FlowParser t2FlowParser,
ConfigBean configBean, ParserState parserState)
throws ReaderException {
ExternalToolConfig externalToolConfig = null;
UsecaseConfig usecaseConfig = null;
try {
externalToolConfig = unmarshallConfig(t2FlowParser, configBean,
"xstream", ExternalToolConfig.class);
} catch (ReaderException ex) {
usecaseConfig = unmarshallConfig(t2FlowParser, configBean,
"xstream", UsecaseConfig.class);
}
Configuration configuration = new Configuration();
configuration.setParent(parserState.getCurrentProfile());
parserState.setCurrentConfiguration(configuration);
try {
ObjectNode json = configuration.getJsonAsObjectNode();
configuration.setType(ACTIVITY_URI.resolve("#Config"));
if (usecaseConfig != null) {
if (usecaseConfig.getRepositoryUrl() != null)
json.put("repositoryUrl", usecaseConfig.getRepositoryUrl());
json.put("toolId", usecaseConfig.getUsecaseid());
} else if (externalToolConfig != null) {
if (externalToolConfig.getRepositoryUrl() != null)
json.put("repositoryUrl",
externalToolConfig.getRepositoryUrl());
json.put("toolId", externalToolConfig.getExternaltoolid());
if (externalToolConfig.isEdited())
json.put("edited", externalToolConfig.isEdited());
}
if (externalToolConfig != null) {
Group group = externalToolConfig.getGroup();
if (group != null) {
ObjectNode invocationGroup = json.objectNode();
json.put("invocationGroup", invocationGroup);
invocationGroup.put("name", group.getInvocationGroupName());
invocationGroup.put("mechanismType",
group.getMechanismType());
invocationGroup.put("mechanismName",
group.getMechanismName());
invocationGroup
.put("mechanismXML", group.getMechanismXML());
} else {
json.put("mechanismType",
externalToolConfig.getMechanismType());
json.put("mechanismName",
externalToolConfig.getMechanismName());
json.put("mechanismXML",
externalToolConfig.getMechanismXML());
}
// URI mechanismTypeURI = ACTIVITY_URI.resolve("#"
// + uriTools.validFilename(mechanismType));
// if (mappedMechanismTypes.containsKey(mechanismTypeURI)) {
// mechanismTypeURI = mappedMechanismTypes.get(mechanismTypeURI);
// }
// invocation.addPropertyReference(ACTIVITY_URI.resolve("#mechanismType"),
// mechanismTypeURI);
//
// invocation.addPropertyAsString(ACTIVITY_URI.resolve("#mechanismName"),
// mechanismName);
// invocation.addProperty(ACTIVITY_URI.resolve("#mechanismXML"), new PropertyLiteral(
// mechanismXML, PropertyLiteral.XML_LITERAL));
// TODO: Extract SSH hostname etc. from mechanismXML
// parseMechanismXML(json);
ObjectNode toolDescription = json.objectNode();
parseToolDescription(toolDescription,
externalToolConfig.getUseCaseDescription(), parserState);
json.put("toolDescription", toolDescription);
// configResource.addProperty(ACTIVITY_URI.resolve("#invocationGroup"),
// parseGroup(externalToolConfig.getGroup()));
}
return configuration;
} finally {
parserState.setCurrentConfiguration(null);
}
}