use of org.knime.core.node.config.Config in project knime-core by knime.
the class BarDataModel method loadElements.
/**
* {@inheritDoc}
*/
@Override
protected Collection<BarElementDataModel> loadElements(final ConfigRO config, final ExecutionMonitor exec) throws CanceledExecutionException, InvalidSettingsException {
final int counter = config.getInt(CFG_ELEMENT_COUNT);
final Collection<BarElementDataModel> elements = new ArrayList<BarElementDataModel>(counter);
for (int i = 0; i < counter; i++) {
final Config binConf = config.getConfig(CFG_BAR_ELEMENT + i);
elements.add(BarElementDataModel.loadFromFile(binConf, exec));
}
exec.checkCanceled();
return elements;
}
use of org.knime.core.node.config.Config in project knime-core by knime.
the class FixedHistogramDataModel method save2File.
/**
* @param directory the directory to write to
* @param exec the {@link ExecutionMonitor} to provide progress messages
* @throws IOException if a file exception occurs
* @throws CanceledExecutionException if the operation is canceled
*/
public void save2File(final File directory, final ExecutionMonitor exec) throws IOException, CanceledExecutionException {
if (exec != null) {
exec.setProgress(0.0, "Start saving histogram data model to file");
}
final File dataFile = new File(directory, CFG_DATA_FILE);
final FileOutputStream os = new FileOutputStream(dataFile);
final GZIPOutputStream dataOS = new GZIPOutputStream(os);
final Config config = new NodeSettings(CFG_DATA);
final ConfigWO xConf = config.addConfig(CFG_X_COL_SPEC);
m_xColSpec.save(xConf);
if (exec != null) {
exec.setProgress(0.1, "Binning column specification saved");
exec.setMessage("Start saving aggregation columns...");
}
config.addBoolean(CFG_NOMINAL, m_binNominal);
config.addString(CFG_AGGR_METHOD, m_aggrMethod.getActionCommand());
final Config aggrConf = config.addConfig(CFG_AGGR_COLS);
aggrConf.addInt(CFG_AGGR_COL_COUNTER, m_aggrColumns.size());
int idx = 0;
for (final ColorColumn col : m_aggrColumns) {
final ConfigWO aggrColConf = aggrConf.addConfig(CFG_COLOR_COL + idx++);
col.save2File(aggrColConf, exec);
}
if (exec != null) {
exec.setProgress(0.3, "Start saving bins...");
}
final ConfigWO binsConf = config.addConfig(CFG_BINS);
binsConf.addInt(CFG_BIN_COUNTER, m_bins.size());
idx = 0;
for (final BinDataModel bin : m_bins) {
final ConfigWO binConf = binsConf.addConfig(CFG_BIN + idx++);
bin.save2File(binConf, exec);
}
final ConfigWO missingBin = binsConf.addConfig(CFG_MISSING_BIN);
m_missingValueBin.save2File(missingBin, exec);
if (m_invalidValueBin != null) {
final ConfigWO invalidBin = binsConf.addConfig(CFG_INVALID_BIN);
m_invalidValueBin.save2File(invalidBin, exec);
}
if (exec != null) {
exec.setProgress(0.8, "Start saving element colors...");
}
final List<Color> rowColors = getRowColors();
final ConfigWO colorColsConf = config.addConfig(CFG_COLOR_COLS);
colorColsConf.addInt(CFG_ROW_COLOR_COUNTER, rowColors.size());
idx = 0;
for (final Color color : rowColors) {
colorColsConf.addInt(CFG_ROW_COLOR + idx++, color.getRGB());
}
config.saveToXML(dataOS);
dataOS.flush();
dataOS.close();
os.flush();
os.close();
if (exec != null) {
exec.setProgress(1.0, "Histogram data model saved");
}
}
use of org.knime.core.node.config.Config in project knime-core by knime.
the class FixedPieDataModel method loadFromFile.
/**
* @param directory the directory to write to
* @param exec the {@link ExecutionMonitor} to provide progress messages
* @return the data model
* wasn't valid
* @throws IOException if a file exception occurs
* @throws CanceledExecutionException if the operation was canceled
* @throws InvalidSettingsException if the file is invalid
*/
@SuppressWarnings("unchecked")
public static FixedPieDataModel loadFromFile(final File directory, final ExecutionMonitor exec) throws IOException, CanceledExecutionException, InvalidSettingsException {
if (exec != null) {
exec.setProgress(0.0, "Start reading data from file");
}
final File settingsFile = new File(directory, CFG_DATA_FILE);
final FileInputStream is = new FileInputStream(settingsFile);
final GZIPInputStream inData = new GZIPInputStream(is);
final ConfigRO config = NodeSettings.loadFromXML(inData);
final String pieCol = config.getString(CFG_PIE_COL);
final boolean numericPieCol = config.getBoolean(CFG_NUMERIC_PIE_COL);
final String aggrCol = config.getString(CFG_AGGR_COL);
final boolean supportHiliting = config.getBoolean(CFG_HILITING);
final boolean detailsAvailable = config.getBoolean(CFG_DETAILS);
if (exec != null) {
exec.setProgress(0.3, "Loading sections...");
exec.checkCanceled();
}
final Config sectionsConf = config.getConfig(CFG_SECTIONS);
final int counter = sectionsConf.getInt(CFG_SECTION_COUNT);
final List<PieSectionDataModel> sections = new ArrayList<PieSectionDataModel>(counter);
for (int i = 0; i < counter; i++) {
final Config sectionConf = sectionsConf.getConfig(CFG_SECTION + i);
sections.add(PieSectionDataModel.loadFromFile(sectionConf, exec));
}
if (exec != null) {
exec.setProgress(0.9, "Loading missing section...");
exec.checkCanceled();
}
final Config missingConf = sectionsConf.getConfig(CFG_MISSING_SECTION);
final PieSectionDataModel missingSection = PieSectionDataModel.loadFromFile(missingConf, exec);
final boolean isColorColumn;
if (config.containsKey(CFG_IS_COLOR_COLUMN)) {
isColorColumn = config.getBoolean(CFG_IS_COLOR_COLUMN);
} else {
isColorColumn = false;
// reset the color of all elements
for (final PieSectionDataModel section : sections) {
section.setColor(Color.BLACK);
}
}
if (exec != null) {
exec.setProgress(1.0, "Pie data model loaded ");
}
// close the stream
inData.close();
is.close();
return new FixedPieDataModel(pieCol, numericPieCol, aggrCol, sections, missingSection, supportHiliting, detailsAvailable, isColorColumn);
}
use of org.knime.core.node.config.Config in project knime-core by knime.
the class InteractivePieDataModel method save2File.
/**
* @param dataDir the data directory to write to
* @param exec the {@link ExecutionMonitor}
* @throws IOException if the output file could not be created
* @throws CanceledExecutionException if the saving was canceled
*/
public void save2File(final File dataDir, final ExecutionMonitor exec) throws IOException, CanceledExecutionException {
final File settingFile = new File(dataDir, CFG_SETTING_FILE);
final FileOutputStream os = new FileOutputStream(settingFile);
final GZIPOutputStream settingOS = new GZIPOutputStream(os);
final Config config = new NodeSettings(CFG_SETTING);
config.addBoolean(CFG_HILITING, supportsHiliting());
config.addBoolean(CFG_DETAILS, detailsAvailable());
config.saveToXML(settingOS);
exec.checkCanceled();
final File dataFile = new File(dataDir, CFG_DATA_FILE);
DataContainer.writeToZip(m_data, dataFile, exec);
}
use of org.knime.core.node.config.Config in project knime-core by knime.
the class BoxPlotNodeModel method saveInternals.
/**
* {@inheritDoc}
*/
@Override
protected void saveInternals(final File nodeInternDir, final ExecutionMonitor exec) throws IOException, CanceledExecutionException {
try {
NodeSettings settings = new NodeSettings(FILE_NAME);
settings.addInt(CFG_NR_COLS, m_statistics.size());
int i = 0;
for (DataColumnSpec spec : m_statistics.keySet()) {
NodeSettings colSetting = (NodeSettings) settings.addConfig(CFG_COL + i++);
spec.save(colSetting);
}
for (Map.Entry<DataColumnSpec, double[]> entry : m_statistics.entrySet()) {
String cfgName = entry.getKey().getName();
settings.addDoubleArray(CFG_STATS + cfgName, entry.getValue());
// mild outliers
Map<Double, Set<RowKey>> mildOutliers = m_mildOutliers.get(cfgName);
double[] mild = new double[mildOutliers.size()];
Config mildKeysSubConfig = settings.addConfig(CFG_MILD + CFG_ROW + cfgName);
int j = 0;
for (Map.Entry<Double, Set<RowKey>> mildEntry : mildOutliers.entrySet()) {
mild[j] = mildEntry.getKey();
// save method -> savely store string from now on
String[] keys = new String[mildEntry.getValue().size()];
int rk = 0;
for (RowKey key : mildEntry.getValue()) {
keys[rk] = key.getString();
rk++;
}
mildKeysSubConfig.addStringArray(CFG_MILD + CFG_ROW + cfgName + j, keys);
j++;
}
settings.addDoubleArray(CFG_MILD + cfgName, mild);
// settings.addDataCellArray(CFG_MILD + CFG_ROW + cfgName, mildKeys);
Map<Double, Set<RowKey>> extremeOutliers = m_extremeOutliers.get(cfgName);
double[] extreme = new double[extremeOutliers.size()];
int ext = 0;
Config extKeysSubConfig = settings.addConfig(CFG_EXTREME + CFG_ROW + cfgName);
for (Map.Entry<Double, Set<RowKey>> extrEntry : extremeOutliers.entrySet()) {
extreme[ext] = extrEntry.getKey();
// save method -> save store strings from now on
String[] keys = new String[extrEntry.getValue().size()];
int rk = 0;
for (RowKey key : extrEntry.getValue()) {
keys[rk] = key.getString();
rk++;
}
extKeysSubConfig.addStringArray(CFG_EXTREME + CFG_ROW + cfgName + ext, keys);
ext++;
}
settings.addDoubleArray(CFG_EXTREME + cfgName, extreme);
// settings.addDataCellArray(CFG_EXTREME + CFG_ROW + cfgName,
// extremeKeys);
}
File f = new File(nodeInternDir, FILE_NAME);
FileOutputStream fos = new FileOutputStream(f);
settings.saveToXML(fos);
File dataFile = new File(nodeInternDir, ARRAY_FILE);
DataContainer.writeToZip(m_array, dataFile, exec);
} catch (IOException e) {
LOGGER.warn(e);
}
}
Aggregations