Clean up of binding broker implementation
[controller.git] / opendaylight / sal / yang-prototype / 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         public static <T> Future<T> immediateFuture(T result) {
13                 return new ImmediateFuture<T>(result);
14         }
15         
16         private static class ImmediateFuture<T> implements Future<T> {
17
18                 private final T result;
19                 
20                 public ImmediateFuture(T result) {
21                         this.result = result;
22                 }
23                 
24                 @Override
25                 public boolean cancel(boolean mayInterruptIfRunning) {
26                         return false;
27                 }
28
29                 @Override
30                 public boolean isCancelled() {
31                         return false;
32                 }
33
34                 @Override
35                 public boolean isDone() {
36                         return true;
37                 }
38
39                 @Override
40                 public T get() throws InterruptedException, ExecutionException {
41                         return result;
42                 }
43
44                 @Override
45                 public T get(long timeout, TimeUnit unit) throws InterruptedException,
46                                 ExecutionException, TimeoutException {
47                         return result;
48                 }
49                 
50         }
51 }