All Implemented Interfaces:
JexlPropertyGet

public final class ListGetExecutor extends AbstractExecutor.Get
Specialized executor to get a property from a List or array.
Since:
2.0
  • Constructor Details

    • ListGetExecutor

      public ListGetExecutor(Introspector is, Class<?> clazz, Integer key)
      Creates an instance checking for the List interface or Array capability.
      Parameters:
      is - the introspector
      clazz - the class to introspect
      key - the key to use in obj.get(key)
  • Method Details

    • getTargetProperty

      public Object getTargetProperty()
      Gets the property targeted by this executor.
      Overrides:
      getTargetProperty in class AbstractExecutor
      Returns:
      the target property
    • execute

      public Object execute(Object obj)
      Get the property from the obj or array.
      Specified by:
      execute in class AbstractExecutor.Get
      Parameters:
      obj - the List/array.
      Returns:
      obj.get(key)
    • tryExecute

      public Object tryExecute(Object obj, Object key)
      Tries to reuse this executor, checking that it is compatible with the actual set of arguments.

      Compatibility means that: o must be of the same class as this executor's target class and property must be of the same class as this executor's target property (for list and map based executors) and have the same value (for other types).

      Overrides:
      tryExecute in class AbstractExecutor.Get
      Parameters:
      obj - The object to get the property from.
      key - The property to get from the object.
      Returns:
      The property value or TRY_FAILED if checking failed.