Class JELTable

java.lang.Object
uk.ac.starlink.table.WrapperStarTable
uk.ac.starlink.ttools.jel.JELTable
All Implemented Interfaces:
Closeable, AutoCloseable, uk.ac.starlink.table.StarTable

public class JELTable extends uk.ac.starlink.table.WrapperStarTable
Wrapper table which is constructed entirely of columns defined by JEL expressions based on the base table.
Since:
1 Sep 2005
Author:
Mark Taylor
  • Field Summary

    Fields inherited from class uk.ac.starlink.table.WrapperStarTable

    baseTable
  • Constructor Summary

    Constructors
    Constructor
    Description
    JELTable(uk.ac.starlink.table.StarTable baseTable, uk.ac.starlink.table.ColumnInfo[] colInfos, String[] exprs)
    Constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    static uk.ac.starlink.table.StarTable
    createJELTable(uk.ac.starlink.table.StarTable baseTable, String[] exprs)
    Creates a JELTable from a base table and a list of column expressions.
    static uk.ac.starlink.table.StarTable
    createJELTable(uk.ac.starlink.table.StarTable baseTable, uk.ac.starlink.table.ValueInfo[] infos, String[] exprs)
    Convenience factory method.
    getCell(long irow, int icol)
     
    int
     
    uk.ac.starlink.table.ColumnInfo
    getColumnInfo(int icol)
     
    getRow(long irow)
     
    uk.ac.starlink.table.RowAccess
     
    uk.ac.starlink.table.RowSequence
     
    uk.ac.starlink.table.RowSplittable
     

    Methods inherited from class uk.ac.starlink.table.WrapperStarTable

    checkedLongToInt, close, getBaseTable, getColumnAuxDataInfos, getName, getParameterByName, getParameters, getRowCount, getURL, isRandom, setName, setParameter, setURL, toString

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • JELTable

      public JELTable(uk.ac.starlink.table.StarTable baseTable, uk.ac.starlink.table.ColumnInfo[] colInfos, String[] exprs) throws gnu.jel.CompilationException
      Constructor. The number of columns is the same as the number of elements of colInfos, which must be the same as the number of elements in exprs. If the contentClass attributes of the colInfos elements are non-null, they must be compatible with the actual types of the evaluated expressions. If they are not, an IllegalArgumentException will be thrown.
      Parameters:
      baseTable - table which provides both behaviour determining whether random access is available etc, and an evaluation context for the JEL calculations
      colInfos - column metadata for each of the columns in this table
      exprs - JEL expressions, evaluated in a context determined by baseTable, which give the data for this table.
      Throws:
      gnu.jel.CompilationException
  • Method Details

    • getColumnCount

      public int getColumnCount()
      Specified by:
      getColumnCount in interface uk.ac.starlink.table.StarTable
      Overrides:
      getColumnCount in class uk.ac.starlink.table.WrapperStarTable
    • getColumnInfo

      public uk.ac.starlink.table.ColumnInfo getColumnInfo(int icol)
      Specified by:
      getColumnInfo in interface uk.ac.starlink.table.StarTable
      Overrides:
      getColumnInfo in class uk.ac.starlink.table.WrapperStarTable
    • getCell

      public Object getCell(long irow, int icol) throws IOException
      Specified by:
      getCell in interface uk.ac.starlink.table.StarTable
      Overrides:
      getCell in class uk.ac.starlink.table.WrapperStarTable
      Throws:
      IOException
    • getRow

      public Object[] getRow(long irow) throws IOException
      Specified by:
      getRow in interface uk.ac.starlink.table.StarTable
      Overrides:
      getRow in class uk.ac.starlink.table.WrapperStarTable
      Throws:
      IOException
    • getRowSequence

      public uk.ac.starlink.table.RowSequence getRowSequence() throws IOException
      Specified by:
      getRowSequence in interface uk.ac.starlink.table.StarTable
      Overrides:
      getRowSequence in class uk.ac.starlink.table.WrapperStarTable
      Throws:
      IOException
    • getRowAccess

      public uk.ac.starlink.table.RowAccess getRowAccess() throws IOException
      Specified by:
      getRowAccess in interface uk.ac.starlink.table.StarTable
      Overrides:
      getRowAccess in class uk.ac.starlink.table.WrapperStarTable
      Throws:
      IOException
    • getRowSplittable

      public uk.ac.starlink.table.RowSplittable getRowSplittable() throws IOException
      Specified by:
      getRowSplittable in interface uk.ac.starlink.table.StarTable
      Overrides:
      getRowSplittable in class uk.ac.starlink.table.WrapperStarTable
      Throws:
      IOException
    • createJELTable

      public static uk.ac.starlink.table.StarTable createJELTable(uk.ac.starlink.table.StarTable baseTable, uk.ac.starlink.table.ValueInfo[] infos, String[] exprs) throws uk.ac.starlink.task.ExecutionException
      Convenience factory method. It turns all the supplied infos into ColumnInfos and rethrows any CompilationException as an ExecutionException.
      Parameters:
      baseTable - table which provides both behaviour determining whether random access is available etc, and an evaluation context for the JEL calculations
      infos - metadata used to construct column metadata
      exprs - JEL expressions, evaluated in a context determined by baseTable, which give the data for this table
      Returns:
      new table
      Throws:
      uk.ac.starlink.task.ExecutionException
    • createJELTable

      public static uk.ac.starlink.table.StarTable createJELTable(uk.ac.starlink.table.StarTable baseTable, String[] exprs) throws gnu.jel.CompilationException
      Creates a JELTable from a base table and a list of column expressions. If the expressions can be determined to correspond to columns from the base table, the metadata is propagated. Otherwise, column names are constructed from the expression strings.
      Parameters:
      baseTable - table which provides both behaviour determining whether random access is available etc, and an evaluation context for the JEL calculations
      exprs - JEL expressions, evaluated in a context determined by baseTable, which give the data for this table
      Returns:
      new table
      Throws:
      gnu.jel.CompilationException