Class JELTable

  • All Implemented Interfaces:
    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, java.lang.String[] exprs)
      Constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static uk.ac.starlink.table.StarTable createJELTable​(uk.ac.starlink.table.StarTable baseTable, java.lang.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, java.lang.String[] exprs)
      Convenience factory method.
      java.lang.Object getCell​(long irow, int icol)  
      int getColumnCount()  
      uk.ac.starlink.table.ColumnInfo getColumnInfo​(int icol)  
      java.lang.Object[] getRow​(long irow)  
      uk.ac.starlink.table.RowSequence getRowSequence()  
      • Methods inherited from class uk.ac.starlink.table.WrapperStarTable

        checkedLongToInt, 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 Detail

      • JELTable

        public JELTable​(uk.ac.starlink.table.StarTable baseTable,
                        uk.ac.starlink.table.ColumnInfo[] colInfos,
                        java.lang.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 Detail

      • 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 java.lang.Object getCell​(long irow,
                                        int icol)
                                 throws java.io.IOException
        Specified by:
        getCell in interface uk.ac.starlink.table.StarTable
        Overrides:
        getCell in class uk.ac.starlink.table.WrapperStarTable
        Throws:
        java.io.IOException
      • getRow

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

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

        public static uk.ac.starlink.table.StarTable createJELTable​(uk.ac.starlink.table.StarTable baseTable,
                                                                    uk.ac.starlink.table.ValueInfo[] infos,
                                                                    java.lang.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,
                                                                    java.lang.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