Package org.apache.commons.jexl3.introspection

# Interface JexlPropertySet

public interface JexlPropertySet
Interface used for setting values that appear to be properties. Ex. `${foo.bar = "hello"}`

Since:
  1.0

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `invoke(Object obj, Object arg)`
  Method used to set the property value of an object.
  `boolean`
  `isCacheable()`
  Specifies if this JexlPropertySet 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, Object value)`
  Attempts to reuse this JexlPropertySet, checking that it is compatible with the actual set of arguments.

- ## Method Details

  - ### invoke

    Object invoke(Object obj, Object arg) throws Exception
    Method used to set the property value of an object.
    Parameters:
      `obj` - Object on which the property setter will be called with the value
      `arg` - value to be set
    Returns:
      the value returned from the set operation (impl specific)
    Throws:
      `Exception` - on any error.

  - ### isCacheable

    boolean isCacheable()
    Specifies if this JexlPropertySet 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

  - ### 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, Object value) throws JexlException.TryFailed
    Attempts to reuse this JexlPropertySet, checking that it is compatible with the actual set of arguments.
    Parameters:
      `obj` - the object to invoke the get upon
      `key` - the property key to get
      `value` - the property value to set
    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`)