1 package com.atlassian.httpclient.api;
2
3 import com.atlassian.util.concurrent.ForwardingPromise;
4 import com.atlassian.util.concurrent.Promise;
5
6 import static com.google.common.base.Preconditions.checkNotNull;
7
8 final class WrappingResponsePromise extends ForwardingPromise<Response> implements ResponsePromise {
9 private final Promise<Response> delegate;
10
11 WrappingResponsePromise(Promise<Response> delegate) {
12 this.delegate = checkNotNull(delegate);
13 }
14
15 @Override
16 protected final Promise<Response> delegate() {
17 return delegate;
18 }
19
20 public <T> Promise<T> transform(ResponseTransformation<T> transformation) {
21 return delegate.fold(transformation.getFailFunction(), transformation.getSuccessFunctions());
22 }
23 }