# Class FairBlockingQueue.ItemFuture<T>

java.lang.Object
org.apache.tomcat.jdbc.pool.FairBlockingQueue.ItemFuture<T>

Type Parameters:
  `T` - the type of the item

All Implemented Interfaces:
  `Future<T>`

Enclosing class:
  `FairBlockingQueue<E>`

protected class FairBlockingQueue.ItemFuture<T> extends Object implements Future<T>
A non-cancellable future used to check if a connection has been made available.

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Future

  `Future.State`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected boolean`
  `canceled`
  Whether this future has been cancelled.
  `protected T`
  `item`
  The item directly available in the future.
  `protected FairBlockingQueue<E>.ExchangeCountDownLatch<T>`
  `latch`
  The latch used to wait for an item.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ItemFuture(FairBlockingQueue<E>.ExchangeCountDownLatch<T> latch)`
  Creates an ItemFuture that waits on the given latch.
  `ItemFuture(T item)`
  Creates an ItemFuture with the given item already available.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `cancel(boolean mayInterruptIfRunning)`
  `T`
  `get()`
  `T`
  `get(long timeout, TimeUnit unit)`
  `boolean`
  `isCancelled()`
  `boolean`
  `isDone()`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface Future

  `exceptionNow, resultNow, state`

- ## Field Details

  - ### item

    protected volatile T item
    The item directly available in the future.

  - ### latch

    protected volatile FairBlockingQueue<E>.ExchangeCountDownLatch<T> latch
    The latch used to wait for an item.

  - ### canceled

    protected volatile boolean canceled
    Whether this future has been cancelled.

- ## Constructor Details

  - ### ItemFuture

    public ItemFuture(T item)
    Creates an ItemFuture with the given item already available.
    Parameters:
      `item` - the item

  - ### ItemFuture

    public ItemFuture(FairBlockingQueue<E>.ExchangeCountDownLatch<T> latch)
    Creates an ItemFuture that waits on the given latch.
    Parameters:
      `latch` - the latch to wait on

- ## Method Details

  - ### cancel

    public boolean cancel(boolean mayInterruptIfRunning)
    Specified by:
      `cancel` in interface `Future<T>`

  - ### get

    public T get() throws InterruptedException, ExecutionException
    Specified by:
      `get` in interface `Future<T>`
    Throws:
      `InterruptedException`
      `ExecutionException`

  - ### get

    public T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
    Specified by:
      `get` in interface `Future<T>`
    Throws:
      `InterruptedException`
      `ExecutionException`
      `TimeoutException`

  - ### isCancelled

    public boolean isCancelled()
    Specified by:
      `isCancelled` in interface `Future<T>`

  - ### isDone

    public boolean isDone()
    Specified by:
      `isDone` in interface `Future<T>`