Class PermutedColumnSupplement

java.lang.Object
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 Details

    • 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 Details

    • 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
    • createSupplementData

      public SupplementData createSupplementData(uk.ac.starlink.table.RowData rdata) throws IOException
      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 interface ColumnSupplement
      Parameters:
      rdata - row accessor providing data from the host table
      Returns:
      accessor over row data from supplementary columns
      Throws:
      IOException