Package uk.ac.starlink.ttools.filter
Class CalculatorColumnSupplement
java.lang.Object
uk.ac.starlink.ttools.filter.CalculatorColumnSupplement
- All Implemented Interfaces:
ColumnSupplement
ColumnSupplement whose columns are derived by calculating values
based on all the columns of another table.
To generate any of the columns of this table, a whole row of the
input supplement must be read.
Concrete implementations of this abstract class must implement the
calculate(java.lang.Object[])
method.- Since:
- 2 Apr 2012
- Author:
- Mark Taylor
-
Constructor Summary
ConstructorsConstructorDescriptionCalculatorColumnSupplement
(ColumnSupplement baseSup, uk.ac.starlink.table.ColumnInfo[] outColInfos) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract Object[]
Performs the calculations which populate the columns of this table.createSupplementData
(uk.ac.starlink.table.RowData rdata) Returns a new accessor for the values in the columns defined by this object.getCell
(long irow, int icol) Random access read of a cell defined by this object.int
Returns the number of columns defined by this object.uk.ac.starlink.table.ColumnInfo
getColumnInfo
(int icol) Returns the column metadata object for a given column.static double
Utility method to turn an Object into a floating point value.Object[]
getRow
(long irow) Random access read of a row defined by this object.
-
Constructor Details
-
CalculatorColumnSupplement
public CalculatorColumnSupplement(ColumnSupplement baseSup, uk.ac.starlink.table.ColumnInfo[] outColInfos) Constructor.- Parameters:
baseSup
- base supplementoutColInfos
- column metadata for the supplementary columns (length defines column count)
-
-
Method Details
-
calculate
Performs the calculations which populate the columns of this table. The input is a row of the base table, and the output is the row of this table.The implementation must return a new array each time, not repopulate the same
Object[]
array object.- Parameters:
inRow
- input column values- Returns:
- output column values (same size as column count)
- Throws:
IOException
-
getColumnCount
public int getColumnCount()Description copied from interface:ColumnSupplement
Returns the number of columns defined by this object.- Specified by:
getColumnCount
in interfaceColumnSupplement
- Returns:
- number of columns
-
getColumnInfo
public uk.ac.starlink.table.ColumnInfo getColumnInfo(int icol) Description copied from interface:ColumnSupplement
Returns the column metadata object for a given column.- Specified by:
getColumnInfo
in interfaceColumnSupplement
- Parameters:
icol
- column index within this object- Returns:
- column metadata for the icol'th column defined by this object
-
getRow
Description copied from interface:ColumnSupplement
Random access read of a row defined by this object.- Specified by:
getRow
in interfaceColumnSupplement
- Parameters:
irow
- row index- Returns:
- array of cell contents for all the cells in this row
- Throws:
IOException
-
getCell
Description copied from interface:ColumnSupplement
Random access read of a cell defined by this object.- Specified by:
getCell
in interfaceColumnSupplement
- Parameters:
irow
- row indexicol
- column index- Returns:
- cell content
- Throws:
IOException
-
createSupplementData
Description copied from interface:ColumnSupplement
Returns a new accessor for the values in the columns defined by this object. The supplied row object must be from an appropriate host table; if not, behaviour is undefined.- Specified by:
createSupplementData
in interfaceColumnSupplement
- Parameters:
rdata
- row accessor providing data from the host table- Returns:
- accessor over row data from supplementary columns
- Throws:
IOException
-
getDouble
Utility method to turn an Object into a floating point value. If the submitted value is not a Number (including if it is null), NaN will be returned.- Parameters:
value
- object value- Returns:
- floating point value
-