package org.testng.internal.thread;


import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;

/**
 * A very reduced interface of <code>Future</code>.
 *
 * @author <a href="mailto:the_mindstorm@evolva.ro>the_mindstorm</a>
 */
public class FutureResultAdapter implements IFutureResult {
   Future<?> m_future;

   public FutureResultAdapter(Future<?> future) {
      m_future = future;
   }

   public Object get() throws InterruptedException, ThreadExecutionException {
      try {
         return m_future.get();
      } 
      catch(ExecutionException ee) {
         throw new ThreadExecutionException(ee.getCause()); // NOTE there is no need to keep the EE
      }
   }
}