Class PropertySetExecutor

  • All Implemented Interfaces:
    JexlPropertySet

    public final class PropertySetExecutor
    extends AbstractExecutor.Set
    Specialized executor to set a property in an object.
    Since:
    2.0
    • Constructor Detail

      • PropertySetExecutor

        public PropertySetExecutor​(Introspector is,
                                   java.lang.Class<?> clazz,
                                   java.lang.String identifier,
                                   java.lang.Object arg)
        Creates an instance by attempting discovery of the set method.
        Parameters:
        is - the introspector
        clazz - the class to introspect
        identifier - the property to set
        arg - the value to set into the property
    • Method Detail

      • getTargetProperty

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

        public java.lang.Object execute​(java.lang.Object o,
                                        java.lang.Object arg)
                                 throws java.lang.IllegalAccessException,
                                        java.lang.reflect.InvocationTargetException
        Sets the property value of an object.
        Specified by:
        execute in class AbstractExecutor.Set
        Parameters:
        o - The object to set the property in.
        arg - The value.
        Returns:
        The return value.
        Throws:
        java.lang.IllegalAccessException - Method is inaccessible.
        java.lang.reflect.InvocationTargetException - Method body throws an exception.
      • tryExecute

        public java.lang.Object tryExecute​(java.lang.Object o,
                                           java.lang.Object identifier,
                                           java.lang.Object arg)
        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:
        o - The object to invoke the method from.
        identifier - The property to set in the object.
        arg - The value to use as the property value.
        Returns:
        The return value or TRY_FAILED if checking failed.