Map<String, Object> output = jobExecutionContext.getOutMessageContext().getParameters();
Set<String> keys = output.keySet();
for (String paramName : keys) {
ActualParameter actualParameter = (ActualParameter) output.get(paramName);
if ("URIArray".equals(actualParameter.getType().getType().toString())) {
URI outputURI = GFacUtils.createGsiftpURI(endpoint, app.getOutputDataDirectory());
List<String> outputList = ftp.listDir(outputURI, gssCred);
String[] valueList = outputList.toArray(new String[outputList.size()]);
((URIArrayType) actualParameter.getType()).setValueArray(valueList);
// why to instantiate new instance?
// stringMap = new HashMap<String, ActualParameter>();
stringMap.put(paramName, actualParameter);
}else if ("StringArray".equals(actualParameter.getType().getType().toString())) {
String[] valueList = OutputUtils.parseStdoutArray(stdout, paramName);
((StringArrayType) actualParameter.getType()).setValueArray(valueList);
// stringMap = new HashMap<String, ActualParameter>();
stringMap.put(paramName, actualParameter);
} else if ("URI".equals(actualParameter.getType().getType().toString())) {
stringMap.put(paramName, actualParameter);
}
else if ("String".equals(actualParameter.getType().getType().toString())) {
String path = app.getOutputDataDirectory()+"/"+((StringParameterType) actualParameter.getType()).getValue();
URI outputURI = GFacUtils.createGsiftpURI(endpoint, path);
((StringParameterType) actualParameter.getType()).setValue(outputURI.toString());
// stringMap = new HashMap<String, ActualParameter>();
stringMap.put(paramName, actualParameter);
}
else {
// This is to handle exception during the output parsing.