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

java.lang.Object
  extended by org.knime.base.node.preproc.columnTrans.AbstractMany2OneCellFactory
All Implemented Interfaces:
CellFactory
Direct Known Subclasses:
BinaryCellFactory, MinMaxCellFactory, RegExpCellFactory

public abstract class AbstractMany2OneCellFactory
extends Object
implements CellFactory

Author:
Fabian Dill, University of Konstanz

Constructor Summary
AbstractMany2OneCellFactory(DataTableSpec inputSpec, String appendedColumnName, int[] includedColsIndices)
           
 
Method Summary
abstract  int findColumnIndex(DataRow row)
          Find the column names to put in the condensed column.
 String getAppendedColumnName()
           
 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.
 int[] getIncludedColIndices()
           
 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

AbstractMany2OneCellFactory

public AbstractMany2OneCellFactory(DataTableSpec inputSpec,
                                   String appendedColumnName,
                                   int[] includedColsIndices)
Parameters:
inputSpec - input spec of the whole table
appendedColumnName - name of the new column
includedColsIndices - indices of columns to condense
Method Detail

getAppendedColumnName

public String getAppendedColumnName()
Returns:
name of the appended column

getIncludedColIndices

public int[] getIncludedColIndices()
Returns:
the indices of the condensed columns

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.

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.

findColumnIndex

public abstract int findColumnIndex(DataRow row)
Find the column names to put in the condensed column.

Parameters:
row - row to search for matching columns
Returns:
matching column names as StringCell array


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.