Interface JexlUberspect
public interface JexlUberspect
'Federated' introspection/reflection interface to allow JEXL introspection
 behavior to be customized.
- Since:
- 1.0
- 
Nested Class SummaryNested ClassesModifier and TypeInterfaceDescriptionstatic enumThe various builtin property resolvers.static interfaceAbstracts getting property setter and getter.static interfaceDetermines property resolution strategy.
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final JexlUberspect.ResolverStrategyThe default strategy.static final List<JexlUberspect.PropertyResolver> A resolver types list tailored for Maps, favors '[]' over '.'.static final JexlUberspect.ResolverStrategyThe map strategy.static final List<JexlUberspect.PropertyResolver> A resolver types list tailored for POJOs, favors '.' over '[]'.
- 
Method SummaryModifier and TypeMethodDescriptiongetArithmetic(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.Gets the current class loader.getConstructor(Object ctorHandle, Object... args) Returns a class constructor.Iterator<?> getIterator(Object obj) Gets an iterator from an object.Returns a JexlMethod.default JexlOperator.UberspectgetOperator(JexlArithmetic arithmetic) Gets an arithmetic operator executor for a given arithmetic instance.getPropertyGet(Object obj, Object identifier) Property getter.getPropertyGet(List<JexlUberspect.PropertyResolver> resolvers, Object obj, Object identifier) Property getter.getPropertySet(Object obj, Object identifier, Object arg) Property setter.getPropertySet(List<JexlUberspect.PropertyResolver> resolvers, Object obj, Object identifier, Object arg) Property setter.getResolvers(JexlOperator op, Object obj) Applies this uberspect property resolver strategy.intGets this uberspect version.voidsetClassLoader(ClassLoader loader) Sets the class loader to use.
- 
Field Details- 
POJOA resolver types list tailored for POJOs, favors '.' over '[]'.
- 
MAPA resolver types list tailored for Maps, favors '[]' over '.'.
- 
JEXL_STRATEGYThe default 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. 
- 
MAP_STRATEGYThe 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. 
 
- 
- 
Method Details- 
getArithmeticGets an arithmetic operator resolver for a given arithmetic instance.- Parameters:
- arithmetic- the arithmetic instance
- Returns:
- the arithmetic uberspect or null if no operator method were overridden
- Since:
- 3.0
- See Also:
 
- 
getOperatorGets an arithmetic operator executor for a given arithmetic instance.- Parameters:
- arithmetic- the arithmetic instance
- Returns:
- an operator uberspect instance
- Since:
- 3.5.0
 
- 
getClassByNameSeeks a class by name using this uberspect class-loader.- Parameters:
- className- the class name
- Returns:
- the class instance or null if the class cannot be located by this uberspect class loader or if permissions deny access to the class
 
- 
getClassLoaderGets the current class loader.- Returns:
- the class loader
 
- 
getConstructorReturns a class constructor.- Parameters:
- ctorHandle- a class or class name
- args- constructor arguments
- Returns:
- a JexlMethod
- Since:
- 3.0
 
- 
getIteratorGets an iterator from an object.- Parameters:
- obj- to get the iterator from
- Returns:
- an iterator over obj or null
 
- 
getMethodReturns a JexlMethod.- Parameters:
- obj- the object
- method- the method name
- args- method arguments
- Returns:
- a JexlMethod
 
- 
getPropertyGetJexlPropertyGet getPropertyGet(List<JexlUberspect.PropertyResolver> resolvers, Object obj, Object identifier) Property getter.Seeks a JexlPropertyGet apropos to an expression like Seebar.woogie.JexlUberspect.ResolverStrategy.apply(JexlOperator, java.lang.Object)- Parameters:
- resolvers- the list of property resolvers to try
- obj- the object to get the property from
- identifier- property name
- Returns:
- a JexlPropertyGetor null
- Since:
- 3.0
 
- 
getPropertyGetProperty getter.returns a JelPropertySet apropos to an expression like bar.woogie.- Parameters:
- obj- the object to get the property from
- identifier- property name
- Returns:
- a JexlPropertyGetor null
 
- 
getPropertySetJexlPropertySet getPropertySet(List<JexlUberspect.PropertyResolver> resolvers, Object obj, Object identifier, Object arg) Property setter.Seeks a JelPropertySet apropos to an expression like Seefoo.bar = "geir".JexlUberspect.ResolverStrategy.apply(JexlOperator, java.lang.Object)- Parameters:
- resolvers- the list of property resolvers to try,
- obj- the object to get the property from
- identifier- property name
- arg- value to set
- Returns:
- a JexlPropertySetor null
- Since:
- 3.0
 
- 
getPropertySetProperty setter.Seeks a JelPropertySet apropos to an expression like foo.bar = "geir".- Parameters:
- obj- the object to get the property from.
- identifier- property name
- arg- value to set
- Returns:
- a JexlPropertySetor null
 
- 
getResolversApplies this uberspect property resolver strategy.- Parameters:
- op- the operator
- obj- the object
- Returns:
- the applied strategy resolver list
 
- 
getVersionint getVersion()Gets this uberspect version.- Returns:
- the class loader modification count
 
- 
setClassLoaderSets the class loader to use.This increments the version. - Parameters:
- loader- the class loader
 
 
-