package com.mediafire.sdk;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
public class MFHttpResponse implements MediaFireHttpResponse {
private final int statusCode;
private final byte[] body;
private final Map<String, ? extends List<String>> headers;
public MFHttpResponse(int statusCode, byte[] body, Map<String, ? extends List<String>> headers) {
this.statusCode = statusCode;
this.body = body;
this.headers = headers;
}
@Override
public int getStatusCode() {
return statusCode;
}
@Override
public byte[] getBody() {
return body;
}
@Override
public Map<String, ? extends List<String>> getHeaders() {
return headers;
}
@Override
public String toString() {
return "MFHttpResponse{" +
"statusCode=" + statusCode +
", body=" + (body == null || body.length == 0 ? "null or empty" : body.length > 5000 ? "size: " + body.length : new String(body)) +
", headers=" + headers +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MFHttpResponse that = (MFHttpResponse) o;
if (getStatusCode() != that.getStatusCode()) return false;
if (!Arrays.equals(getBody(), that.getBody())) return false;
return !(getHeaders() != null ? !getHeaders().equals(that.getHeaders()) : that.getHeaders() != null);
}
@Override
public int hashCode() {
int result = getStatusCode();
result = 31 * result + (getBody() != null ? Arrays.hashCode(getBody()) : 0);
result = 31 * result + (getHeaders() != null ? getHeaders().hashCode() : 0);
return result;
}
}