Class ReadyFutureImpl<R>

  • All Implemented Interfaces:
    java.util.concurrent.Future<R>, Cacheable, GrizzlyFuture<R>, FutureImpl<R>

    public final class ReadyFutureImpl<R>
    extends java.lang.Object
    implements FutureImpl<R>
    Future implementation with the specific unmodifiable result.
    Author:
    Alexey Stashok
    See Also:
    Future
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected R result  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addCompletionHandler​(CompletionHandler<R> completionHandler)
      Adds a CompletionHandler, which will be notified once the asynchronous computation, represented by this Future, is complete.
      boolean cancel​(boolean mayInterruptIfRunning)
      Do nothing.
      static <R> ReadyFutureImpl<R> create()
      Construct cancelled Future.
      static <R> ReadyFutureImpl<R> create​(java.lang.Throwable failure)
      Construct failed Future.
      static <R> ReadyFutureImpl<R> create​(R result)
      Construct Future with the result.
      void failure​(java.lang.Throwable failure)
      Should not be called for ReadyFutureImpl
      R get()
      R get​(long timeout, java.util.concurrent.TimeUnit unit)
      R getResult()
      Get current result value without any blocking.
      boolean isCancelled()
      boolean isDone()
      void markForRecycle​(boolean recycleResult)
      Mark GrizzlyFuture as recyclable, so once result will come - GrizzlyFuture object will be recycled and returned to a thread local object pool.
      void recycle()  
      void recycle​(boolean recycleResult)
      Recycle GrizzlyFuture now.
      void result​(R result)
      Set the result value and notify about operation completion.
      void setResult​(R result)
      Should not be called for ReadyFutureImpl
      • Methods inherited from class java.lang.Object

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

      • result

        protected R result
    • Method Detail

      • create

        public static <R> ReadyFutureImpl<R> create()
        Construct cancelled Future.
      • create

        public static <R> ReadyFutureImpl<R> create​(R result)
        Construct Future with the result.
      • create

        public static <R> ReadyFutureImpl<R> create​(java.lang.Throwable failure)
        Construct failed Future.
      • getResult

        public R getResult()
        Get current result value without any blocking.
        Specified by:
        getResult in interface FutureImpl<R>
        Returns:
        current result value without any blocking.
      • setResult

        public void setResult​(R result)
        Should not be called for ReadyFutureImpl
      • cancel

        public boolean cancel​(boolean mayInterruptIfRunning)
        Do nothing.
        Specified by:
        cancel in interface java.util.concurrent.Future<R>
        Returns:
        cancel state, which was set during construction.
      • isCancelled

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

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

        public R get()
              throws java.lang.InterruptedException,
                     java.util.concurrent.ExecutionException
        Specified by:
        get in interface java.util.concurrent.Future<R>
        Throws:
        java.lang.InterruptedException
        java.util.concurrent.ExecutionException
      • get

        public R get​(long timeout,
                     java.util.concurrent.TimeUnit unit)
              throws java.lang.InterruptedException,
                     java.util.concurrent.ExecutionException,
                     java.util.concurrent.TimeoutException
        Specified by:
        get in interface java.util.concurrent.Future<R>
        Throws:
        java.lang.InterruptedException
        java.util.concurrent.ExecutionException
        java.util.concurrent.TimeoutException
      • failure

        public void failure​(java.lang.Throwable failure)
        Should not be called for ReadyFutureImpl
        Specified by:
        failure in interface FutureImpl<R>
      • result

        public void result​(R result)
        Description copied from interface: FutureImpl
        Set the result value and notify about operation completion.
        Specified by:
        result in interface FutureImpl<R>
        Parameters:
        result - the result value
      • markForRecycle

        public void markForRecycle​(boolean recycleResult)
        Description copied from interface: GrizzlyFuture
        Mark GrizzlyFuture as recyclable, so once result will come - GrizzlyFuture object will be recycled and returned to a thread local object pool. You can consider to use this method, if you're not interested in using this GrizzlyFuture object.
        Specified by:
        markForRecycle in interface GrizzlyFuture<R>
        Parameters:
        recycleResult - if true - the GrizzlyFuture result, if it support recyclable mechanism, will be also recycled together with this GrizzlyFuture object.
      • recycle

        public void recycle()
        Specified by:
        recycle in interface Cacheable
      • recycle

        public void recycle​(boolean recycleResult)
        Description copied from interface: GrizzlyFuture
        Recycle GrizzlyFuture now. This method could be used, if you're not interested in using this GrizzlyFuture object, and you're sure this object is not used by any other application part.
        Specified by:
        recycle in interface GrizzlyFuture<R>
        Parameters:
        recycleResult - if true - the GrizzlyFuture result, if it support recyclable mechanism, will be also recycled together with this GrizzlyFuture object.