public class SyntheticRowSubset extends RowSubset
RowSubset which uses an algebraic expression based on the
values of other columns in the same row to decide whether a row
is included or not.
The engine used for expression evaluation is the GNU Java Expressions Library (JEL).
RowSubset.Key| Constructor and Description |
|---|
SyntheticRowSubset(String name,
TopcatModel tcModel,
String expression)
Constructs a new synthetic subset given a table and an algebraic
expression.
|
| Modifier and Type | Method and Description |
|---|---|
String |
getExpression()
Returns the text of the expression used by this subset.
|
String |
getMaskId()
Returns the mask identifier by which the content of this subset
is recognised.
|
boolean |
isIncluded(long lrow)
Indicates whether a given row is in the subset or not.
|
void |
setExpression(String expression)
Sets the expression to use for this subset.
|
public SyntheticRowSubset(String name, TopcatModel tcModel, String expression) throws gnu.jel.CompilationException
name - the name to use for the new RowSubsettcModel - context for JEL expression evaluationexpression - the algebraic expressiongnu.jel.CompilationExceptionpublic void setExpression(String expression) throws gnu.jel.CompilationException
expression - JEL expressiongnu.jel.CompilationExceptionpublic String getExpression()
public String getMaskId()
RowSubsetIn particular this value is used as a
maskId by the
GuiDataSpec class,
which means that changing it will generally signal to the plotting
system that the content of this subset has changed, and thus provoke
a replot of layers dependent on it.
The default implementation returns a value determined
by the identity of this RowSubset object
(TopcatUtils.identityString(java.lang.Object)),
but this method may be overridden by subclasses that wish to
signal their changes, and in particular provoke replots,
according to state.
Implementations are not however obliged to make this value
reflect their internal state, especially if it would be
expensive to do so. Implementations should be fast.
public boolean isIncluded(long lrow)
RowSubsetisIncluded in class RowSubsetlrow - the index of the row in questiontrue iff row lrow is to be includedCopyright © 2003-2025 CCLRC: Council for the Central Laboratory of the Research Councils. All Rights Reserved.