uk.ac.starlink.ttools.filter
Class PermutedColumnSupplement

java.lang.Object
  extended by uk.ac.starlink.ttools.filter.PermutedColumnSupplement
All Implemented Interfaces:
ColumnSupplement

public class PermutedColumnSupplement
extends Object
implements ColumnSupplement

ColumnSupplement implementation which contains a selection of the columns in the base table. Each column is a view of one in the base table.

An int[] array, colMap, is used to keep track of which columns in this table correspond to which columns in the base table; the i'th column in this table corresponds to the colMap[i]'th column in the base table. The colMap array may contain duplicate entries, but all its entries must be in the range 0..baseSup.getColumnCount()-1. This table will have colMap.length columns.

Since:
2 Apr 2012
Author:
Mark Taylor

Constructor Summary
PermutedColumnSupplement(ColumnSupplement baseSup, int[] colMap)
          Constructs a permuted column supplement based on a given column supplement.
PermutedColumnSupplement(uk.ac.starlink.table.StarTable baseTable, int[] colMap)
          Constructs a permuted column supplement based on a given table.
 
Method Summary
 SupplementSequence createSequence(uk.ac.starlink.table.RowSequence rseq)
          Returns a new iterator over the values in the columns defined by this object.
 Object getCell(long irow, int icol)
          Random access read of a cell defined by this object.
 int getColumnCount()
          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.
 Object[] getRow(long irow)
          Random access read of a row defined by this object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PermutedColumnSupplement

public PermutedColumnSupplement(ColumnSupplement baseSup,
                                int[] colMap)
Constructs a permuted column supplement based on a given column supplement.

Parameters:
baseSup - column supplement supplying the base data
colMap - array of column indices, one for each column in this object

PermutedColumnSupplement

public PermutedColumnSupplement(uk.ac.starlink.table.StarTable baseTable,
                                int[] colMap)
Constructs a permuted column supplement based on a given table.

Parameters:
baseTable - table supplying the base data
colMap - array of column indices, one for each column in this object
Method Detail

getColumnCount

public int getColumnCount()
Description copied from interface: ColumnSupplement
Returns the number of columns defined by this object.

Specified by:
getColumnCount in interface ColumnSupplement
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 interface ColumnSupplement
Parameters:
icol - column index within this object
Returns:
column metadata for the icol'th column defined by this object

getCell

public Object getCell(long irow,
                      int icol)
               throws IOException
Description copied from interface: ColumnSupplement
Random access read of a cell defined by this object.

Specified by:
getCell in interface ColumnSupplement
Parameters:
irow - row index
icol - column index
Returns:
cell content
Throws:
IOException

getRow

public Object[] getRow(long irow)
                throws IOException
Description copied from interface: ColumnSupplement
Random access read of a row defined by this object.

Specified by:
getRow in interface ColumnSupplement
Parameters:
irow - row index
Returns:
array of cell contents for all the cells in this row
Throws:
IOException

createSequence

public SupplementSequence createSequence(uk.ac.starlink.table.RowSequence rseq)
                                  throws IOException
Description copied from interface: ColumnSupplement
Returns a new iterator over the values in the columns defined by this object. The supplied row sequence must be from an appropriate host table; if not, behaviour is undefined.

Specified by:
createSequence in interface ColumnSupplement
Parameters:
rseq - row sequence providing data from the host table
Returns:
iterator over row data from supplementary columns
Throws:
IOException


Copyright © 2018 Central Laboratory of the Research Councils. All Rights Reserved.