Package org.apache.commons.jexl3.introspection

# Interface JexlPropertyGet

public interface JexlPropertyGet
Interface for getting values that appear to be properties. Ex. `${foo.bar}`

Since:
  1.0

- ## Method Summary

  Modifier and Type
  Method
  Description
  `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.
  `default boolean`
  `isConstant()`
  Checks whether this JexlPropertyGet returns a constant.
  `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.

- ## Method Details

  - ### invoke

    Object invoke(Object obj) throws Exception
    Method used to get the property value of an object.
    Parameters:
      `obj` - the object to get the property value from.
    Returns:
      the property value.
    Throws:
      `Exception` - on any error.

  - ### isCacheable

    boolean isCacheable()
    Specifies if this JexlPropertyGet is cacheable and able to be reused for this class of object it was returned for.
    Returns:
      true if can be reused for this class, false if not

  - ### isConstant

    default boolean isConstant()
    Checks whether this JexlPropertyGet returns a constant.
    Returns:
      true if invoking this getter will always return the same value, false otherwise

  - ### tryFailed

    boolean tryFailed(Object rval)
    Checks whether a tryInvoke failed or not.
    Parameters:
      `rval` - the value returned by tryInvoke
    Returns:
      true if tryInvoke failed, false otherwise

  - ### tryInvoke

    Object tryInvoke(Object obj, Object key) throws JexlException.TryFailed
    Attempts to reuse this JexlPropertyGet, checking that it is compatible with the actual set of arguments.
    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.
    Throws:
      `JexlException.TryFailed` - if the underlying method was invoked but threw an exception (`InvocationTargetException`)