package de.mpicbg.knime.scripting.r;
import de.mpicbg.knime.scripting.core.ColumnSupport;
import de.mpicbg.knime.scripting.r.node.snippet.RSnippetNodeModel;
import org.knime.core.data.BooleanValue;
import org.knime.core.data.DataType;
import org.knime.core.data.DoubleValue;
import org.knime.core.data.IntValue;
import org.knime.core.data.StringValue;
/**
* Defines the way data items are rendered when the user selects them from the variable list while writing a template.
* Defines which column types are supported
*
* @author Antje Janosch
*
*/
public class RColumnSupport implements ColumnSupport {
/**
* {@inheritDoc}
*/
@Override
public String reformat(String name, DataType type, boolean altDown) {
if (altDown) {
if (name.contains(" ")) {
return RSnippetNodeModel.R_INVAR_BASE_NAME + "$\"" + name + "\"";
} else {
return RSnippetNodeModel.R_INVAR_BASE_NAME + "$" + name + "";
}
} else {
return "\"" + name + "\"";
}
}
/**
* {@inheritDoc}
*/
@Override
public boolean isSupported(DataType dtype) {
if(dtype.isCompatible(DoubleValue.class)) return true;
if(dtype.isCompatible(BooleanValue.class)) return true;
if(dtype.isCompatible(IntValue.class)) return true;
if(dtype.isCompatible(StringValue.class)) return true;
return false;
}
}