Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.jexl3.introspection
Interface JexlUberspect

All Known Implementing Classes:
  SandboxUberspect, Uberspect

    public interface JexlUberspect

'Federated' introspection/reflection interface to allow JEXL introspection behavior to be customized.

Since:
  1.0

Nested Class Summary
`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.

Field Summary
`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 '[]'.

Method Summary
`JexlArithmetic.Uberspect` | `getArithmetic(JexlArithmetic arithmetic)` Gets an arithmetic operator resolver for a given arithmetic instance.
`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.

Field Detail

### POJO

    static final List<JexlUberspect.PropertyResolver> POJO

  A resolver types list tailored for POJOs, favors '.' over '[]'.

### MAP

    static final List<JexlUberspect.PropertyResolver> MAP

  A resolver types list tailored for Maps, favors '[]' over '.'.

### JEXL_STRATEGY

    static final JexlUberspect.ResolverStrategy JEXL_STRATEGY

  The 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_STRATEGY

    static final JexlUberspect.ResolverStrategy MAP_STRATEGY

  The 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 Detail

### getResolvers

    List<JexlUberspect.PropertyResolver> getResolvers(JexlOperator op,
                                                      Object obj)

  Applies this uberspect property resolver strategy.

  Parameters:
    `op` - the operator
    `obj` - the object
  Returns:
    the applied strategy resolver list

### setClassLoader

    void setClassLoader(ClassLoader loader)

  Sets the class loader to use.

  This increments the version.

  Parameters:
    `loader` - the class loader

### getVersion

    int getVersion()

  Gets this uberspect version.

  Returns:
    the class loader modification count

### getConstructor

    JexlMethod getConstructor(Object ctorHandle,
                              Object... args)

  Returns a class constructor.

  Parameters:
    `ctorHandle` - a class or class name
    `args` - constructor arguments
  Returns:
    a `JexlMethod`
  Since:
    3.0

### getMethod

    JexlMethod getMethod(Object obj,
                         String method,
                         Object... args)

  Returns a JexlMethod.

  Parameters:
    `obj` - the object
    `method` - the method name
    `args` - method arguments
  Returns:
    a `JexlMethod`

### getPropertyGet

    JexlPropertyGet getPropertyGet(Object obj,
                                   Object identifier)

  Property 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 `JexlPropertyGet` or null

### getPropertyGet

    JexlPropertyGet getPropertyGet(List<JexlUberspect.PropertyResolver> resolvers,
                                   Object obj,
                                   Object identifier)

  Property getter.

  Seeks a JexlPropertyGet apropos to an expression like `bar.woogie`.

  See `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 `JexlPropertyGet` or null
  Since:
    3.0

### getPropertySet

    JexlPropertySet getPropertySet(Object obj,
                                   Object identifier,
                                   Object arg)

  Property 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 `JexlPropertySet` or null

### getPropertySet

    JexlPropertySet getPropertySet(List<JexlUberspect.PropertyResolver> resolvers,
                                   Object obj,
                                   Object identifier,
                                   Object arg)

  Property setter.

  Seeks a JelPropertySet apropos to an expression like `foo.bar = "geir"`.

  See `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 `JexlPropertySet` or null
  Since:
    3.0

### getIterator

    Iterator<?> getIterator(Object obj)

  Gets an iterator from an object.

  Parameters:
    `obj` - to get the iterator from
  Returns:
    an iterator over obj or null

### getArithmetic

    JexlArithmetic.Uberspect getArithmetic(JexlArithmetic arithmetic)

  Gets 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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001–2017 The Apache Software Foundation. All rights reserved.