public class JELUtils extends Object
| Modifier and Type | Field and Description |
|---|---|
static String |
CLASSES_PROPERTY
System property name for adding colon-separated list of
additional classnames containing static methods.
|
| Constructor and Description |
|---|
JELUtils() |
| Modifier and Type | Method and Description |
|---|---|
static void |
checkExpressionType(gnu.jel.Library lib,
StarTable table,
String expr,
Class<?> clazz)
Checks that an expression is legal and returns a particular class.
|
static gnu.jel.CompiledExpression |
compile(gnu.jel.Library lib,
StarTable table,
String expr)
Compiles an expression in the context of a given table.
|
static gnu.jel.CompiledExpression |
compile(gnu.jel.Library lib,
StarTable table,
String expr,
Class<?> clazz)
Compiles an expression in the context of a given table with a
required type for the result.
|
static gnu.jel.CompiledExpression[] |
compileExpressions(StarTableJELRowReader reader,
String[] exprs)
Compiles a set of expressions relating to a table.
|
static JELQuantity |
compileQuantity(gnu.jel.Library lib,
StarTableJELRowReader jelRdr,
String expr,
Class<?> clazz)
Compiles an expression in the context of a table reader to give
a JELQuantity.
|
static java.util.function.Function<gnu.jel.Library,gnu.jel.CompiledExpression> |
compiler(StarTable table,
String expr,
Class<?> clazz)
Returns a function that can compile a fixed expression from a Library.
|
static JELRowReader |
createDatalessRowReader(StarTable table)
Returns a row reader that can be used for expression evaluation,
optionally in the context of the non-data parts of a given context
table.
|
static gnu.jel.Library |
createLibrary(Class<?>[] staticLib,
Class<?>[] dynamicLib,
gnu.jel.DVMap resolver)
Creates a JEL Library from basic information.
|
static Class<?> |
getExpressionType(gnu.jel.Library lib,
StarTable table,
String expr)
Gives the return type of an expression.
|
static gnu.jel.Library |
getLibrary(JELRowReader reader)
Returns a JEL Library suitable for expression evaluation within a table.
|
static List<Class<?>> |
getStaticClasses()
Returns the list of classes whose static methods will be mapped
into the JEL evaluation namespace.
|
static Class<?> |
getWrapperType(Class<?> clazz)
Returns a non-primitive version of a given class.
|
static IOException |
toIOException(gnu.jel.CompilationException e,
String expr)
Utility method to convert a CompilationException into an IOException.
|
public static final String CLASSES_PROPERTY
public static gnu.jel.Library getLibrary(JELRowReader reader)
reader - object which can read rows from the table to
be used for expression evaluation; may be null if
there are no references to table-related expressionspublic static gnu.jel.Library createLibrary(Class<?>[] staticLib, Class<?>[] dynamicLib, gnu.jel.DVMap resolver)
StateDependent annotation appropriately.staticLib - array of classes whose public static methods
are exporteddynamicLib - array of classes whose public methods are exportedresolver - object used to resolve namesLibrary.Library(java.lang.Class<?>[], java.lang.Class<?>[], java.lang.Class<?>[], gnu.jel.DVMap, java.util.HashMap<java.lang.String, java.lang.Class<?>>)public static JELRowReader createDatalessRowReader(StarTable table)
table - context table, or nullpublic static List<Class<?>> getStaticClasses()
public static Class<?> getExpressionType(gnu.jel.Library lib, StarTable table, String expr) throws gnu.jel.CompilationException
lib - JEL librarytable - context tableexpr - string representation of the expressionexpr
using lib will returngnu.jel.CompilationException - if expr cannot be compiledpublic static void checkExpressionType(gnu.jel.Library lib,
StarTable table,
String expr,
Class<?> clazz)
throws gnu.jel.CompilationException
lib - JEL librarytable - context tableexpr - string representation of the expressionclazz - return type required from exprgnu.jel.CompilationException - if expr cannot be compiled
or will return a type other than clazz
(or one of its subtypes)public static gnu.jel.CompiledExpression compile(gnu.jel.Library lib,
StarTable table,
String expr,
Class<?> clazz)
throws gnu.jel.CompilationException
lib - JEL librarytable - context tableexpr - expression stringclazz - required class of resulting expressiongnu.jel.CompilationExceptionpublic static gnu.jel.CompiledExpression compile(gnu.jel.Library lib,
StarTable table,
String expr)
throws gnu.jel.CompilationException
lib - JEL librarytable - context tableexpr - expression stringgnu.jel.CompilationExceptionpublic static JELQuantity compileQuantity(gnu.jel.Library lib, StarTableJELRowReader jelRdr, String expr, Class<?> clazz) throws gnu.jel.CompilationException
compile
methods, but it provides additional metadata if it can be retrieved
from the table context.lib - JEL libraryjelRdr - context table readerexpr - expression stringclazz - required return type of compiled expression,
or null if no requirementgnu.jel.CompilationExceptionpublic static java.util.function.Function<gnu.jel.Library,gnu.jel.CompiledExpression> compiler(StarTable table, String expr, Class<?> clazz) throws gnu.jel.CompilationException
table
ought not to. The returned function therefore does not need to
declare throwing a CompilerException. If for some reason the
deferred compilations do fail, a RuntimeException is returned.table - table from which libraries will be derivedexpr - expression to compileclazz - required result type of expression, or null for automaticgnu.jel.CompilationExceptionpublic static gnu.jel.CompiledExpression[] compileExpressions(StarTableJELRowReader reader, String[] exprs) throws IOException
Any CompilationExceptions are rethrown as IOExceptions; this method should therefore generally be used only if the expressions are expected to be free from errors (have been compiled before).
reader - table readerexprs - strings giving JEL expressions to be compiledIOException - in case of any CompilationExceptionpublic static IOException toIOException(gnu.jel.CompilationException e, String expr)
e - compilation exceptionexpr - expression for which compilation failed,
to be reported in error messagepublic static Class<?> getWrapperType(Class<?> clazz)
clazz is a non-primitive type, it will be returned,
otherwise the wrapper class corresponding to the primitive type
of clazz will be returned
(e.g. Integer for int).clazz - input classclazzCopyright © 2025 Central Laboratory of the Research Councils. All Rights Reserved.