@@ -0,0 +1,1601 @@
+package permafrost.tundra.util.concurrent;%0A%0Aimport java.util.concurrent.Future;%0Aimport java.util.concurrent.TimeUnit;%0A%0A/**%0A * A future that can immediately return a value.%0A *%0A * @param %3CV%3E   The class of the returned value.%0A */%0Apublic class ImmediateFuture%3CV%3E implements Future%3CV%3E %7B%0A    /**%0A     * The value returned by this future.%0A     */%0A    protected V value;%0A%0A    /**%0A     * Creates a new ImmediateFuture.%0A     *%0A     * @param value The value to be returned.%0A     */%0A    public ImmediateFuture(V value) %7B%0A        this.value = value;%0A    %7D%0A%0A    /**%0A     * Does nothing as not applicable to this class.%0A     *%0A     * @param mayInterruptIfRunning Not used.%0A     * @return                      false%0A     */%0A    @Override%0A    public boolean cancel(boolean mayInterruptIfRunning) %7B%0A        return false;%0A    %7D%0A%0A    /**%0A     * Returns the value wrapped by this future.%0A     *%0A     * @return the value wrapped by this future.%0A     */%0A    @Override%0A    public V get() %7B%0A        return value;%0A    %7D%0A%0A    /**%0A     * Returns the value wrapped by this future.%0A     *%0A     * @param timeout   Not used.%0A     * @param unit      Not used.%0A     * @return          The value wrapped by this future.%0A     */%0A    @Override%0A    public V get(long timeout, TimeUnit unit) %7B%0A        return get();%0A    %7D%0A%0A    /**%0A     * Whether the task was cancelled.%0A     *%0A     * @return false%0A     */%0A    @Override%0A    public boolean isCancelled() %7B%0A        return false;%0A    %7D%0A%0A    /**%0A     * Whether the task has completed.%0A     *%0A     * @return true%0A     */%0A    @Override%0A    public boolean isDone() %7B%0A        return true;%0A    %7D%0A%7D%0A

Add ImmediateFuture class