Class BambooCallables
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
static interface
BambooCallables.Throwing<V,
E1 extends Throwable> static interface
BambooCallables.Throwing1<V,
E1 extends Throwable> static interface
static interface
-
Method Summary
Modifier and TypeMethodDescriptionstatic <V> V
callUnchecked
(Callable<V> callable) static <V> BambooCallables.NotThrowing<V>
notThrowing
(BambooCallables.ThrowingX<V, ? extends Exception, ? extends Exception, ? extends Exception> callable) Returns a wrapped callable which does not throw checked exceptions.static <V> V
retryOnException
(BambooCallables.NotThrowing<V> callable, Predicate<RuntimeException> exceptionPredicate) Utility to re-attempt to execute a callable if it fails with a known exception.static <V> V
retryOnException
(BambooCallables.NotThrowing<V> callable, Predicate<RuntimeException> exceptionPredicate, int maxRetryCount) Utility to re-attempt to execute a callable if it fails with a known exception up to maxRetryCount times.static <V,
E extends Throwable>
VretryOnException
(BambooCallables.Throwing<V, E> callable, Class<E> exceptionClass) Utility to re-attempt to execute a callable if it fails with a known exception.static <V,
E extends Throwable>
VretryOnExceptions
(BambooCallables.Throwing<V, E> callable, Class<? extends Throwable>... exceptionClass) Utility to re-attempt to execute a callable if it fails with a known exceptions.
-
Method Details
-
callUnchecked
-
notThrowing
public static <V> BambooCallables.NotThrowing<V> notThrowing(BambooCallables.ThrowingX<V, ? extends Exception, ? extends Exception, ? extends Exception> callable) Returns a wrapped callable which does not throw checked exceptions. All checked exceptions thrown by the underlying callable are wrapped and re-thrown as runtime exceptions.- Type Parameters:
V
- type of returned value- Parameters:
callable
- throwing callable- Returns:
- a decorated callable which does not throw checked exceptions
-
retryOnException
public static <V,E extends Throwable> V retryOnException(BambooCallables.Throwing<V, E> callable, Class<E> exceptionClass) throws EUtility to re-attempt to execute a callable if it fails with a known exception.If the given callable fails with the provided exception class, this method will re-run the callable in attempt to obtain the result again. Subsequent failure will not be handled and the exception will be propagated.
If the callable fails with a different exception than was expected, the actual exception will be re-thrown by this method.
- Throws:
E extends Throwable
-
retryOnExceptions
public static <V,E extends Throwable> V retryOnExceptions(BambooCallables.Throwing<V, E> callable, Class<? extends Throwable>... exceptionClass) throws EUtility to re-attempt to execute a callable if it fails with a known exceptions.If the given callable fails with the provided exception class, this method will re-run the callable in attempt to obtain the result again. Subsequent failure will not be handled and the exception will be propagated.
If the callable fails with a different exception than was expected, the actual exception will be re-thrown by this method.
- Throws:
E extends Throwable
-
retryOnException
public static <V> V retryOnException(BambooCallables.NotThrowing<V> callable, Predicate<RuntimeException> exceptionPredicate) Utility to re-attempt to execute a callable if it fails with a known exception.If the given callable fails with an exception that matches the given predicate, this method will re-run the callable in attempt to obtain the result again. Subsequent failure will not be handled and the exception will be propagated.
If the callable fails with a different exception than was expected, the actual exception will be re-thrown by this method.
-
retryOnException
public static <V> V retryOnException(BambooCallables.NotThrowing<V> callable, Predicate<RuntimeException> exceptionPredicate, int maxRetryCount) Utility to re-attempt to execute a callable if it fails with a known exception up to maxRetryCount times.If the given callable fails with an exception that matches the given predicate, this method will re-run the callable in attempt to obtain the result again. Subsequent failure will not be handled and the exception will be propagated.
If the callable fails with a different exception than was expected, the actual exception will be re-thrown by this method.
-