Class BaseFuture<V>

    • Constructor Summary

      Constructors 
      Constructor Description
      BaseFuture()  
    • Method Summary

      Modifier and Type Method Description
      protected boolean blockingAllowed()  
      boolean cancel​(boolean mayInterruptIfRunning)  
      protected void done()  
      V get()
      V get​(long timeout, java.util.concurrent.TimeUnit unit)
      protected void interruptTask()
      Subclasses can override this method to implement interruption of the future's computation.
      boolean isCancelled()  
      boolean isDone()  
      protected boolean set​(V value)
      Subclasses should invoke this method to set the result of the computation to value.
      protected boolean setException​(java.lang.Throwable throwable)
      Subclasses should invoke this method to set the result of the computation to an error, throwable.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BaseFuture

        public BaseFuture()
    • Method Detail

      • get

        public V get​(long timeout,
                     java.util.concurrent.TimeUnit unit)
              throws java.lang.InterruptedException,
                     java.util.concurrent.TimeoutException,
                     java.util.concurrent.ExecutionException

        The default BaseFuture implementation throws InterruptedException if the current thread is interrupted before or during the call, even if the value is already available.

        Specified by:
        get in interface java.util.concurrent.Future<V>
        Throws:
        java.lang.InterruptedException - if the current thread was interrupted before or during the call (optional but recommended).
        java.util.concurrent.CancellationException
        java.util.concurrent.TimeoutException
        java.util.concurrent.ExecutionException
      • get

        public V get()
              throws java.lang.InterruptedException,
                     java.util.concurrent.ExecutionException

        The default BaseFuture implementation throws InterruptedException if the current thread is interrupted before or during the call, even if the value is already available.

        Specified by:
        get in interface java.util.concurrent.Future<V>
        Throws:
        java.lang.InterruptedException - if the current thread was interrupted before or during the call (optional but recommended).
        java.util.concurrent.CancellationException
        java.util.concurrent.ExecutionException
      • blockingAllowed

        protected boolean blockingAllowed()
      • isDone

        public boolean isDone()
        Specified by:
        isDone in interface java.util.concurrent.Future<V>
      • isCancelled

        public boolean isCancelled()
        Specified by:
        isCancelled in interface java.util.concurrent.Future<V>
      • cancel

        public boolean cancel​(boolean mayInterruptIfRunning)
        Specified by:
        cancel in interface java.util.concurrent.Future<V>
      • interruptTask

        protected void interruptTask()
        Subclasses can override this method to implement interruption of the future's computation. The method is invoked automatically by a successful call to cancel(true).

        The default implementation does nothing.

        Since:
        10.0
      • set

        protected boolean set​(@Nullable
                              V value)
        Subclasses should invoke this method to set the result of the computation to value. This will set the state of the future to BaseFuture.Sync.COMPLETED and call done() if the state was successfully changed.
        Parameters:
        value - the value that was the result of the task.
        Returns:
        true if the state was successfully changed.
      • setException

        protected boolean setException​(java.lang.Throwable throwable)
        Subclasses should invoke this method to set the result of the computation to an error, throwable. This will set the state of the future to BaseFuture.Sync.COMPLETED and call done() if the state was successfully changed.
        Parameters:
        throwable - the exception that the task failed with.
        Returns:
        true if the state was successfully changed.
        Throws:
        java.lang.Error - if the throwable was an Error.
      • done

        protected void done()