public Processor createConstant(Workflow workflow, Profile profile, String name) { Processor processor = new Processor(null, name); workflow.getProcessors().addWithUniqueName(processor); processor.setParent(workflow); OutputProcessorPort valuePort = new OutputProcessorPort(processor, CONSTANT_VALUE_PORT); valuePort.setDepth(0); valuePort.setGranularDepth(0); Activity activity = createActivityFromProcessor(processor, profile); activity.setType(CONSTANT); createConfigurationFor(activity, CONSTANT_CONFIG); return processor; }
public void clearWorkflowData() { for (DataLink dl : workflow.getDataLinks()) { dataLinkResolvedDepthMap.remove(dl); } for (InputWorkflowPort iwp : workflow.getInputPorts()) { senderDataLinkMap.remove(iwp); portResolvedDepthMap.remove(iwp); } for (Processor p : workflow.getProcessors()) { for (InputProcessorPort ipp : p.getInputPorts()) { portResolvedDepthMap.remove(ipp); receiverDataLinkMap.remove(ipp); } for (OutputProcessorPort opp : p.getOutputPorts()) { portResolvedDepthMap.remove(opp); senderDataLinkMap.remove(opp); } } for (OutputWorkflowPort owp : workflow.getOutputPorts()) { portResolvedDepthMap.remove(owp); receiverDataLinkMap.remove(owp); } }
@Override public void setParent(Processor parent) { if (this.parent == parent) { return; } if (this.parent != null && this.parent.getIterationStrategyStack() == this) { this.parent.setIterationStrategyStack(null); } this.parent = parent; if (parent != null && parent.getIterationStrategyStack() != this) { parent.setIterationStrategyStack(this); } }
@SuppressWarnings("unchecked") public List<BlockingControlLink> controlLinksBlocking(Processor blocked) { List<BlockingControlLink> controlLinks = new ArrayList<BlockingControlLink>(); for (ControlLink link : blocked.getParent().getControlLinks()) { if (!(link instanceof BlockingControlLink)) { continue; } BlockingControlLink blockingControlLink = (BlockingControlLink) link; if (blockingControlLink.getBlock().equals(blocked)) { controlLinks.add(blockingControlLink); } } Collections.sort(controlLinks); return controlLinks; }
Processor p = new Processor(); scufl2Tools.createProcessorPortsFromActivity(p, a); assertEquals(2, p.getInputPorts().size()); InputProcessorPort pIn1 = p.getInputPorts().getByName("in1"); assertNull(pIn1.getDepth()); InputProcessorPort pIn2 = p.getInputPorts().getByName("in2"); assertEquals(1, pIn2.getDepth().intValue()); assertEquals(3, p.getOutputPorts().size()); OutputProcessorPort pOut1 = p.getOutputPorts().getByName("out1"); assertEquals(null, pOut1.getDepth()); assertEquals(null, pOut1.getGranularDepth()); OutputProcessorPort pOut2 = p.getOutputPorts().getByName("out2"); assertEquals(0, pOut2.getDepth().intValue()); assertEquals(null, pOut2.getGranularDepth()); OutputProcessorPort pOut3 = p.getOutputPorts().getByName("out3"); assertEquals(2, pOut3.getDepth().intValue()); assertEquals(1, pOut3.getGranularDepth().intValue());
&& (level == Level.Workflow || level == Level.Processor)) { level = Level.Processor; processor = new Processor(); String processorName = parseName(scanner); processor.setName(processorName); processor.setParent(workflow); workflow.getProcessors().add(processor); return; Processor proc = workflow.getProcessors() .getByName(procPort[0]); senderPort = proc.getOutputPorts().getByName(procPort[1]); } else { senderPort = workflow.getInputPorts().getByName(firstLink); Processor proc = workflow.getProcessors() .getByName(procPort[0]); receiverPort = proc.getInputPorts().getByName(procPort[1]); } else { receiverPort = workflow.getOutputPorts().getByName(secondLink); if (level == Level.InputPortBindings) { InputProcessorPort processorPort = processorBinding .getBoundProcessor().getInputPorts() .getByName(firstLink); InputActivityPort activityPort = processorBinding .getByName(firstLink); OutputProcessorPort processorPort = processorBinding
public Processor makeProcessor2() { wait4me = new Processor(workflow, "wait4me"); // FIXME: Should not need to make default iteration stack makeIterationStrategyStack().setParent(wait4me); return processor; }
@Test public void nullParentNotCopied() throws Exception { Workflow wf = new Workflow(); Processor orphan = new Processor(); orphan.setName("orphan"); // NOTE: NOT calling // orphan.setParent(wf) wf.getProcessors().add(orphan); assertNull(orphan.getParent()); Workflow clone = (Workflow) wf.clone(); assertTrue(clone.getProcessors().isEmpty()); orphan.setParent(wf); Workflow clone2 = (Workflow) wf.clone(); assertEquals(Collections.singleton("orphan"), clone2.getProcessors() .getNames()); }
@Test public void cloneProcessor() throws Exception { Workflow wf = originalWfBundle.getMainWorkflow(); Processor original = wf.getProcessors().getByName("Hello"); Processor clone = (Processor) original.clone(); assertEquals(clone.getName(), original.getName()); assertNotNull(original.getParent()); assertNull(clone.getParent()); wf.getProcessors().addWithUniqueName(clone); assertTrue(!clone.getName().equals(original.getName())); // Now it is safe to set the parent without loosing original clone.setParent(wf); assertSame(original, wf.getProcessors().getByName("Hello")); assertSame(clone, wf.getProcessors().getByName(clone.getName())); }
@Test public void testCorrectnessOfMissingIterationStrategyStack() { Processor p = new Processor(); p.setIterationStrategyStack(null); CorrectnessValidator cv = new CorrectnessValidator(); ReportCorrectnessValidationListener rcvl = new ReportCorrectnessValidationListener(); cv.checkCorrectness(p, false, rcvl); Set<NullFieldProblem> nullFieldProblems = rcvl.getNullFieldProblems(); assertEquals(Collections.EMPTY_SET, nullFieldProblems); // only done when completeness check }
@Override public boolean accept(Visitor visitor) { if (visitor.visitEnter(this)) { List<Iterable<? extends WorkflowBean>> children = new ArrayList<Iterable<? extends WorkflowBean>>(); children.add(getInputPorts()); children.add(getOutputPorts()); outer: for (Iterable<? extends WorkflowBean> it : children) { for (WorkflowBean bean : it) { if (!bean.accept(visitor)) { break outer; } } } if (getIterationStrategyStack() != null) { getIterationStrategyStack().accept(visitor); } } return visitor.visitLeave(this); }
@Test public void updatePortBindingByMatchingPorts() throws Exception { Processor p = new Processor(); new InputProcessorPort(p, "in1"); new InputProcessorPort(p, "in2"); new OutputActivityPort(a, "new5"); p.getInputPorts().removeByName("in2"); a.getOutputPorts().removeByName("out1");
@Override public void visitProcessor(Processor bean) { if (checkComplete) { if (bean.getIterationStrategyStack() == null) { listener.nullField(bean, "iterationStrategyStack"); } } }
@Override public void setParent(Processor parent) { if (this.parent != null && this.parent != parent) { this.parent.getInputPorts().remove(this); } this.parent = parent; if (parent != null) { parent.getInputPorts().add(this); } }
@Test public void setParents() throws Exception { // Deliberately orphan a profile and a processor Profile profile = workflowBundle.getProfiles().getByName("tavernaWorkbench"); profile.setParent(null); workflowBundle.getProfiles().add(profile); processor.setParent(null); workflow.getProcessors().add(processor); assertNull(processor.getParent()); assertNull(profile.getParent()); scufl2Tools.setParents(workflowBundle); assertNotNull(processor.getParent()); assertNotNull(profile.getParent()); }
@Override public void setParent(Processor parent) { if (this.parent != null && this.parent != parent) { this.parent.getOutputPorts().remove(this); } this.parent = parent; if (parent != null) { parent.getOutputPorts().add(this); } }