package com.voxeo.moho; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import com.voxeo.moho.common.util.SettableResultFuture; import com.voxeo.moho.event.JoinCompleteEvent; public class SettableJointImpl implements Joint { protected SettableResultFuture<JoinCompleteEvent> _future = new SettableResultFuture<JoinCompleteEvent>(); public SettableJointImpl() { super(); } @Override public boolean cancel(boolean mayInterruptIfRunning) { return _future.cancel(mayInterruptIfRunning); } @Override public JoinCompleteEvent get() throws InterruptedException, ExecutionException { return _future.get(); } @Override public JoinCompleteEvent get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException { return _future.get(timeout, unit); } @Override public boolean isCancelled() { return _future.isDone(); } @Override public boolean isDone() { return _future.isDone(); } public void done(final JoinCompleteEvent event) { _future.setResult(event); } public void done(final Exception ex) { _future.setException(ex); } }