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.internal.introspection
Class IndexedType

    java.lang.Object
      org.apache.commons.jexl3.internal.introspection.IndexedType

All Implemented Interfaces:
  JexlPropertyGet

    public final class IndexedType

extends Object
implements JexlPropertyGet

Abstract an indexed property container.

This allows getting properties from expressions like `var.container.property`. This stores the container name and class as well as the list of available getter and setter methods. It implements JexlPropertyGet since such a container can only be accessed from its owning instance (not set).

Nested Class Summary
`static class` | `IndexedType.IndexedContainer` A generic indexed property container, exposes get(key) and set(key, value) and solves method call dynamically based on arguments.

Method Summary
`static JexlPropertyGet` | `discover(Introspector is, Object object, String name)` Attempts to find an indexed-property getter in an object.
`Object` | `invoke(Object obj)` Method used to get the property value of an object.
`boolean` | `isCacheable()` Specifies if this JexlPropertyGet is cacheable and able to be reused for this class of object it was returned for.
`boolean` | `tryFailed(Object rval)` Checks whether a tryInvoke failed or not.
`Object` | `tryInvoke(Object obj, Object key)` Attempts to reuse this JexlPropertyGet, checking that it is compatible with the actual set of arguments.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### discover

    public static JexlPropertyGet discover(Introspector is,
                                           Object object,
                                           String name)

  Attempts to find an indexed-property getter in an object. The code attempts to find the list of methods getXXX() and setXXX(). Note that this is not equivalent to the strict bean definition of indexed properties; the type of the key is not necessarily an int and the set/get arrays are not resolved.

  Parameters:
    `is` - the introspector
    `object` - the object
    `name` - the container name
  Returns:
    a JexlPropertyGet is successful, null otherwise

### invoke

    public Object invoke(Object obj)
                  throws Exception

  Description copied from interface: `JexlPropertyGet`
  Method used to get the property value of an object.

  Specified by:
    `invoke` in interface `JexlPropertyGet`
  Parameters:
    `obj` - the object to get the property value from.
  Returns:
    the property value.
  Throws:
    `Exception` - on any error.

### tryInvoke

    public Object tryInvoke(Object obj,
                            Object key)

  Description copied from interface: `JexlPropertyGet`
  Attempts to reuse this JexlPropertyGet, checking that it is compatible with the actual set of arguments.

  Specified by:
    `tryInvoke` in interface `JexlPropertyGet`
  Parameters:
    `obj` - the object to invoke the property get upon
    `key` - the property key to get
  Returns:
    the result of the method invocation that should be checked by tryFailed to determine if it succeeded or failed.

### tryFailed

    public boolean tryFailed(Object rval)

  Description copied from interface: `JexlPropertyGet`
  Checks whether a tryInvoke failed or not.

  Specified by:
    `tryFailed` in interface `JexlPropertyGet`
  Parameters:
    `rval` - the value returned by tryInvoke
  Returns:
    true if tryInvoke failed, false otherwise

### isCacheable

    public boolean isCacheable()

  Description copied from interface: `JexlPropertyGet`
  Specifies if this JexlPropertyGet is cacheable and able to be reused for this class of object it was returned for.

  Specified by:
    `isCacheable` in interface `JexlPropertyGet`
  Returns:
    true if can be reused for this class, false if not

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.