@Override public String toString() { return getClass().getSimpleName() + " " + getBoundProcessor() + " " + getBoundActivity(); }
public List<ProcessorBinding> processorBindingsForProcessor( Processor processor, Profile profile) { List<ProcessorBinding> bindings = new ArrayList<>(); for (ProcessorBinding pb : profile.getProcessorBindings()) if (pb.getBoundProcessor().equals(processor)) bindings.add(pb); Collections.sort(bindings, new BindingComparator()); return bindings; }
public Set<Processor> getConstants(Workflow workflow, Profile profile) { Set<Processor> procs = new LinkedHashSet<>(); for (Configuration config : profile.getConfigurations()) { Configurable configurable = config.getConfigures(); if (!CONSTANT.equals(configurable.getType()) || !(configurable instanceof Activity)) continue; for (ProcessorBinding bind : processorBindingsToActivity((Activity) configurable)) procs.add(bind.getBoundProcessor()); } return procs; } }
+ bean); URI procPortUri = relativeUriForBean(procPort, processorPortBinding.getParent().getBoundProcessor()); return parentUri.resolve(procPortUri); } else
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; } } }
@Override protected void cloneInto(WorkflowBean clone, Cloning cloning) { super.cloneInto(clone, cloning); ProcessorBinding cloneBinding = (ProcessorBinding) clone; cloneBinding.setActivityPosition(getActivityPosition()); cloneBinding.setBoundProcessor(cloning .cloneOrOriginal(getBoundProcessor())); cloneBinding.setBoundActivity(cloning .cloneOrOriginal(getBoundActivity())); } }
if (level == Level.InputPortBindings) { InputProcessorPort processorPort = processorBinding .getBoundProcessor().getInputPorts() .getByName(firstLink); InputActivityPort activityPort = processorBinding .getByName(firstLink); OutputProcessorPort processorPort = processorBinding .getBoundProcessor().getOutputPorts() .getByName(secondLink); new ProcessorOutputPortBinding(processorBinding,
private void processorBinding(ProcessorBinding node) { processorBindingElem = objectFactory.createProcessorBinding(); processorBindingElem.setAbout(uri(node)); processorBindingElem.setName(node.getName()); processorBindingElem.setBindActivity(resource(uri(node .getBoundActivity()))); processorBindingElem.setBindProcessor(resource(uri(node .getBoundProcessor()))); if (node.getActivityPosition() != null) { ActivityPosition value = new ActivityPosition(); value.setDatatype(value.getDatatype()); value.setValue(node.getActivityPosition()); processorBindingElem.setActivityPosition(value); } profileElem.getProcessorBinding().add(resource(uri(node))); doc.getAny().add(processorBindingElem); }
@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"); } }
public void bindActivityToProcessorByMatchingPorts(ProcessorBinding binding) { Activity activity = binding.getBoundActivity(); Processor processor = binding.getBoundProcessor(); for (InputActivityPort activityPort : activity.getInputPorts()) { InputProcessorPort processorPort = processor.getInputPorts() .getByName(activityPort.getName()); if (processorPort != null && processorPortBindingInternalInBinding(processorPort, binding) == null) new ProcessorInputPortBinding(binding, processorPort, activityPort); } for (OutputProcessorPort processorPort : processor.getOutputPorts()) { OutputActivityPort activityPort = activity.getOutputPorts() .getByName(processorPort.getName()); if (activityPort != null && processorPortBindingInternalInBinding(activityPort, binding) == null) new ProcessorOutputPortBinding(binding, activityPort, processorPort); } }
Processor boundProcessor = parent.getBoundProcessor(); if (boundProcessorPort != null) { Processor boundPortProcessor = findAncestral(
newLine(3); append("Processor"); String name = " '" + escapeName(pb.getBoundProcessor().getParent().getName()); name = name + ":" + escapeName(pb.getBoundProcessor().getName()) + "'"; append(name);
@Override public void visitProcessorBinding(ProcessorBinding bean) { Processor boundProcessor = bean.getBoundProcessor(); Activity boundActivity = bean.getBoundActivity(); WorkflowBundle workflowBundle = findAncestral(bean,
@Test public void cloneProfile() throws Exception { Profile original = originalWfBundle.getMainProfile(); assertEquals(originalWfBundle, original.getParent()); Profile clone = (Profile) original.clone(); assertNull(clone.getParent()); assertEquals(original.getName(), clone.getName()); ProcessorBinding originalBinding = original.getProcessorBindings() .getByName("Hello"); ProcessorBinding cloneBinding = clone.getProcessorBindings().getByName( "Hello"); assertNotSame(originalBinding, cloneBinding); assertNotSame(originalBinding.getBoundActivity(), cloneBinding.getBoundActivity()); // but processor is the same, as we did not clone the workflow assertSame(originalBinding.getBoundProcessor(), cloneBinding.getBoundProcessor()); }
@Test public void processorBinding() throws Exception { assertEquals(1, profile.getProcessorBindings().size()); ProcessorBinding hello = profile.getProcessorBindings().getByName( "Hello"); assertEquals(profile.getActivities().getByName("HelloScript"), hello.getBoundActivity()); assertEquals(bundle.getMainWorkflow().getProcessors() .getByName("Hello"), hello.getBoundProcessor()); assertEquals("Hello", hello.getName()); assertEquals(10, hello.getActivityPosition().intValue()); }
@Test public void createProcessorFromActivity() throws Exception { Profile profile = new Profile(); Activity a = new Activity(); a.setParent(profile); new InputActivityPort(a, "in1"); new InputActivityPort(a, "in2").setDepth(1); new OutputActivityPort(a, "out1"); new OutputActivityPort(a, "out2").setDepth(0); OutputActivityPort aOut3 = new OutputActivityPort(a, "out3"); aOut3.setDepth(2); aOut3.setGranularDepth(1); ProcessorBinding binding = scufl2Tools.createProcessorAndBindingFromActivity(a); Processor p = binding.getBoundProcessor(); assertEquals(profile, binding.getParent()); assertEquals(2, p.getInputPorts().size()); assertEquals(3, p.getOutputPorts().size()); assertEquals(2, binding.getInputPortBindings().size()); assertEquals(3, binding.getOutputPortBindings().size()); assertEquals(a, binding.getBoundActivity()); assertEquals(p, binding.getBoundProcessor()); }
@Test public void createActivityFromProcessor() throws Exception { Processor p = new Processor(); new InputProcessorPort(p, "in1"); new InputProcessorPort(p, "in2").setDepth(1); new OutputProcessorPort(p, "out1"); new OutputProcessorPort(p, "out2").setDepth(0); OutputProcessorPort pOut3 = new OutputProcessorPort(p, "out3"); pOut3.setDepth(2); pOut3.setGranularDepth(1); Profile profile = new Profile(); Activity a = scufl2Tools.createActivityFromProcessor(p, profile); assertEquals(profile, a.getParent()); ProcessorBinding binding = scufl2Tools.processorBindingForProcessor(p, profile); assertEquals(2, a.getInputPorts().size()); assertEquals(3, a.getOutputPorts().size()); assertEquals(2, binding.getInputPortBindings().size()); assertEquals(3, binding.getOutputPortBindings().size()); assertEquals(a, binding.getBoundActivity()); assertEquals(p, binding.getBoundProcessor()); }
assertEquals(p, binding.getBoundProcessor()); assertEquals(1, binding.getInputPortBindings().size()); ProcessorInputPortBinding inBinding = binding.getInputPortBindings().iterator().next();