org.knime.base.node.preproc.columnTrans
Class One2ManyCellFactory

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

public class One2ManyCellFactory
extends Object
implements CellFactory

Maps several original nominal columns to their possible values, creates a column for every possible value and when the rows are processed the value is set to 1 if the original column contains this value and to 0 otherwise.

Author:
Fabian Dill, University of Konstanz

Constructor Summary
One2ManyCellFactory(DataTableSpec inputSpec, List<String> columnNames, boolean appendOrgColNames)
          Creates for every possible value of one column given by the columnNames an extra column with the values present(1) or absent(0).
 
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

One2ManyCellFactory

public One2ManyCellFactory(DataTableSpec inputSpec,
                           List<String> columnNames,
                           boolean appendOrgColNames)
Creates for every possible value of one column given by the columnNames an extra column with the values present(1) or absent(0).

Parameters:
inputSpec - the input table spec.
columnNames - the names of the columns to be transformed.
appendOrgColNames - if true original column names will be appended to the newly generated column name: (possibleValue_originalColName)
Method Detail

getColumnSpecs

public DataColumnSpec[] getColumnSpecs()
Description copied from interface: CellFactory
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 columnSpecs for the appended columns.

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.

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.