JsonResponseWrapper.java
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.facebook.presto.server.smile;
import com.facebook.airlift.http.client.FullJsonResponseHandler.JsonResponse;
import com.facebook.airlift.http.client.HeaderName;
import com.google.common.collect.ListMultimap;
import java.util.List;
import static com.google.common.base.Verify.verify;
import static java.util.Objects.requireNonNull;
public class JsonResponseWrapper<T>
implements BaseResponse<T>
{
private final JsonResponse<T> jsonResponse;
private JsonResponseWrapper(JsonResponse<T> jsonResponse)
{
this.jsonResponse = requireNonNull(jsonResponse, "jsonResponse is null");
}
public static <T> JsonResponseWrapper<T> wrapJsonResponse(JsonResponse<T> response)
{
return new JsonResponseWrapper<>(response);
}
public static <T> JsonResponse<T> unwrapJsonResponse(BaseResponse<T> response)
{
verify(response instanceof JsonResponseWrapper);
return ((JsonResponseWrapper<T>) response).jsonResponse;
}
@Override
public int getStatusCode()
{
return jsonResponse.getStatusCode();
}
@Override
public String getHeader(String name)
{
return jsonResponse.getHeader(name);
}
@Override
public List<String> getHeaders(String name)
{
return jsonResponse.getHeaders(name);
}
@Override
public ListMultimap<HeaderName, String> getHeaders()
{
return jsonResponse.getHeaders();
}
@Override
public boolean hasValue()
{
return jsonResponse.hasValue();
}
@Override
public T getValue()
{
return jsonResponse.getValue();
}
@Override
public int getResponseSize()
{
return jsonResponse.getResponseSize();
}
@Override
public byte[] getResponseBytes()
{
return jsonResponse.getResponseBytes();
}
@Override
public Exception getException()
{
return jsonResponse.getException();
}
}