Class AbstractMethodInvokingDelegator<T>

java.lang.Object
org.springframework.batch.item.adapter.AbstractMethodInvokingDelegator<T>
All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean
Direct Known Subclasses:
ItemProcessorAdapter, ItemReaderAdapter, ItemWriterAdapter, MethodInvokingTaskletAdapter, PropertyExtractingDelegatingItemWriter

public abstract class AbstractMethodInvokingDelegator<T> extends Object implements org.springframework.beans.factory.InitializingBean
Superclass for delegating classes which dynamically call a custom method of injected object. Provides convenient API for dynamic method invocation shielding subclasses from low-level details and exception handling.

Exceptions thrown by a successfully invoked delegate method are re-thrown without wrapping. In case the delegate method throws a Throwable that doesn't subclass Exception it will be wrapped by AbstractMethodInvokingDelegator.InvocationTargetThrowableWrapper.

Author:
Robert Kasanicky, Mahmoud Ben Hassine, Glenn Renfro
  • Constructor Details

    • AbstractMethodInvokingDelegator

      public AbstractMethodInvokingDelegator()
  • Method Details

    • invokeDelegateMethod

      protected T invokeDelegateMethod() throws Exception
      Invoker the target method with arguments set by setArguments(Object[]).
      Returns:
      object returned by invoked method
      Throws:
      Exception - exception thrown when executing the delegate method.
    • invokeDelegateMethodWithArgument

      protected T invokeDelegateMethodWithArgument(Object object) throws Exception
      Invokes the target method with given argument.
      Parameters:
      object - argument for the target method
      Returns:
      object returned by target method
      Throws:
      Exception - exception thrown when executing the delegate method.
    • invokeDelegateMethodWithArguments

      protected T invokeDelegateMethodWithArguments(Object[] args) throws Exception
      Invokes the target method with given arguments.
      Parameters:
      args - arguments for the invoked method
      Returns:
      object returned by invoked method
      Throws:
      Exception - exception thrown when executing the delegate method.
    • afterPropertiesSet

      public void afterPropertiesSet() throws Exception
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      Throws:
      Exception
    • setTargetObject

      public void setTargetObject(Object targetObject)
      Parameters:
      targetObject - the delegate - bean id can be used to set this value in Spring configuration
    • setTargetMethod

      public void setTargetMethod(String targetMethod)
      Parameters:
      targetMethod - name of the method to be invoked on setTargetObject(Object).
    • setArguments

      public void setArguments(Object[] arguments)
      Parameters:
      arguments - arguments values for the { setTargetMethod(String). These will be used only when the subclass tries to invoke the target method without providing explicit argument values.

      If arguments are set to not-null value afterPropertiesSet() will check the values are compatible with target method's signature. In case arguments are null (not set) method signature will not be checked and it is assumed correct values will be supplied at runtime.

    • getArguments

      protected Object[] getArguments()
      Return arguments.
      Returns:
      arguments
    • getTargetObject

      protected Object getTargetObject()
      Returns:
      the object on which the method will be invoked.
      Since:
      5.1
    • getTargetMethod

      protected String getTargetMethod()
      Returns:
      the name of the method to be invoked.
      Since:
      5.1