Package uk.ac.starlink.topcat
Class SyntheticColumn
java.lang.Object
uk.ac.starlink.table.ColumnData
uk.ac.starlink.topcat.SyntheticColumn
public class SyntheticColumn
extends uk.ac.starlink.table.ColumnData
A column which produces read-only values based on an algebraic
expression. This expression may include other columns in the table
referenced by column name, and can use any of the java language
expression constructs as well as the static methods in the
java.lang.Math class. This list could be extended quite
easily if new arithmetic tricks were required.
The engine used for expression evaluation is the GNU Java Expressions Library (JEL).
- Author:
- Mark Taylor (Starlink)
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionSyntheticColumn
(TopcatModel tcModel, uk.ac.starlink.table.ColumnInfo cinfo, String expression, Class<?> resultType) Constructs a new synthetic column from an algebraic expression applied to a table. -
Method Summary
Modifier and TypeMethodDescriptionReturns the JEL expression that provides this column's value.readValue
(long lrow) void
setExpression
(String expression, Class<?> resultType) Sets the algebraic expression which this column uses to calculate its results.Methods inherited from class uk.ac.starlink.table.ColumnData
getColumnInfo, isWritable, setColumnInfo, storeValue
-
Constructor Details
-
SyntheticColumn
public SyntheticColumn(TopcatModel tcModel, uk.ac.starlink.table.ColumnInfo cinfo, String expression, Class<?> resultType) throws gnu.jel.CompilationException Constructs a new synthetic column from an algebraic expression applied to a table.- Parameters:
tcModel
- context for JEL expression evaluationcinfo
- metadata for the new column; note this object may be modified as required by the supplied expressionexpression
- algebraic expression for the value of this columnresultType
- a Class for the result, presumably one of the primitive wrapper types or String.class. If null a suitable class is chosen automatically.- Throws:
gnu.jel.CompilationException
-
-
Method Details
-
setExpression
public void setExpression(String expression, Class<?> resultType) throws gnu.jel.CompilationException Sets the algebraic expression which this column uses to calculate its results. Column names are used to refer to values of cells in other columns of this table in the same row as that for which the result is being generated.- Parameters:
expression
- the string giving the algebraic exprssion for this column's value in terms of other columnsresultType
- a Class for the result, presumably one of the primitive wrapper types or String.class. If null a suitable class is chosen automatically.- Throws:
gnu.jel.CompilationException
-
getExpression
Returns the JEL expression that provides this column's value.- Returns:
- expression
-
readValue
- Specified by:
readValue
in classuk.ac.starlink.table.ColumnData
- Throws:
IOException
-