Class RepeatOperationsInterceptor

  • All Implemented Interfaces:
    org.aopalliance.aop.Advice, org.aopalliance.intercept.Interceptor, org.aopalliance.intercept.MethodInterceptor

    public class RepeatOperationsInterceptor
    extends java.lang.Object
    implements org.aopalliance.intercept.MethodInterceptor
    A MethodInterceptor that can be used to automatically repeat calls to a method on a service. The injected RepeatOperations is used to control the completion of the loop. Independent of the completion policy in the RepeatOperations the loop will repeat until the target method returns null or false. Be careful when injecting a bespoke RepeatOperations that the loop will actually terminate, because the default policy for a vanilla RepeatTemplate will never complete if the return type of the target method is void (the value returned is always not-null, representing the Void.TYPE).
    Author:
    Dave Syer
    • Constructor Detail

      • RepeatOperationsInterceptor

        public RepeatOperationsInterceptor()
    • Method Detail

      • setRepeatOperations

        public void setRepeatOperations​(RepeatOperations batchTemplate)
        Setter for the RepeatOperations.
        Parameters:
        batchTemplate - template to be used
        Throws:
        java.lang.IllegalArgumentException - if the argument is null.
      • invoke

        public java.lang.Object invoke​(org.aopalliance.intercept.MethodInvocation invocation)
                                throws java.lang.Throwable
        Invoke the proceeding method call repeatedly, according to the properties of the injected RepeatOperations.
        Specified by:
        invoke in interface org.aopalliance.intercept.MethodInterceptor
        Throws:
        java.lang.Throwable
        See Also:
        MethodInterceptor.invoke(org.aopalliance.intercept.MethodInvocation)