protected void parseOutputPortBinding( org.apache.taverna.scufl2.xml.OutputPortBinding original) throws ReaderException { ProcessorOutputPortBinding binding = new ProcessorOutputPortBinding(); mapBean(original.getAbout(), binding); binding.setBoundActivityPort(resolveBeanUri(original .getBindOutputActivityPort().getResource(), OutputActivityPort.class)); binding.setBoundProcessorPort(resolveBeanUri(original .getBindOutputProcessorPort().getResource(), OutputProcessorPort.class)); binding.setParent(getParserState().getCurrent(ProcessorBinding.class)); }
@Override public String toString() { return getBoundProcessorPort() + "<-" + getBoundActivityPort(); } }
/** * Constructs a <code>ProcessorOutputPortBinding</code> for the specified * <code>ProcessorBinding</code>. * * @param processorBinding * the <code>ProcessorBinding</code> to add this * <code>ProcessorOutputPortBinding</code> to. Can be * <code>null</code> * @param activityPort * the bound <code>OutputActivityPort</code>. Can be * <code>null</code> * @param processorPort * the bound <code>OutputProcessorPort</code>. Can be * <code>null</code> */ public ProcessorOutputPortBinding(ProcessorBinding processorBinding, OutputActivityPort activityPort, OutputProcessorPort processorPort) { setParent(processorBinding); setBoundActivityPort(activityPort); setBoundProcessorPort(processorPort); }
@Test public void testCorrectnessOfOutOfScopeProcessorPort1() { ProcessorBinding pb = new ProcessorBinding(); Processor processor = new Processor(); pb.setBoundProcessor(processor); ProcessorOutputPortBinding pipb = new ProcessorOutputPortBinding(); pipb.setParent(pb); OutputProcessorPort orphanPort = new OutputProcessorPort(); pipb.setBoundProcessorPort(orphanPort); CorrectnessValidator cv = new CorrectnessValidator(); ReportCorrectnessValidationListener rcvl = new ReportCorrectnessValidationListener(); cv.checkCorrectness(pipb, false, rcvl); Set<OutOfScopeValueProblem> outOfScopeValueProblems = rcvl.getOutOfScopeValueProblems(); boolean problem = false; for (OutOfScopeValueProblem nlp : outOfScopeValueProblems) { if (nlp.getBean().equals(pipb) && nlp.getFieldName().equals("boundProcessorPort") && nlp.getValue().equals(orphanPort)) { problem = true; } } assertTrue(problem); }
@Test public void testCorrectnessOfOutOfScopeActivityPort1() { ProcessorBinding pb = new ProcessorBinding(); Processor processor = new Processor(); pb.setBoundProcessor(processor); ProcessorOutputPortBinding pipb = new ProcessorOutputPortBinding(); pipb.setParent(pb); OutputActivityPort orphanPort = new OutputActivityPort(); pipb.setBoundActivityPort(orphanPort); CorrectnessValidator cv = new CorrectnessValidator(); ReportCorrectnessValidationListener rcvl = new ReportCorrectnessValidationListener(); cv.checkCorrectness(pipb, false, rcvl); Set<OutOfScopeValueProblem> outOfScopeValueProblems = rcvl.getOutOfScopeValueProblems(); boolean problem = false; for (OutOfScopeValueProblem nlp : outOfScopeValueProblems) { if (nlp.getBean().equals(pipb) && nlp.getFieldName().equals("boundActivityPort") && nlp.getValue().equals(orphanPort)) { problem = true; } } assertTrue(problem); }
String fromActivityOutput = mapping.getFrom(); String toProcessorOutput = mapping.getTo(); ProcessorOutputPortBinding processorOutputPortBinding = new ProcessorOutputPortBinding(); .getGranularDepth()); processorOutputPortBinding.setBoundActivityPort(outputActivityPort); processorOutputPortBinding .setBoundProcessorPort(outputProcessorPort); parserState.get().getCurrentProcessorBinding() .getOutputPortBindings().add(processorOutputPortBinding);
public ProcessorBinding makeProcessorBinding() { ProcessorBinding processorBinding = new ProcessorBinding(); processorBinding.setName("Hello"); processorBinding.setBoundProcessor(processor); processorBinding.setBoundActivity(activity); new ProcessorInputPortBinding(processorBinding, processorName, personName); new ProcessorOutputPortBinding(processorBinding, hello, processorGreeting); return processorBinding; }
@Test public void testCompletenessOfSpecifiedBoundActivityPort() { ProcessorOutputPortBinding pipb = new ProcessorOutputPortBinding(); pipb.setBoundActivityPort(new OutputActivityPort()); CorrectnessValidator cv = new CorrectnessValidator(); ReportCorrectnessValidationListener rcvl = new ReportCorrectnessValidationListener(); cv.checkCorrectness(pipb, true, rcvl); Set<NullFieldProblem> nullFieldProblems = rcvl.getNullFieldProblems(); boolean problem = false; for (NullFieldProblem nlp : nullFieldProblems) { if (nlp.getBean().equals(pipb) && nlp.getFieldName().equals("boundActivityPort")) { problem = true; } } assertFalse(problem); }
@Test public void testCompletenessOfSpecifiedBoundProcessorPort() { ProcessorOutputPortBinding pipb = new ProcessorOutputPortBinding(); pipb.setBoundProcessorPort(new OutputProcessorPort()); CorrectnessValidator cv = new CorrectnessValidator(); ReportCorrectnessValidationListener rcvl = new ReportCorrectnessValidationListener(); cv.checkCorrectness(pipb, true, rcvl); Set<NullFieldProblem> nullFieldProblems = rcvl.getNullFieldProblems(); boolean problem = false; for (NullFieldProblem nlp : nullFieldProblems) { if (nlp.getBean().equals(pipb) && nlp.getFieldName().equals("boundProcessorPort")) { problem = true; } } assertFalse(problem); }
@Override public void visitProcessorOutputPortBinding(ProcessorOutputPortBinding bean) { ProcessorBinding parent = bean.getParent(); OutputProcessorPort boundProcessorPort = bean.getBoundProcessorPort(); OutputActivityPort boundActivityPort = bean.getBoundActivityPort(); if (parent != null) { Processor boundProcessor = parent.getBoundProcessor(); if (boundProcessorPort != null) { Processor boundPortProcessor = findAncestral(boundProcessorPort, Processor.class); if ((boundProcessor == null) || !boundProcessor.equals(boundPortProcessor)) listener.outOfScopeValue(bean, "boundProcessorPort", boundProcessorPort); } Activity boundActivity = parent.getBoundActivity(); if (boundActivityPort != null) { Activity boundPortActivity = findAncestral(boundActivityPort, Activity.class); if ((boundActivity == null) || !boundActivity.equals(boundPortActivity)) listener.outOfScopeValue(bean, "boundActivityPort", boundActivityPort); } } if (checkComplete) { if (boundProcessorPort == null) listener.nullField(bean, "boundProcessorPort"); if (boundActivityPort == null) listener.nullField(bean, "boundActivityPort"); } }
@Test public void testCorrectnessOfInScopeProcessorPort() { ProcessorBinding pb = new ProcessorBinding(); Processor processor = new Processor(); pb.setBoundProcessor(processor); ProcessorOutputPortBinding pipb = new ProcessorOutputPortBinding(); pipb.setParent(pb); OutputProcessorPort port = new OutputProcessorPort(); port.setParent(processor); pipb.setBoundProcessorPort(port); CorrectnessValidator cv = new CorrectnessValidator(); ReportCorrectnessValidationListener rcvl = new ReportCorrectnessValidationListener(); cv.checkCorrectness(pipb, false, rcvl); Set<OutOfScopeValueProblem> outOfScopeValueProblems = rcvl.getOutOfScopeValueProblems(); boolean problem = false; for (OutOfScopeValueProblem nlp : outOfScopeValueProblems) { if (nlp.getBean().equals(pipb) && nlp.getFieldName().equals("boundProcessorPort") && nlp.getValue().equals(port)) { problem = true; } } assertFalse(problem); }
@Test public void testCorrectnessOfInScopeActivityPort() { ProcessorBinding pb = new ProcessorBinding(); Activity activity = new Activity(); pb.setBoundActivity(activity); ProcessorOutputPortBinding pipb = new ProcessorOutputPortBinding(); pipb.setParent(pb); OutputActivityPort port = new OutputActivityPort(); port.setParent(activity); pipb.setBoundActivityPort(port); CorrectnessValidator cv = new CorrectnessValidator(); ReportCorrectnessValidationListener rcvl = new ReportCorrectnessValidationListener(); cv.checkCorrectness(pipb, false, rcvl); Set<OutOfScopeValueProblem> outOfScopeValueProblems = rcvl.getOutOfScopeValueProblems(); boolean problem = false; for (OutOfScopeValueProblem nlp : outOfScopeValueProblems) { if (nlp.getBean().equals(pipb) && nlp.getFieldName().equals("boundActivityPort") && nlp.getValue().equals(port)) { problem = true; } } assertFalse(problem); }
@Test public void testCompletenessOfMissingBoundProcessorPort() { ProcessorOutputPortBinding pipb = new ProcessorOutputPortBinding(); CorrectnessValidator cv = new CorrectnessValidator(); ReportCorrectnessValidationListener rcvl = new ReportCorrectnessValidationListener(); cv.checkCorrectness(pipb, true, rcvl); Set<NullFieldProblem> nullFieldProblems = rcvl.getNullFieldProblems(); assertFalse(nullFieldProblems.isEmpty()); boolean problem = false; for (NullFieldProblem nlp : nullFieldProblems) { if (nlp.getBean().equals(pipb) && nlp.getFieldName().equals("boundProcessorPort")) { problem = true; } } assertTrue(problem); }
private void createDefaultProcessorBinding() { Processor p = parserState.get().getCurrentProcessor(); Activity a = parserState.get().getCurrentActivity(); ProcessorBinding pb = new ProcessorBinding(); pb.setParent(parserState.get().getCurrentProfile()); pb.setActivityPosition(0); pb.setBoundProcessor(p); pb.setBoundActivity(a); for (InputActivityPort iap : a.getInputPorts()) { InputProcessorPort ipp = findOrCreateProcessorInputPort(p, iap.getName(), iap.getDepth()); ProcessorInputPortBinding portBinding = new ProcessorInputPortBinding(); portBinding.setParent(pb); portBinding.setBoundActivityPort(iap); portBinding.setBoundProcessorPort(ipp); } for (OutputActivityPort oap : a.getOutputPorts()) { OutputProcessorPort opp = findOrCreateProcessorOutputPort(p, oap.getName(), oap.getDepth(), oap.getGranularDepth()); ProcessorOutputPortBinding portBinding = new ProcessorOutputPortBinding(); portBinding.setParent(pb); portBinding.setBoundActivityPort(oap); portBinding.setBoundProcessorPort(opp); } }
pb.setBoundProcessor(processor); ProcessorOutputPortBinding pipb = new ProcessorOutputPortBinding(); pipb.setParent(pb); elsewherePort.setParent(otherProcessor); pipb.setBoundProcessorPort(elsewherePort);
pb.setBoundActivity(activity); ProcessorOutputPortBinding pipb = new ProcessorOutputPortBinding(); pipb.setParent(pb); elsewherePort.setParent(otherActivity); pipb.setBoundActivityPort(elsewherePort);
private void processorOutputPortBinding(ProcessorOutputPortBinding node) { org.apache.taverna.scufl2.xml.OutputPortBinding outputBinding = objectFactory .createOutputPortBinding(); outputBinding.setAbout(uri(node)); outputBinding.setBindOutputActivityPort(resource(uri(node .getBoundActivityPort()))); outputBinding.setBindOutputProcessorPort(resource(uri(node .getBoundProcessorPort()))); OutputPortBinding b = objectFactory .createProcessorBindingOutputPortBinding(); b.setOutputPortBinding(outputBinding); processorBindingElem.getOutputPortBinding().add(b); }
@Test public void testCompletenessOfMissingBoundActivityPort() { ProcessorOutputPortBinding pipb = new ProcessorOutputPortBinding(); CorrectnessValidator cv = new CorrectnessValidator(); ReportCorrectnessValidationListener rcvl = new ReportCorrectnessValidationListener(); cv.checkCorrectness(pipb, true, rcvl); Set<NullFieldProblem> nullFieldProblems = rcvl.getNullFieldProblems(); assertFalse(nullFieldProblems.isEmpty()); boolean problem = false; for (NullFieldProblem nlp : nullFieldProblems) { if (nlp.getBean().equals(pipb) && nlp.getFieldName().equals("boundActivityPort")) { problem = true; } } assertTrue(problem); }
public void removePortsBindingForUnknownPorts(ProcessorBinding binding) { // First, remove ports no longer owned by processor Iterator<ProcessorInputPortBinding> inputBindings = binding .getInputPortBindings().iterator(); Activity activity = binding.getBoundActivity(); Processor processor = binding.getBoundProcessor(); for (ProcessorInputPortBinding ip : iterable(inputBindings)) { if (!activity.getInputPorts().contains(ip.getBoundActivityPort())) { inputBindings.remove(); continue; } if (!processor.getInputPorts().contains(ip.getBoundProcessorPort())) { inputBindings.remove(); continue; } } Iterator<ProcessorOutputPortBinding> outputBindings = binding .getOutputPortBindings().iterator(); for (ProcessorOutputPortBinding op : iterable(outputBindings)) { if (!activity.getOutputPorts().contains(op.getBoundActivityPort())) { outputBindings.remove(); continue; } if (!processor.getOutputPorts() .contains(op.getBoundProcessorPort())) { outputBindings.remove(); continue; } } }
.getBoundProcessor().getOutputPorts() .getByName(secondLink); new ProcessorOutputPortBinding(processorBinding, activityPort, processorPort);