1336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustpackage org.testng.internal.thread;
2336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust
3336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust
4336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustimport java.util.concurrent.ExecutionException;
5336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustimport java.util.concurrent.Future;
6336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust
7336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust/**
86b25aa4051da296381a83a25971a7a4289543e54the.mindstorm * A very reduced interface of <code>Future</code>.
9336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust *
10336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust * @author <a href="mailto:the_mindstorm@evolva.ro>the_mindstorm</a>
11336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust */
12336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustpublic class FutureResultAdapter implements IFutureResult {
13336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust   Future<?> m_future;
14336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust
15336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust   public FutureResultAdapter(Future<?> future) {
16336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust      m_future = future;
17336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust   }
18336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust
190f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin   @Override
200f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin  public Object get() throws InterruptedException, ThreadExecutionException {
21336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust      try {
22336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust         return m_future.get();
230f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin      }
246b25aa4051da296381a83a25971a7a4289543e54the.mindstorm      catch(ExecutionException ee) {
256b25aa4051da296381a83a25971a7a4289543e54the.mindstorm         throw new ThreadExecutionException(ee.getCause()); // NOTE there is no need to keep the EE
26336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust      }
27336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust   }
28336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust}