Link source;
Link sink;
Parameter parameter = null;
Output output = null;
Format format;
FileTypes fileTypes;
for(DataLink d : datalinks){
source = d.getSource();
sourceLinkType = source.getLinkType();
sourcePort = source.getPort();
sourceProcessor = source.getProcessor();
sink = d.getSink();
sinkLinkType = sink.getLinkType();
sinkPort = sink.getPort();
sinkProcessor = sink.getProcessor();
// Even if the Taverna port is a SOURCE, that will correspond to Output.class in LONI. It's weird, but you have to be careful. In side the Input of LONI, the dataModule actually contains <output>, not <input>!
if(sinkPort == inputPortName){
parameter = new Parameter();
parameter.setId(dataModule.getId() +".Input");
parameter.setName(inputPortName);
parameter.setDescription("Input description");
parameter.setRequired(true);
parameter.setEnabled(true);
parameter.setOrder(tavernaContext.getNextOrder());
parameter.setLink("");
parameter.setValues(new Values());
// Create a new Format for parameter
format = new Format();
format.setType("File");
format.setCardinality(1);
format.setCardinalityBase("");
format.setTransformationBase("");
// Create and fill in file types for format
fileTypes = new FileTypes();
fileTypes.addFileType(new FileType(TavernaType, "", ""));
format.setFileTypes(fileTypes);
// Give parameter the newly created Format object
parameter.setFileFormat(format);