Package uk.ac.starlink.ttools.jel
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 -
Method Summary
Modifier and TypeMethodDescriptionstatic 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) Object[]
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
-
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 ofcolInfos
, which must be the same as the number of elements inexprs
. If thecontentClass
attributes of thecolInfos
elements are non-null, they must be compatible with the actual types of the evaluated expressions. If they are not, anIllegalArgumentException
will be thrown.- Parameters:
baseTable
- table which provides both behaviour determining whether random access is available etc, and an evaluation context for the JEL calculationscolInfos
- column metadata for each of the columns in this tableexprs
- JEL expressions, evaluated in a context determined bybaseTable
, which give the data for this table.- Throws:
gnu.jel.CompilationException
-
-
Method Details
-
getColumnCount
public int getColumnCount()- Specified by:
getColumnCount
in interfaceuk.ac.starlink.table.StarTable
- Overrides:
getColumnCount
in classuk.ac.starlink.table.WrapperStarTable
-
getColumnInfo
public uk.ac.starlink.table.ColumnInfo getColumnInfo(int icol) - Specified by:
getColumnInfo
in interfaceuk.ac.starlink.table.StarTable
- Overrides:
getColumnInfo
in classuk.ac.starlink.table.WrapperStarTable
-
getCell
- Specified by:
getCell
in interfaceuk.ac.starlink.table.StarTable
- Overrides:
getCell
in classuk.ac.starlink.table.WrapperStarTable
- Throws:
IOException
-
getRow
- Specified by:
getRow
in interfaceuk.ac.starlink.table.StarTable
- Overrides:
getRow
in classuk.ac.starlink.table.WrapperStarTable
- Throws:
IOException
-
getRowSequence
- Specified by:
getRowSequence
in interfaceuk.ac.starlink.table.StarTable
- Overrides:
getRowSequence
in classuk.ac.starlink.table.WrapperStarTable
- Throws:
IOException
-
getRowAccess
- Specified by:
getRowAccess
in interfaceuk.ac.starlink.table.StarTable
- Overrides:
getRowAccess
in classuk.ac.starlink.table.WrapperStarTable
- Throws:
IOException
-
getRowSplittable
- Specified by:
getRowSplittable
in interfaceuk.ac.starlink.table.StarTable
- Overrides:
getRowSplittable
in classuk.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 suppliedinfos
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 calculationsinfos
- metadata used to construct column metadataexprs
- JEL expressions, evaluated in a context determined bybaseTable
, 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 calculationsexprs
- JEL expressions, evaluated in a context determined bybaseTable
, which give the data for this table- Returns:
- new table
- Throws:
gnu.jel.CompilationException
-