org.xnio.FinishedIoFuture Maven / Gradle / Ivy
Go to download
This artifact provides a single jar that contains all classes required to use remote EJB and JMS, including
all dependencies. It is intended for use by those not using maven, maven users should just import the EJB and
JMS BOM's instead (shaded JAR's cause lots of problems with maven, as it is very easy to inadvertently end up
with different versions on classes on the class path).
package org.xnio;
import java.io.IOException;
import java.util.concurrent.CancellationException;
import java.util.concurrent.TimeUnit;
import static org.xnio.IoFuture.Status.DONE;
/**
* An implementation of {@link IoFuture} that represents an immediately-successful operation.
*
* @param the type of result that this operation produces
*/
public class FinishedIoFuture implements IoFuture {
private final T result;
/**
* Create an instance.
*
* @param result the operation result
*/
public FinishedIoFuture(T result) {
this.result = result;
}
/**
* Cancel the operation. Since this operation is always complete, this is a no-op.
*
* @return this instance
*/
public IoFuture cancel() {
return this;
}
@Override
public Status getStatus() {
return DONE;
}
@Override
public Status await() {
return DONE;
}
@Override
public Status await(final long time, final TimeUnit timeUnit) {
return DONE;
}
@Override
public Status awaitInterruptibly() throws InterruptedException {
return DONE;
}
@Override
public Status awaitInterruptibly(final long time, final TimeUnit timeUnit) throws InterruptedException {
return DONE;
}
@Override
public T get() throws IOException, CancellationException {
return result;
}
@Override
public T getInterruptibly() throws IOException, InterruptedException, CancellationException {
return result;
}
@Override
public IOException getException() throws IllegalStateException {
throw new IllegalStateException();
}
@Override
public IoFuture addNotifier(final Notifier super T, A> notifier, final A attachment) {
notifier.notify(this, attachment);
return this;
}
}