d9cf5cc477aa2a81cd33796dd6b5f90b488fb1b9
[controller.git] / opendaylight / md-sal / sal-common-util / src / main / java / org / opendaylight / controller / sal / common / util / Futures.java
1 package org.opendaylight.controller.sal.common.util;
2
3 import java.util.concurrent.ExecutionException;
4 import java.util.concurrent.Future;
5 import java.util.concurrent.TimeUnit;
6 import java.util.concurrent.TimeoutException;
7
8 public class Futures {
9
10     private Futures() {
11     }
12
13     public static <T> Future<T> immediateFuture(T result) {
14         return new ImmediateFuture<T>(result);
15     }
16
17     private static class ImmediateFuture<T> implements Future<T> {
18
19         private final T result;
20
21         public ImmediateFuture(T result) {
22             this.result = result;
23         }
24
25         @Override
26         public boolean cancel(boolean mayInterruptIfRunning) {
27             return false;
28         }
29
30         @Override
31         public boolean isCancelled() {
32             return false;
33         }
34
35         @Override
36         public boolean isDone() {
37             return true;
38         }
39
40         @Override
41         public T get() throws InterruptedException, ExecutionException {
42             return result;
43         }
44
45         @Override
46         public T get(long timeout, TimeUnit unit) throws InterruptedException,
47                 ExecutionException, TimeoutException {
48             return result;
49         }
50
51     }
52 }