package de.mpicbg.knime.scripting.r.node.generic.openinr;
import org.knime.core.node.ExecutionContext;
import org.knime.core.node.InvalidSettingsException;
import org.knime.core.node.port.PortObject;
import org.knime.core.node.port.PortObjectSpec;
import org.knime.core.node.port.PortType;
import de.mpicbg.knime.scripting.core.ScriptingModelConfig;
import de.mpicbg.knime.scripting.r.AbstractRScriptingNodeModel;
import de.mpicbg.knime.scripting.r.RColumnSupport;
import de.mpicbg.knime.scripting.r.port.RPortObject2;
/**
* This is the model implementation of generic version of OpenInR. It allows to spawn a new instance of R using the node
* input as workspace initialization. It's main purpose is for prototyping.
*
* @author Holger Brandl, Antje Janosch (MPI-CBG)
*/
public class GenericOpenInRNodeModel2 extends AbstractRScriptingNodeModel {
private static final ScriptingModelConfig nodeModelConfig = new ScriptingModelConfig(
createPorts(1, RPortObject2.TYPE, RPortObject2.class), // 1 generic input
new PortType[0], // no output
new RColumnSupport(),
false, // no script
false, // no open in R
false); // no chunks
/**
* constructor: 1 R Port input, no output
*/
protected GenericOpenInRNodeModel2() {
super(nodeModelConfig);
}
/**
* {@inheritDoc}
*/
@Override
protected PortObjectSpec[] configure(final PortObjectSpec[] inSpecs) throws InvalidSettingsException {
return new PortObjectSpec[0];
}
/**
* {@inheritDoc}
*/
@Override
protected PortObject[] executeImpl(PortObject[] inData, ExecutionContext exec) throws Exception {
super.executeImpl(inData, exec);
openInR(inData, exec);
return new PortObject[0];
}
}