本文整理汇总了Java中org.apache.taverna.scufl2.api.core.Workflow.getControlLinks方法的典型用法代码示例。如果您正苦于以下问题:Java Workflow.getControlLinks方法的具体用法?Java Workflow.getControlLinks怎么用?Java Workflow.getControlLinks使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.taverna.scufl2.api.core.Workflow
的用法示例。
在下文中一共展示了Workflow.getControlLinks方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: expectedOrder
import org.apache.taverna.scufl2.api.core.Workflow; //导入方法依赖的package包/类
@SuppressWarnings("unchecked")
@Test
public void expectedOrder() throws Exception {
Workflow wf = new Workflow();
wf.setName("wf");
Processor a = new Processor(wf, "a");
Processor b = new Processor(wf, "b");
Processor c = new Processor(wf, "c");
Processor d = new Processor(wf, "d");
BlockingControlLink b_blocks_c = new BlockingControlLink(c, b);
BlockingControlLink a_blocks_c = new BlockingControlLink(c, a);
BlockingControlLink a_blocks_b = new BlockingControlLink(b, a);
BlockingControlLink b_blocks_d = new BlockingControlLink(d, b);
BlockingControlLink a_blocks_d = new BlockingControlLink(d, a);
ArrayList<ControlLink> links = new ArrayList<ControlLink>(wf.getControlLinks());
assertEquals(Arrays.asList(a_blocks_b, a_blocks_c, a_blocks_d, b_blocks_c, b_blocks_d), links);
Collections.shuffle(links);
Collections.sort(links);
assertEquals(Arrays.asList(a_blocks_b, a_blocks_c, a_blocks_d, b_blocks_c, b_blocks_d), links);
}
示例2: assertHasConditionals
import org.apache.taverna.scufl2.api.core.Workflow; //导入方法依赖的package包/类
protected void assertHasConditionals(Workflow dataflow,
String... expectedConditionalDef) {
Set<String> expectedConditionals = new HashSet<String>();
for (String expected : expectedConditionalDef) {
expectedConditionals.add(expected);
}
Set<String> foundConditionals = new HashSet<String>();
for (ControlLink c : dataflow.getControlLinks()) {
if (c instanceof BlockingControlLink) {
BlockingControlLink bcl = (BlockingControlLink) c;
foundConditionals.add(bcl.getUntilFinished().getName() + ";"
+ bcl.getBlock().getName());
}
}
Set<String> extras = new HashSet<String>(foundConditionals);
extras.removeAll(expectedConditionals);
assertTrue("Unexpected conditional " + extras, extras.isEmpty());
Set<String> missing = new HashSet<String>(expectedConditionals);
missing.removeAll(foundConditionals);
assertTrue("Could not find conditional " + missing, missing.isEmpty());
}
示例3: addControlLinks
import org.apache.taverna.scufl2.api.core.Workflow; //导入方法依赖的package包/类
private void addControlLinks(Workflow workflow) throws EditException {
for (ControlLink controlLink : workflow.getControlLinks()) {
if (controlLink instanceof BlockingControlLink) {
BlockingControlLink blockingControlLink = (BlockingControlLink) controlLink;
Processor untilFinished = blockingControlLink
.getUntilFinished();
Processor block = blockingControlLink.getBlock();
edits.getCreateConditionEdit(
workflowToDataflowProcessors.get(untilFinished),
workflowToDataflowProcessors.get(block)).doEdit();
}
}
}
示例4: visitWorkflow
import org.apache.taverna.scufl2.api.core.Workflow; //导入方法依赖的package包/类
@Override
public void visitWorkflow(Workflow bean) {
Set<DataLink> dataLinks = bean.getDataLinks();
Set<ControlLink> controlLinks = bean.getControlLinks();
// ports are done in Ported
NamedSet<Processor> processors = bean.getProcessors();
URI workflowIdentifier = bean.getIdentifier();
if (workflowIdentifier != null) {
if (!workflowIdentifier.isAbsolute())
listener.nonAbsoluteURI(bean, "workflowIdentifier", workflowIdentifier);
else if (workflowIdentifier.getScheme().equals("file"))
listener.nonAbsoluteURI(bean, "workflowIdentifier", workflowIdentifier);
}
if (checkComplete) {
if (dataLinks == null)
listener.nullField(bean, "dataLinks");
if (controlLinks == null)
listener.nullField(bean, "controlLinks");
if (processors == null)
listener.nullField(bean, "processors");
if (workflowIdentifier == null)
listener.nullField(bean, "workflowIdentifier");
}
}
示例5: getMergeEdit
import org.apache.taverna.scufl2.api.core.Workflow; //导入方法依赖的package包/类
/**
* Make an {@link Edit} that when performed merges the given source dataflow
* into the destination dataflow.
* <p>
* Internally a copy is made of the source dataflow, to avoid modifying the
* links and processors.
*
* @param sourceWorkflow
* Dataflow to merge from
* @param prefix
* A prefix which will be inserted in front of the names for the
* merged workflow components.
* @return An edit that can perform and undo the insertion of the components
* from the source dataflow.
* @throws MergeException
* If the merge cannot be performed.
*/
public CompoundEdit getMergeEdit(Workflow sourceWorkflow, String prefix)
throws MergeException {
List<Edit<?>> compoundEdit = new ArrayList<>();
Workflow workflow = copyWorkflow(sourceWorkflow);
for (InputWorkflowPort input : workflow.getInputPorts()) {
destinationWorkflow.getInputPorts().addWithUniqueName(input);
destinationWorkflow.getInputPorts().remove(input);
compoundEdit.add(new AddWorkflowInputPortEdit(destinationWorkflow, input));
}
for (OutputWorkflowPort output : workflow.getOutputPorts()) {
destinationWorkflow.getOutputPorts().addWithUniqueName(output);
destinationWorkflow.getOutputPorts().remove(output);
compoundEdit.add(new AddWorkflowOutputPortEdit(destinationWorkflow, output));
}
for (Processor processor : workflow.getProcessors()) {
processor.setName(prefix + processor.getName());
compoundEdit.add(new AddProcessorEdit(destinationWorkflow, processor));
}
for (DataLink dataLink : workflow.getDataLinks()) {
compoundEdit.add(new AddDataLinkEdit(destinationWorkflow, dataLink));
}
for (ControlLink controlLink : workflow.getControlLinks()) {
compoundEdit.add(new AddChildEdit<Workflow>(destinationWorkflow, controlLink));
}
return new CompoundEdit(compoundEdit);
}
示例6: nullSupport
import org.apache.taverna.scufl2.api.core.Workflow; //导入方法依赖的package包/类
@SuppressWarnings("unchecked")
@Test
public void nullSupport() throws Exception {
Workflow wf = new Workflow();
wf.setName("wf");
Processor a = new Processor(wf, "a");
Processor b = new Processor(wf, "b");
Processor c = new Processor(wf, "c");
Processor d = new Processor(wf, "d");
BlockingControlLink b_blocks_c = new BlockingControlLink(c, b);
BlockingControlLink null_blocks_c = new BlockingControlLink();
null_blocks_c.setBlock(c);
null_blocks_c.setParent(wf);
BlockingControlLink a_blocks_b = new BlockingControlLink(b, a);
BlockingControlLink b_blocks_null = new BlockingControlLink();
b_blocks_null.setUntilFinished(b);
b_blocks_null.setParent(wf);
BlockingControlLink null_blocks_null = new BlockingControlLink();
null_blocks_null.setParent(wf);
ArrayList<ControlLink> links = new ArrayList<ControlLink>(wf.getControlLinks());
assertEquals(Arrays.asList(null_blocks_null, null_blocks_c, a_blocks_b, b_blocks_null, b_blocks_c), links);
Collections.shuffle(links);
Collections.sort(links);
BlockingControlLink a_blocks_d_no_parent = new BlockingControlLink();
a_blocks_d_no_parent.setBlock(d);
a_blocks_d_no_parent.setUntilFinished(a);
// no setParent
links.add(a_blocks_d_no_parent);
Collections.shuffle(links);
Collections.sort(links);
assertEquals(Arrays.asList(null_blocks_null, null_blocks_c, a_blocks_b, a_blocks_d_no_parent, b_blocks_null, b_blocks_c), links);
}
示例7: createTree
import org.apache.taverna.scufl2.api.core.Workflow; //导入方法依赖的package包/类
/**
* Creates the tree model from a given workflow, for a given tree root.
*/
private void createTree(Workflow df, DefaultMutableTreeNode root) {
// Create the four main node groups - inputs, outputs,
// services, data links, control links and merges.
DefaultMutableTreeNode inputs = new DefaultMutableTreeNode(INPUTS);
DefaultMutableTreeNode outputs = new DefaultMutableTreeNode(OUTPUTS);
DefaultMutableTreeNode services = new DefaultMutableTreeNode(PROCESSORS);
DefaultMutableTreeNode datalinks = new DefaultMutableTreeNode(DATALINKS);
DefaultMutableTreeNode controllinks = new DefaultMutableTreeNode(CONTROLLINKS);
// Attach them to the root of the tree
root.add(inputs);
root.add(outputs);
root.add(services);
root.add(datalinks);
root.add(controllinks);
// Populate the workflow's inputs.
for (InputWorkflowPort dataflowInput : df.getInputPorts())
inputs.add(new DefaultMutableTreeNode(dataflowInput));
// Populate the workflow's outputs.
for (OutputWorkflowPort dataflowOutput : df.getOutputPorts())
outputs.add(new DefaultMutableTreeNode(dataflowOutput));
/*
* Populate the workflow's processors (which in turn can contain a
* nested workflow).
*/
NamedSet<Processor> processorsList = df.getProcessors();
for (Processor processor : processorsList) {
DefaultMutableTreeNode processorNode = new DefaultMutableTreeNode(
processor);
services.add(processorNode);
// A processor node can have children (input and output ports).
for (InputProcessorPort inputPort : processor.getInputPorts())
processorNode.add(new DefaultMutableTreeNode(inputPort));
for (OutputProcessorPort outputPort : processor.getOutputPorts())
processorNode.add(new DefaultMutableTreeNode(outputPort));
}
// Populate the workflow's data links.
for (DataLink datalink: df.getDataLinks())
datalinks.add(new DefaultMutableTreeNode(datalink));
// Populate the workflow's control links.
for (ControlLink controlLink : df.getControlLinks())
controllinks.add(new DefaultMutableTreeNode(controlLink));
}