public interface JexlUberspect
Modifier and Type | Interface and Description |
---|---|
static class |
JexlUberspect.JexlResolver
The various builtin property resolvers.
|
static interface |
JexlUberspect.PropertyResolver
Abstracts getting property setter and getter.
|
static interface |
JexlUberspect.ResolverStrategy
Determines property resolution strategy.
|
Modifier and Type | Field and Description |
---|---|
static JexlUberspect.ResolverStrategy |
JEXL_STRATEGY
The default strategy.
|
static List<JexlUberspect.PropertyResolver> |
MAP
A resolver types list tailored for Maps, favors '[]' over '.'.
|
static JexlUberspect.ResolverStrategy |
MAP_STRATEGY
The map strategy.
|
static List<JexlUberspect.PropertyResolver> |
POJO
A resolver types list tailored for POJOs, favors '.' over '[]'.
|
Modifier and Type | Method and Description |
---|---|
JexlArithmetic.Uberspect |
getArithmetic(JexlArithmetic arithmetic)
Gets an arithmetic operator resolver for a given arithmetic instance.
|
default Class<?> |
getClassByName(String className)
Seeks a class by name using this uberspect class-loader.
|
ClassLoader |
getClassLoader()
Gets the current class loader.
|
JexlMethod |
getConstructor(Object ctorHandle,
Object... args)
Returns a class constructor.
|
Iterator<?> |
getIterator(Object obj)
Gets an iterator from an object.
|
JexlMethod |
getMethod(Object obj,
String method,
Object... args)
Returns a JexlMethod.
|
JexlPropertyGet |
getPropertyGet(List<JexlUberspect.PropertyResolver> resolvers,
Object obj,
Object identifier)
Property getter.
|
JexlPropertyGet |
getPropertyGet(Object obj,
Object identifier)
Property getter.
|
JexlPropertySet |
getPropertySet(List<JexlUberspect.PropertyResolver> resolvers,
Object obj,
Object identifier,
Object arg)
Property setter.
|
JexlPropertySet |
getPropertySet(Object obj,
Object identifier,
Object arg)
Property setter.
|
List<JexlUberspect.PropertyResolver> |
getResolvers(JexlOperator op,
Object obj)
Applies this uberspect property resolver strategy.
|
int |
getVersion()
Gets this uberspect version.
|
void |
setClassLoader(ClassLoader loader)
Sets the class loader to use.
|
static final List<JexlUberspect.PropertyResolver> POJO
static final List<JexlUberspect.PropertyResolver> MAP
static final JexlUberspect.ResolverStrategy JEXL_STRATEGY
If the operator is '[]' or if the operator is null and the object is a map, use the MAP list of resolvers; Other cases use the POJO list of resolvers.
static final JexlUberspect.ResolverStrategy MAP_STRATEGY
If the operator is '[]' or if the object is a map, use the MAP list of resolvers. Otherwise, use the POJO list of resolvers.
List<JexlUberspect.PropertyResolver> getResolvers(JexlOperator op, Object obj)
op
- the operatorobj
- the objectvoid setClassLoader(ClassLoader loader)
This increments the version.
loader
- the class loaderClassLoader getClassLoader()
int getVersion()
default Class<?> getClassByName(String className)
className
- the class nameJexlMethod getConstructor(Object ctorHandle, Object... args)
ctorHandle
- a class or class nameargs
- constructor argumentsJexlMethod
JexlMethod getMethod(Object obj, String method, Object... args)
obj
- the objectmethod
- the method nameargs
- method argumentsJexlMethod
JexlPropertyGet getPropertyGet(Object obj, Object identifier)
returns a JelPropertySet apropos to an expression like bar.woogie
.
obj
- the object to get the property fromidentifier
- property nameJexlPropertyGet
or nullJexlPropertyGet getPropertyGet(List<JexlUberspect.PropertyResolver> resolvers, Object obj, Object identifier)
Seeks a JexlPropertyGet apropos to an expression like bar.woogie
.
JexlUberspect.ResolverStrategy.apply(JexlOperator, java.lang.Object)
resolvers
- the list of property resolvers to tryobj
- the object to get the property fromidentifier
- property nameJexlPropertyGet
or nullJexlPropertySet getPropertySet(Object obj, Object identifier, Object arg)
Seeks a JelPropertySet apropos to an expression like foo.bar = "geir"
.
obj
- the object to get the property from.identifier
- property namearg
- value to setJexlPropertySet
or nullJexlPropertySet getPropertySet(List<JexlUberspect.PropertyResolver> resolvers, Object obj, Object identifier, Object arg)
Seeks a JelPropertySet apropos to an expression like foo.bar = "geir"
.
JexlUberspect.ResolverStrategy.apply(JexlOperator, java.lang.Object)
resolvers
- the list of property resolvers to try,obj
- the object to get the property fromidentifier
- property namearg
- value to setJexlPropertySet
or nullIterator<?> getIterator(Object obj)
obj
- to get the iterator fromJexlArithmetic.Uberspect getArithmetic(JexlArithmetic arithmetic)
arithmetic
- the arithmetic instanceCopyright © 2001–2022 The Apache Software Foundation. All rights reserved.