All Implemented Interfaces:
JexlPropertySet

public final class MapSetExecutor extends AbstractExecutor.Set
Specialized executor to set a property in a Map.
Since:
2.0
  • Constructor Details

    • MapSetExecutor

      public MapSetExecutor(Introspector is, Class<?> clazz, Object key, Object value)
      Creates an instance checking for the Map interface.
      Parameters:
      is - the introspector
      clazz - the class that might implement the map interface
      key - the key to use as argument in map.put(key,value)
      value - the value to use as argument in map.put(key,value)
  • Method Details

    • getTargetProperty

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

      Sets the property value of an object.
      Specified by:
      execute in class AbstractExecutor.Set
      Parameters:
      obj - The object to set the property in.
      value - The value.
      Returns:
      The return value.
      Throws:
      IllegalAccessException - Method is inaccessible.
      InvocationTargetException - Method body throws an exception.
    • tryExecute

      public Object tryExecute(Object obj, Object key, Object value)
      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, 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) and that arg must be a valid argument for this executor underlying method.

      Overrides:
      tryExecute in class AbstractExecutor.Set
      Parameters:
      obj - The object to invoke the method from.
      key - The property to set in the object.
      value - The value to use as the property value.
      Returns:
      The return value or TRY_FAILED if checking failed.