uk.ac.starlink.ttools.jel
Class JELTable

java.lang.Object
  extended by uk.ac.starlink.table.WrapperStarTable
      extended by uk.ac.starlink.ttools.jel.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
JELTable(uk.ac.starlink.table.StarTable baseTable, uk.ac.starlink.table.ColumnInfo[] colInfos, String[] exprs)
          Constructor.
 
Method Summary
static uk.ac.starlink.table.StarTable createJELTable(uk.ac.starlink.table.StarTable baseTable, uk.ac.starlink.table.ValueInfo[] infos, String[] exprs)
          Convenience factory method.
 Object getCell(long irow, int icol)
           
 int getColumnCount()
           
 uk.ac.starlink.table.ColumnInfo getColumnInfo(int icol)
           
 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,
                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 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

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.
Throws:
uk.ac.starlink.task.ExecutionException


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