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:
java.io.Closeable
,java.lang.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
-
-
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.RowAccess
getRowAccess()
uk.ac.starlink.table.RowSequence
getRowSequence()
uk.ac.starlink.table.RowSplittable
getRowSplittable()
-
-
-
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 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 Detail
-
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
public java.lang.Object getCell(long irow, int icol) throws java.io.IOException
- Specified by:
getCell
in interfaceuk.ac.starlink.table.StarTable
- Overrides:
getCell
in classuk.ac.starlink.table.WrapperStarTable
- Throws:
java.io.IOException
-
getRow
public java.lang.Object[] getRow(long irow) throws java.io.IOException
- Specified by:
getRow
in interfaceuk.ac.starlink.table.StarTable
- Overrides:
getRow
in classuk.ac.starlink.table.WrapperStarTable
- Throws:
java.io.IOException
-
getRowSequence
public uk.ac.starlink.table.RowSequence getRowSequence() throws java.io.IOException
- Specified by:
getRowSequence
in interfaceuk.ac.starlink.table.StarTable
- Overrides:
getRowSequence
in classuk.ac.starlink.table.WrapperStarTable
- Throws:
java.io.IOException
-
getRowAccess
public uk.ac.starlink.table.RowAccess getRowAccess() throws java.io.IOException
- Specified by:
getRowAccess
in interfaceuk.ac.starlink.table.StarTable
- Overrides:
getRowAccess
in classuk.ac.starlink.table.WrapperStarTable
- Throws:
java.io.IOException
-
getRowSplittable
public uk.ac.starlink.table.RowSplittable getRowSplittable() throws java.io.IOException
- Specified by:
getRowSplittable
in interfaceuk.ac.starlink.table.StarTable
- Overrides:
getRowSplittable
in classuk.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 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, 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 calculationsexprs
- JEL expressions, evaluated in a context determined bybaseTable
, which give the data for this table- Returns:
- new table
- Throws:
gnu.jel.CompilationException
-
-