org.knime.base.node.preproc.cellsplitbypos
Class CellSplitterByPosCellFactory

java.lang.Object
  extended by org.knime.base.node.preproc.cellsplitbypos.CellSplitterByPosCellFactory
All Implemented Interfaces:
CellFactory

 class CellSplitterByPosCellFactory
extends Object
implements CellFactory

Creates the data cells for the new columns of the cell splitter.

Author:
ohl, University of Konstanz

Constructor Summary
CellSplitterByPosCellFactory(DataTableSpec inSpec, String colName, int[] splitPoints, String[] colNames)
          Le Constucteur.
 
Method Summary
 DataCell[] getCells(DataRow row)
          Get the new cells for a given row.
 DataColumnSpec[] getColumnSpecs()
          The column specs for the cells that are generated in the getCells() method.
 void setProgress(int curRowNr, int rowCount, RowKey lastKey, ExecutionMonitor exec)
          This method is called when a row has been processed.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CellSplitterByPosCellFactory

public CellSplitterByPosCellFactory(DataTableSpec inSpec,
                                    String colName,
                                    int[] splitPoints,
                                    String[] colNames)
                             throws InvalidSettingsException
Le Constucteur.

Parameters:
inSpec - the spec from the underlying input table
colName - the name of the column to split
splitPoints - the indices where the input column is supposed to be split
colNames - the new column names of the created columns. Must be valid (i.e. unique and not existing in input table)
Throws:
InvalidSettingsException - if the specified col name is not in the input spec, or if the number of colNames is different than required
Method Detail

getCells

public DataCell[] getCells(DataRow row)
Get the new cells for a given row. These cells are incorporated into the existing row. The way it is done is defined through the ColumnRearranger using this object.

Specified by:
getCells in interface CellFactory
Parameters:
row - The row of interest.
Returns:
The new cells to that row.

getColumnSpecs

public DataColumnSpec[] getColumnSpecs()
The column specs for the cells that are generated in the getCells() method. This method is only called once, there is no need to cache the return value. The length of the returned array must match the length of the array returned by the getCells(DataRow) method and also the types must match, i.e. the type of the respective DataColumnSpec must be of the same type or a super type of the cell as returned by getCells(DataRow).

Specified by:
getColumnSpecs in interface CellFactory
Returns:
The specs to the newly created cells.

setProgress

public void setProgress(int curRowNr,
                        int rowCount,
                        RowKey lastKey,
                        ExecutionMonitor exec)
This method is called when a row has been processed. It allows the implementor to set progress in the execution monitor and also some meaningful progress message.

Note, you don't need to check exec.checkCanceled() in the implementation as this is done in the calling class.

Specified by:
setProgress in interface CellFactory
Parameters:
curRowNr - The number of the row just processed
rowCount - The total number of rows.
lastKey - The row's key.
exec - The execution monitor to report progress to.


Copyright, 2003 - 2010. All rights reserved.
University of Konstanz, Germany.
Chair for Bioinformatics and Information Mining, Prof. Dr. Michael R. Berthold.
You may not modify, publish, transmit, transfer or sell, reproduce, create derivative works from, distribute, perform, display, or in any way exploit any of the content, in whole or in part, except as otherwise expressly permitted in writing by the copyright owner or as specified in the license file distributed with this product.