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(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.intReturns the number of columns defined by this object.uk.ac.starlink.table.ColumnInfogetColumnInfo(int icol) Returns the column metadata object for a given column.static doubleUtility 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:ColumnSupplementReturns the number of columns defined by this object.- Specified by:
getColumnCountin interfaceColumnSupplement- Returns:
- number of columns
-
getColumnInfo
public uk.ac.starlink.table.ColumnInfo getColumnInfo(int icol) Description copied from interface:ColumnSupplementReturns the column metadata object for a given column.- Specified by:
getColumnInfoin 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:ColumnSupplementRandom access read of a row defined by this object.- Specified by:
getRowin interfaceColumnSupplement- Parameters:
irow- row index- Returns:
- array of cell contents for all the cells in this row
- Throws:
IOException
-
getCell
Description copied from interface:ColumnSupplementRandom access read of a cell defined by this object.- Specified by:
getCellin interfaceColumnSupplement- Parameters:
irow- row indexicol- column index- Returns:
- cell content
- Throws:
IOException
-
createSupplementData
Description copied from interface:ColumnSupplementReturns 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:
createSupplementDatain 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
-