com.cmonbaby.http.rxjava.Result Maven / Gradle / Ivy
Show all versions of http_lower Show documentation
package com.cmonbaby.http.rxjava;
import java.io.IOException;
import retrofit2.Response;
/**
* Author: Simon
*
QO: 8950764
*
Email: [email protected]
*
WebSize: https://www.cmonbaby.com
*
Version: 1.0.0
*
Date: 2020/12/28
*
Description:
*/
public final class Result {
public static Result error(Throwable error) {
if (error == null) throw new NullPointerException("error == null");
return new Result<>(null, error);
}
public static Result response(Response response) {
if (response == null) throw new NullPointerException("response == null");
return new Result<>(response, null);
}
private final Response response;
private final Throwable error;
private Result(Response response, Throwable error) {
this.response = response;
this.error = error;
}
/**
* The response received from executing an HTTP request. Only present when {@link #isError()} is
* false, null otherwise.
*/
public Response response() {
return response;
}
/**
* The error experienced while attempting to execute an HTTP request. Only present when {@link
* #isError()} is true, null otherwise.
*
* If the error is an {@link IOException} then there was a problem with the transport to the
* remote server. Any other exception type indicates an unexpected failure and should be
* considered fatal (configuration error, programming error, etc.).
*/
public Throwable error() {
return error;
}
/**
* {@code true} if the request resulted in an error. See {@link #error()} for the cause.
*/
public boolean isError() {
return error != null;
}
@Override
public String toString() {
if (error != null) {
return "Result{isError=true, error=\"" + error + "\"}";
}
return "Result{isError=false, response=" + response + '}';
}
}