uk.ac.starlink.topcat
Class TopcatJELUtils

java.lang.Object
  extended by uk.ac.starlink.ttools.jel.JELUtils
      extended by uk.ac.starlink.topcat.TopcatJELUtils

public class TopcatJELUtils
extends uk.ac.starlink.ttools.jel.JELUtils

This class provides some utility methods for use with the JEL expression compiler.

Author:
Mark Taylor (Starlink)

Field Summary
static String ACTIVATION_CLASSES_PROPERTY
           
 
Fields inherited from class uk.ac.starlink.ttools.jel.JELUtils
CLASSES_PROPERTY
 
Method Summary
static String betweenExpression(String expr, double lo, double hi, boolean isLog, int npix)
          Returns a JEL expression that characterises a univariate range of values.
static Class classForName(String cname)
          Returns the class with the given name, or null if it's not on the path.
static String combineSubsetsExpression(TopcatModel tcModel, String expr, RowSubset[] rowSubsets)
          Returns a JEL expression that represents the union of a given array of subsets ANDed with a given JEL expression.
static List<Class> getActivationStaticClasses()
          Returns the list of classes whose static methods will be mapped into the JEL evaluation namespace for activation purposes only.
static String getColumnId(uk.ac.starlink.table.gui.StarTableColumn tcol)
          Returns the JEL $Identifier for a given column.
static String getDataExpression(TopcatModel tcModel, GuiCoordContent content)
          Returns a JEL-friendly expression which may be used to reference a GuiCoordContent, if possible.
static gnu.jel.Library getLibrary(uk.ac.starlink.ttools.jel.JELRowReader rowReader, boolean activation)
          Returns a JEL Library suitable for expression evaluation.
static String getSubsetExpression(TopcatModel tcModel, RowSubset rset)
          Returns a JEL-friendly expression which may be used to reference a RowSubset.
static boolean isColumnReferenced(TopcatModel tcModel, int icol, String expr)
          Indicates whether a given JEL expression makes direct or indirect reference to an existing column in a given table.
static boolean isJelIdentifier(String label)
          Indicates whether a given string is a syntactically legal Java identifier.
static boolean isSubsetReferenced(TopcatModel tcModel, int rsetId, String expr)
          Indicates whether a given JEL expression makes direct or indirect reference to an existing subset in a given topcat model.
static boolean isSubsetReferenced(TopcatModel tcModel, String rsetName, String expr)
          Indicates whether a given JEL expression makes direct or indirect reference to a named subset in a given topcat model.
static Class wrapPrimitiveClass(Class prim)
          Turns a primitive class into the corresponding wrapper class.
 
Methods inherited from class uk.ac.starlink.ttools.jel.JELUtils
checkExpressionType, compile, compile, compileQuantity, createDatalessRowReader, getExpressionType, getLibrary, getStaticClasses, getWrapperType, toIOException
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ACTIVATION_CLASSES_PROPERTY

public static final String ACTIVATION_CLASSES_PROPERTY
See Also:
Constant Field Values
Method Detail

getLibrary

public static gnu.jel.Library getLibrary(uk.ac.starlink.ttools.jel.JELRowReader rowReader,
                                         boolean activation)
Returns a JEL Library suitable for expression evaluation.

Parameters:
rowReader - object which can read rows from the table to be used for expression evaluation
activation - true iff the result is to include classes used only for activation (e.g. write to System.out, pop up viewers) as well as classes with methods for calculations
Returns:
a JEL library

getActivationStaticClasses

public static List<Class> getActivationStaticClasses()
Returns the list of classes whose static methods will be mapped into the JEL evaluation namespace for activation purposes only. This may be modified.

Returns:
list of activation classes with static methods

wrapPrimitiveClass

public static Class wrapPrimitiveClass(Class prim)
Turns a primitive class into the corresponding wrapper class.

Parameters:
prim - primitive class
Returns:
the corresponding non-primitive wrapper class

classForName

public static Class classForName(String cname)
Returns the class with the given name, or null if it's not on the path.

Parameters:
cname - class name
Returns:
class or null

isColumnReferenced

public static boolean isColumnReferenced(TopcatModel tcModel,
                                         int icol,
                                         String expr)
Indicates whether a given JEL expression makes direct or indirect reference to an existing column in a given table. If the expression cannot be compiled, false is returned

Parameters:
tcModel - topcat model
icol - column index to test
expr - JEL expression
Returns:
true iff expr references the column with index icol

isSubsetReferenced

public static boolean isSubsetReferenced(TopcatModel tcModel,
                                         int rsetId,
                                         String expr)
Indicates whether a given JEL expression makes direct or indirect reference to an existing subset in a given topcat model. If the expression cannot be compiled, false is returned.

Parameters:
tcModel - topcat model
rsetId - ID of row subset to test
expr - JEL expression
Returns:
true iff expr references the subset with index rsetId

isSubsetReferenced

public static boolean isSubsetReferenced(TopcatModel tcModel,
                                         String rsetName,
                                         String expr)
Indicates whether a given JEL expression makes direct or indirect reference to a named subset in a given topcat model. If the expression cannot be compiled, or no subset with the given name exists, false is returned.

Parameters:
tcModel - topcat model
rsetName - name of row subset to test
expr - JEL expression
Returns:
true iff expr references the subset with name rsetName

getDataExpression

public static String getDataExpression(TopcatModel tcModel,
                                       GuiCoordContent content)
Returns a JEL-friendly expression which may be used to reference a GuiCoordContent, if possible.

Parameters:
tcModel - topcat model
content - user specification for a plotted quantity
Returns:
JEL-safe expression for referencing the quantity

getSubsetExpression

public static String getSubsetExpression(TopcatModel tcModel,
                                         RowSubset rset)
Returns a JEL-friendly expression which may be used to reference a RowSubset.

Parameters:
tcModel - topcat model
rset - row subset
Returns:
JEL-safe expression for subset

getColumnId

public static String getColumnId(uk.ac.starlink.table.gui.StarTableColumn tcol)
Returns the JEL $Identifier for a given column.

Parameters:
tcol - table column from data model
Returns:
"$nn" expression referencing column

isJelIdentifier

public static boolean isJelIdentifier(String label)
Indicates whether a given string is a syntactically legal Java identifier. It has to have the right form and not be a reserved word.

Parameters:
label - text to test
Returns:
true iff it can be used as an identifier in JEL expressions

combineSubsetsExpression

public static String combineSubsetsExpression(TopcatModel tcModel,
                                              String expr,
                                              RowSubset[] rowSubsets)
Returns a JEL expression that represents the union of a given array of subsets ANDed with a given JEL expression.

Parameters:
tcModel - topcat model
expr - expression to AND with
rowSubsets - array of zero or more subsets composing union; if none are provided, ALL is assumed
Returns:
combined expression

betweenExpression

public static String betweenExpression(String expr,
                                       double lo,
                                       double hi,
                                       boolean isLog,
                                       int npix)
Returns a JEL expression that characterises a univariate range of values.

Parameters:
expr - JEL expression whose value is to be constrained
lo - lowest permissible bound for expr
hi - highest permissible bound for expr
isLog - true for logarithmic range, false for linear
npix - approximate number of pixels covered by the range
Returns:
JEL expression with the meaning lo<=expr<=hi


Copyright © 2003-2018 CCLRC: Council for the Central Laboratory of the Research Councils. All Rights Reserved.