当前位置: 首页>>代码示例>>Java>>正文


Java Workflow.getControlLinks方法代码示例

本文整理汇总了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);
}
 
开发者ID:apache,项目名称:incubator-taverna-language,代码行数:25,代码来源:ControlLinkCompareTest.java

示例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());
}
 
开发者ID:apache,项目名称:incubator-taverna-workbench,代码行数:26,代码来源:AbstractTestHelper.java

示例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();
		}
	}
}
 
开发者ID:apache,项目名称:incubator-taverna-engine,代码行数:14,代码来源:WorkflowToDataflowMapper.java

示例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");
	}
}
 
开发者ID:apache,项目名称:incubator-taverna-language,代码行数:29,代码来源:CorrectnessVisitor.java

示例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);

}
 
开发者ID:apache,项目名称:incubator-taverna-workbench,代码行数:48,代码来源:DataflowMerger.java

示例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);		
}
 
开发者ID:apache,项目名称:incubator-taverna-language,代码行数:43,代码来源:ControlLinkCompareTest.java

示例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));
}
 
开发者ID:apache,项目名称:incubator-taverna-workbench,代码行数:53,代码来源:WorkflowExplorerTreeModel.java


注:本文中的org.apache.taverna.scufl2.api.core.Workflow.getControlLinks方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。