# Class SyntheticRowSubset

java.lang.Object
uk.ac.starlink.topcat.RowSubset
uk.ac.starlink.topcat.SyntheticRowSubset

public class SyntheticRowSubset extends RowSubset
A `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).

Author:
  Mark Taylor (Starlink)
See Also:
  - JEL

## Nested Class Summary

### Nested classes/interfaces inherited from class RowSubset

`RowSubset.Key`

## Field Summary

### Fields inherited from class RowSubset

`ALL, NONE`

## Constructor Summary

Constructors
Constructor
Description
`SyntheticRowSubset(String name, TopcatModel tcModel, String expression)`
Constructs a new synthetic subset given a table and an algebraic expression.

## Method Summary

Modifier and Type
Method
Description
`String`
`getExpression()`
Returns the text of the expression used by this subset.
`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.

### Methods inherited from class RowSubset

`getKey, getMaskId, getName, setKey, setName, toString`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### SyntheticRowSubset

public SyntheticRowSubset(String name, TopcatModel tcModel, String expression) throws gnu.jel.CompilationException
Constructs a new synthetic subset given a table and an algebraic expression.

Parameters:
  `name` - the name to use for the new RowSubset
  `tcModel` - context for JEL expression evaluation
  `expression` - the algebraic expression
Throws:
  `gnu.jel.CompilationException`

## Method Details

### setExpression

public void setExpression(String expression) throws gnu.jel.CompilationException
Sets the expression to use for this subset.

Parameters:
  `expression` - JEL expression
Throws:
  `gnu.jel.CompilationException`

### getExpression

public String getExpression()
Returns the text of the expression used by this subset.

Returns:
  expression

### isIncluded

public boolean isIncluded(long lrow)
Description copied from class: `RowSubset`
Indicates whether a given row is in the subset or not.

Specified by:
  `isIncluded` in class `RowSubset`
Parameters:
  `lrow` - the index of the row in question
Returns:
  `true` iff row `lrow` is to be included