private Integer findPortDepth(final String portName) { final Set<OutputPort> ports = this.activity.getOutputPorts(); for (final OutputPort op : ports) { if (op.getName().equals(portName)) { return op.getDepth(); } } return null; }
private List<String> getActivityOutputPorts() { // TODO: Support multiple activities Activity<?> activity = getFirstProcessorActivity(); if (activity == null) { return new ArrayList<String>(); } List<String> ports = new ArrayList<String>(); for (OutputPort outPort : activity.getOutputPorts()) { if (outPort.getDepth() == 0) { ports.add(outPort.getName()); } } Collections.sort(ports); return ports; }
private List<ProcessorOutputPort> determineOutputPortsForRemoval(Processor p,Activity<?>a) { List<ProcessorOutputPort> result = new ArrayList<ProcessorOutputPort>(); for (ProcessorOutputPort pPort : p.getOutputPorts()) { boolean found=false; for (OutputPort aPort : a.getOutputPorts()) { if (aPort.getName().equals(pPort.getName())) { if (pPort.getDepth() == aPort.getDepth() && pPort.getGranularDepth() == aPort.getGranularDepth()) { found=true; } break; } } if (!found) { result.add(pPort); } } return result; }
private List<ProcessorOutputPort> determineOutputPortsForRemoval(Processor p,Activity<?>a) { List<ProcessorOutputPort> result = new ArrayList<ProcessorOutputPort>(); for (ProcessorOutputPort pPort : p.getOutputPorts()) { boolean found=false; for (OutputPort aPort : a.getOutputPorts()) { if (aPort.getName().equals(pPort.getName())) { if (pPort.getDepth() == aPort.getDepth() && pPort.getGranularDepth() == aPort.getGranularDepth()) { found=true; } break; } } if (!found) { result.add(pPort); } } return result; }
private EventForwardingOutputPort getSourcePort(Processor processor, Activity<?> activity, String portName, List<Edit<?>> editList) { OutputPort activityPort = net.sf.taverna.t2.workflowmodel.utils.Tools.getActivityOutputPort(activity, portName); //check if processor port exists EventForwardingOutputPort output = net.sf.taverna.t2.workflowmodel.utils.Tools.getProcessorOutputPort(processor, activity, activityPort); if (output == null) { //port doesn't exist so create a processor port and map it ProcessorOutputPort processorOutputPort = edits.createProcessorOutputPort(processor, activityPort.getName(), activityPort.getDepth(), activityPort.getGranularDepth()); editList.add(edits.getAddProcessorOutputPortEdit(processor, processorOutputPort)); editList.add(edits.getAddActivityOutputPortMappingEdit(activity, activityPort.getName(), activityPort.getName())); output = processorOutputPort; } return output; }
private EventForwardingOutputPort getSourcePort(Processor processor, Activity<?> activity, String portName, List<Edit<?>> editList) { OutputPort activityPort = net.sf.taverna.t2.workflowmodel.utils.Tools.getActivityOutputPort(activity, portName); //check if processor port exists EventForwardingOutputPort output = net.sf.taverna.t2.workflowmodel.utils.Tools.getProcessorOutputPort(processor, activity, activityPort); if (output == null) { //port doesn't exist so create a processor port and map it ProcessorOutputPort processorOutputPort = edits.createProcessorOutputPort(processor, activityPort.getName(), activityPort.getDepth(), activityPort.getGranularDepth()); editList.add(edits.getAddProcessorOutputPortEdit(processor, processorOutputPort)); editList.add(edits.getAddActivityOutputPortMappingEdit(activity, activityPort.getName(), activityPort.getName())); output = processorOutputPort; } return output; }
private EventForwardingOutputPort getSourcePort( net.sf.taverna.t2.workflowmodel.Processor processor, Activity<?> activity, String portName, List<Edit<?>> editList) { OutputPort activityPort = net.sf.taverna.t2.workflowmodel.utils.Tools .getActivityOutputPort(activity, portName); // check if processor port exists EventForwardingOutputPort output = net.sf.taverna.t2.workflowmodel.utils.Tools .getProcessorOutputPort(processor, activity, activityPort); if (output == null) { // port doesn't exist so create a processor port and map it ProcessorOutputPort processorOutputPort = edits .createProcessorOutputPort(processor, activityPort .getName(), activityPort.getDepth(), activityPort .getGranularDepth()); editList.add(edits.getAddProcessorOutputPortEdit(processor, processorOutputPort)); editList.add(edits.getAddActivityOutputPortMappingEdit(activity, activityPort.getName(), activityPort.getName())); output = processorOutputPort; } return output; }
private EventForwardingOutputPort getSourcePort( net.sf.taverna.t2.workflowmodel.Processor processor, Activity<?> activity, String portName, List<Edit<?>> editList) { OutputPort activityPort = net.sf.taverna.t2.workflowmodel.utils.Tools .getActivityOutputPort(activity, portName); // check if processor port exists EventForwardingOutputPort output = net.sf.taverna.t2.workflowmodel.utils.Tools .getProcessorOutputPort(processor, activity, activityPort); if (output == null) { // port doesn't exist so create a processor port and map it ProcessorOutputPort processorOutputPort = edits .createProcessorOutputPort(processor, activityPort .getName(), activityPort.getDepth(), activityPort .getGranularDepth()); editList.add(edits.getAddProcessorOutputPortEdit(processor, processorOutputPort)); editList.add(edits.getAddActivityOutputPortMappingEdit(activity, activityPort.getName(), activityPort.getName())); output = processorOutputPort; } return output; }
private EventForwardingOutputPort getSourcePort( net.sf.taverna.t2.workflowmodel.Processor processor, Activity<?> activity, String portName, List<Edit<?>> editList) { OutputPort activityPort = net.sf.taverna.t2.workflowmodel.utils.Tools .getActivityOutputPort(activity, portName); // check if processor port exists EventForwardingOutputPort output = net.sf.taverna.t2.workflowmodel.utils.Tools .getProcessorOutputPort(processor, activity, activityPort); if (output == null) { // port doesn't exist so create a processor port and map it ProcessorOutputPort processorOutputPort = edits .createProcessorOutputPort(processor, activityPort .getName(), activityPort.getDepth(), activityPort .getGranularDepth()); editList.add(edits.getAddProcessorOutputPortEdit(processor, processorOutputPort)); editList.add(edits.getAddActivityOutputPortMappingEdit(activity, activityPort.getName(), activityPort.getName())); output = processorOutputPort; } return output; }
private EventForwardingOutputPort getSourcePort( net.sf.taverna.t2.workflowmodel.Processor processor, Activity<?> activity, String portName, List<Edit<?>> editList) { OutputPort activityPort = net.sf.taverna.t2.workflowmodel.utils.Tools .getActivityOutputPort(activity, portName); // check if processor port exists EventForwardingOutputPort output = net.sf.taverna.t2.workflowmodel.utils.Tools .getProcessorOutputPort(processor, activity, activityPort); if (output == null) { // port doesn't exist so create a processor port and map it ProcessorOutputPort processorOutputPort = edits .createProcessorOutputPort(processor, activityPort .getName(), activityPort.getDepth(), activityPort .getGranularDepth()); editList.add(edits.getAddProcessorOutputPortEdit(processor, processorOutputPort)); editList.add(edits.getAddActivityOutputPortMappingEdit(activity, activityPort.getName(), activityPort.getName())); output = processorOutputPort; } return output; }
private EventForwardingOutputPort getSourcePort( net.sf.taverna.t2.workflowmodel.Processor processor, Activity<?> activity, String portName, List<Edit<?>> editList) { OutputPort activityPort = net.sf.taverna.t2.workflowmodel.utils.Tools .getActivityOutputPort(activity, portName); // check if processor port exists EventForwardingOutputPort output = net.sf.taverna.t2.workflowmodel.utils.Tools .getProcessorOutputPort(processor, activity, activityPort); if (output == null) { // port doesn't exist so create a processor port and map it ProcessorOutputPort processorOutputPort = edits .createProcessorOutputPort(processor, activityPort .getName(), activityPort.getDepth(), activityPort .getGranularDepth()); editList.add(edits.getAddProcessorOutputPortEdit(processor, processorOutputPort)); editList.add(edits.getAddActivityOutputPortMappingEdit(activity, activityPort.getName(), activityPort.getName())); output = processorOutputPort; } return output; }
@SuppressWarnings("unused") private EventForwardingOutputPort getSourcePort( net.sf.taverna.t2.workflowmodel.Processor processor, Activity<?> activity, String portName, List<Edit<?>> editList) { OutputPort activityPort = net.sf.taverna.t2.workflowmodel.utils.Tools .getActivityOutputPort(activity, portName); // check if processor port exists EventForwardingOutputPort output = net.sf.taverna.t2.workflowmodel.utils.Tools .getProcessorOutputPort(processor, activity, activityPort); if (output == null) { // port doesn't exist so create a processor port and map it ProcessorOutputPort processorOutputPort = edits .createProcessorOutputPort(processor, activityPort .getName(), activityPort.getDepth(), activityPort .getGranularDepth()); editList.add(edits.getAddProcessorOutputPortEdit(processor, processorOutputPort)); editList.add(edits.getAddActivityOutputPortMappingEdit(activity, activityPort.getName(), activityPort.getName())); output = processorOutputPort; } return output; }
private EventForwardingOutputPort getSourcePort( net.sf.taverna.t2.workflowmodel.Processor processor, Activity<?> activity, String portName, List<Edit<?>> editList) { OutputPort activityPort = net.sf.taverna.t2.workflowmodel.utils.Tools .getActivityOutputPort(activity, portName); // check if processor port exists EventForwardingOutputPort output = net.sf.taverna.t2.workflowmodel.utils.Tools .getProcessorOutputPort(processor, activity, activityPort); if (output == null) { // port doesn't exist so create a processor port and map it ProcessorOutputPort processorOutputPort = edits .createProcessorOutputPort(processor, activityPort .getName(), activityPort.getDepth(), activityPort .getGranularDepth()); editList.add(edits.getAddProcessorOutputPortEdit(processor, processorOutputPort)); editList.add(edits.getAddActivityOutputPortMappingEdit(activity, activityPort.getName(), activityPort.getName())); output = processorOutputPort; } return output; }
/** * @param activity * @param t2Processor * @throws EditException */ private void addOutputPorts(Activity<?> activity, Processor t2Processor) throws EditException { Set<OutputPort> outputPorts = activity.getOutputPorts(); for (OutputPort outputPort : outputPorts) { Edit<Processor> addOutputPortEdit = edits .getCreateProcessorOutputPortEdit(t2Processor, outputPort .getName(), outputPort.getDepth(), outputPort .getGranularDepth()); addOutputPortEdit.doEdit(); activity.getOutputPortMapping().put(outputPort.getName(), outputPort.getName()); } }
/** * @param activity * @param t2Processor * @throws EditException */ private void addOutputPorts(Activity<?> activity, Processor t2Processor) throws EditException { Set<OutputPort> outputPorts = activity.getOutputPorts(); for (OutputPort outputPort : outputPorts) { ProcessorOutputPort port = edits.createProcessorOutputPort( t2Processor, outputPort.getName(), outputPort.getDepth(), outputPort.getGranularDepth()); Edit<Processor> addOutputPortEdit = edits .getAddProcessorOutputPortEdit(t2Processor, port); addOutputPortEdit.doEdit(); activity.getOutputPortMapping().put(outputPort.getName(), outputPort.getName()); } }
/** * Construct and send a new result message with error documents in place of * all outputs at the appropriate depth * * @param e */ private void sendErrorOutput(Event<?> e) { DataManager dm = e.getContext().getDataManager(); Processor p = dispatchStack.getProcessor(); Map<String, EntityIdentifier> outputDataMap = new HashMap<String, EntityIdentifier>(); for (OutputPort op : p.getOutputPorts()) { outputDataMap.put(op.getName(), dm.registerError(op.getDepth(), 0, "No message...")); } DispatchResultEvent dre = new DispatchResultEvent(e.getOwningProcess(), e.getIndex(), e.getContext(), outputDataMap, false); getAbove().receiveResult(dre); }
/** * Create a DisabledActivity that represents a specific Activity that is now * disabled e.g. by its remote endpoint going offline. Note that in this * case, the ports of the DisabledActivity and their mapping to the * containing Processor's ports can be inherited from the Activity that is * now disabled. * * @param activity The Activity that is now disabled. */ public DisabledActivity(Activity<?> activity) { this(activity, activity.getConfiguration()); for (ActivityInputPort aip : activity.getInputPorts()) { this.addInput(aip.getName(), aip.getDepth(), aip .allowsLiteralValues(), aip.getHandledReferenceSchemes(), aip.getTranslatedElementClass()); } for (OutputPort op : activity.getOutputPorts()) { this.addOutput(op.getName(), op.getDepth(), op.getGranularDepth()); } this.getInputPortMapping().clear(); this.getInputPortMapping().putAll(activity.getInputPortMapping()); this.getOutputPortMapping().clear(); this.getOutputPortMapping().putAll(activity.getOutputPortMapping()); }
@Test public void testConfigure() throws Exception { Set<String> expectedInputs = new HashSet<String>(); expectedInputs.add("input"); Set<String> expectedOutputs = new HashSet<String>(); expectedOutputs.add("output"); activity.configure(configurationBean); Set<ActivityInputPort> inputPorts = activity.getInputPorts(); assertEquals(expectedInputs.size(), inputPorts.size()); for (ActivityInputPort inputPort : inputPorts) { assertTrue("Wrong output : " + inputPort.getName(), expectedInputs.remove(inputPort .getName())); assertEquals(1, inputPort.getDepth()); } assertTrue(expectedInputs.size() == 0); Set<OutputPort> outputPorts = activity.getOutputPorts(); assertEquals(expectedOutputs.size(), outputPorts.size()); for (OutputPort outputPort : outputPorts) { assertTrue("Wrong output : " + outputPort.getName(), expectedOutputs.remove(outputPort .getName())); assertEquals(1, outputPort.getDepth()); } assertTrue(expectedOutputs.size() == 0); }
@Test public void testSimplePorts() throws Exception { WSDLActivityTranslator translator = new WSDLActivityTranslator(); Activity<?> activity = translator.doTranslation(processor); assertEquals("no inputs were expected",0,activity.getInputPorts().size()); assertEquals("2 outputs were expected (remember 1 extra for attachment list!).",2,activity.getOutputPorts().size()); List<String> portNames = new ArrayList<String>(); portNames.add("attachmentList"); portNames.add("getSupportedDBsReturn"); boolean found=false; for (OutputPort port : activity.getOutputPorts()) { if (port.getName().equals("getSupportedDBsReturn")) { found=true; } assertEquals("the port '"+port.getName()+"' should have a depth of 1 (i.e. a list)",1,port.getDepth()); } if (!found) { fail("There should be an output port named getSupportedDBsReturn"); } }
@Override public void addDynamicPorts(uk.org.taverna.scufl2.api.activity.Activity scufl2Activity, Configuration configuration) throws ActivityNotFoundException, ActivityConfigurationException { Activity<?> activity = createActivity(scufl2Activity.getConfigurableType(), configuration); Set<ActivityInputPort> inputPorts = activity.getInputPorts(); for (ActivityInputPort inputPort : inputPorts) { InputActivityPort inputActivityPort = new InputActivityPort(scufl2Activity, inputPort.getName()); inputActivityPort.setDepth(inputPort.getDepth()); } Set<OutputPort> outputPorts = activity.getOutputPorts(); for (OutputPort outputPort : outputPorts) { OutputActivityPort outputActivityPort = new OutputActivityPort(scufl2Activity, outputPort.getName()); outputActivityPort.setDepth(outputPort.getDepth()); outputActivityPort.setGranularDepth(outputPort.getGranularDepth()); } }