public static <A extends BaseDataSiftResult> FutureData<A> wrap(A obj) {
if (obj == null) {
throw new IllegalArgumentException("You cannot wrap null as future data");
}
FutureData<A> future = new FutureData<A>();
obj.setResponse(new WrappedResponse());
future.data = obj;
return future;
}