package de.mpicbg.knime.scripting.r.node.generic.plot;
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.image.ImagePortObject;
import de.mpicbg.knime.scripting.core.ScriptingModelConfig;
import de.mpicbg.knime.scripting.r.RColumnSupport;
import de.mpicbg.knime.scripting.r.plots.AbstractRPlotNodeModel;
import de.mpicbg.knime.scripting.r.port.RPortObject2;
/**
* A generic R node which creates a figure from a genericR input.
*
* @author Holger Brandl, Antje Janosch
*/
public class GenericRPlotNodeModel2 extends AbstractRPlotNodeModel {
/** node configuration */
private static ScriptingModelConfig nodeModelConfig = new ScriptingModelConfig(
createPorts(1, RPortObject2.TYPE, RPortObject2.class), // 1 generic input
createPorts(1, ImagePortObject.TYPE, ImagePortObject.class), // 1 image output
new RColumnSupport(),
true, // no script
true, // open in functionality
false); // use chunk settings
/**
* constructor
*/
public GenericRPlotNodeModel2() {
super(nodeModelConfig);
}
/**
* This constructor is just necessary to allow superclasses to create plot nodes with ouputs
*/
public GenericRPlotNodeModel2(ScriptingModelConfig cfg) {
super(cfg);
}
/**
* {@inheritDoc}
*/
@Override
protected PortObjectSpec[] configure(final PortObjectSpec[] inSpecs) throws InvalidSettingsException {
super.configure(inSpecs);
return new PortObjectSpec[]{IM_PORT_SPEC};
}
/**
* {@inheritDoc}
*/
@Override
protected PortObject[] executeImpl(PortObject[] inData,
ExecutionContext exec) throws Exception {
super.executeImpl(inData, exec);
PortObject[] outData = super.pullOutputFromR(exec);
return outData;
}
}