Interface SafeCallerBuilder<T>

Type Parameters:
T -

@NonNullByDefault public interface SafeCallerBuilder<@NonNull T>
Builder to create a safe-call wrapper for another object.
Author:
Simon Kaufmann - Initial contribution
  • Method Details Link icon

    • build Link icon

      T build()
      Creates a dynamic proxy with the according properties which guards the caller from hanging implementations in the target object.
      Returns:
      the dynamic proxy wrapping the target object
    • withTimeout Link icon

      SafeCallerBuilder<T> withTimeout(long timeout)
      Sets the timeout
      Parameters:
      timeout - the timeout in milliseconds.
      Returns:
      the SafeCallerBuilder itself
    • withIdentifier Link icon

      SafeCallerBuilder<T> withIdentifier(Object identifier)
      Specifies the identifier for the context in which only one thread may be occupied at the same time.
      Parameters:
      identifier - the identifier much must have a proper hashcode()/equals() implementation in order to distinguish different contexts.
      Returns:
      the SafeCallerBuilder itself
    • onException Link icon

      SafeCallerBuilder<T> onException(Consumer<Throwable> exceptionHandler)
      Specifies a callback in case of execution errors.
      Parameters:
      exceptionHandler -
      Returns:
      the SafeCallerBuilder itself
    • onTimeout Link icon

      SafeCallerBuilder<T> onTimeout(Runnable timeoutHandler)
      Specifies a callback in case of timeouts.
      Parameters:
      timeoutHandler -
      Returns:
      the SafeCallerBuilder itself
    • withAsync Link icon

      SafeCallerBuilder<T> withAsync()
      Denotes that the calls should be executed asynchronously, i.e. that they should return immediately and not even block until they reached the timeout.

      By default, calls will be executed synchronously (i.e. blocking) until the timeout is reached.

      Returns:
      the SafeCallerBuilder itself