use of org.knime.core.node.Node in project knime-core by knime.
the class TableSorterTest method setUp.
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
NodeFactory<NodeModel> dummyFactory = (NodeFactory) new VirtualParallelizedChunkPortObjectInNodeFactory(new PortType[0]);
m_exec = new ExecutionContext(new DefaultNodeProgressMonitor(), new Node(dummyFactory), SingleNodeContainer.MemoryPolicy.CacheOnDisc, new HashMap<Integer, ContainerTable>());
}
use of org.knime.core.node.Node in project knime-core by knime.
the class FileNativeNodeContainerPersistor method preLoadNodeContainer.
/**
* {@inheritDoc}
*/
@Override
public void preLoadNodeContainer(final WorkflowPersistor parentPersistor, final NodeSettingsRO parentSettings, final LoadResult result) throws InvalidSettingsException, IOException {
super.preLoadNodeContainer(parentPersistor, parentSettings, result);
m_parentPersistor = parentPersistor;
NodeSettingsRO settings = getNodeSettings();
String error;
NodeAndBundleInformation nodeInfo;
try {
nodeInfo = loadNodeFactoryInfo(parentSettings, settings);
} catch (InvalidSettingsException e) {
setDirtyAfterLoad();
throw e;
}
NodeSettingsRO additionalFactorySettings;
try {
additionalFactorySettings = loadAdditionalFactorySettings(settings);
} catch (Exception e) {
error = "Unable to load additional factory settings for \"" + nodeInfo + "\"";
setDirtyAfterLoad();
throw new InvalidSettingsException(error, e);
}
NodeFactory<NodeModel> nodeFactory;
try {
nodeFactory = loadNodeFactory(nodeInfo.getFactoryClass());
} catch (Exception e) {
// setDirtyAfterLoad(); // don't set dirty, missing node placeholder will be used instead
throw new NodeFactoryUnknownException(nodeInfo, additionalFactorySettings, e);
}
try {
if (additionalFactorySettings != null) {
nodeFactory.loadAdditionalFactorySettings(additionalFactorySettings);
}
} catch (Exception e) {
error = "Unable to load additional factory settings into node factory (node \"" + nodeInfo + "\")";
getLogger().error(error);
throw new NodeFactoryUnknownException(error, nodeInfo, additionalFactorySettings, e);
}
m_nodeAndBundleInformation = nodeInfo;
m_node = new Node(nodeFactory);
}
use of org.knime.core.node.Node in project knime-core by knime.
the class FileWorkflowPersistor method fixDestPortIfNecessary.
/**
* Fixes destination port index if necessary. For v1.x flows, e.g., the indices of model and data ports were
* swapped. Subclasses will overwrite this method (e.g. to enable loading flows, which did not have the mandatory
* flow variable port object).
*
* @param destPersistor The persistor of the destination node.
* @param c The connection template to be fixed.
*/
void fixDestPortIfNecessary(final NodeContainerPersistor destPersistor, final ConnectionContainerTemplate c) {
if (getLoadVersion().isOlderThan(LoadVersion.V220)) {
if (destPersistor instanceof FileNativeNodeContainerPersistor) {
FileNativeNodeContainerPersistor pers = (FileNativeNodeContainerPersistor) destPersistor;
// only test if the node is not missing (missing node placeholder)
if (pers.getNode() != null && pers.shouldFixModelPortOrder()) {
Node node = pers.getNode();
int modelPortCount = 0;
// first port is flow variable input port
for (int i = 1; i < node.getNrInPorts(); i++) {
PortType portType = node.getInputType(i);
if (!portType.getPortObjectClass().isAssignableFrom(BufferedDataTable.class) && // ports in legacy workflows (not connected anyway)
!portType.isOptional()) {
modelPortCount += 1;
}
}
if (modelPortCount == node.getNrInPorts()) {
return;
}
int destPort = c.getDestPort();
if (destPort < modelPortCount) {
// c represent data connection
c.setDestPort(destPort + modelPortCount);
} else {
// c represents model connection
c.setDestPort(destPort - modelPortCount);
}
}
// correct port index only for ordinary nodes (no new flow
// variable ports on metanodes)
int index = c.getDestPort();
c.setDestPort(index + 1);
}
} else if (getLoadVersion().isOlderThan(LoadVersion.V220)) {
// v2.1 and before did not have flow variable ports (index 0)
if (destPersistor instanceof FileSingleNodeContainerPersistor) {
// correct port index only for ordinary nodes (no new flow
// variable ports on metanodes)
int index = c.getDestPort();
c.setDestPort(index + 1);
}
}
}
Aggregations