org.apache.commons.jexl3.introspection

## Interface JexlPropertySet

- All Known Implementing Classes:
    AbstractExecutor.Set, DuckSetExecutor, FieldSetExecutor, ListSetExecutor, MapSetExecutor, PropertySetExecutor

      public interface JexlPropertySet

  Interface used for setting values that appear to be properties. Ex. `${foo.bar = "hello"}`
  Since:
    1.0

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and 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 Detail

    - #### 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.

    - #### 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`)

    - #### 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

    - #### 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

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