package com.example.util;
import android.support.annotation.NonNull;
import java.util.ArrayList;
import java.util.List;
import static java.util.Arrays.asList;
import static java.util.Collections.unmodifiableList;
/**
* From Quality Matters project. See https://github.com/artem-zinnatullin/qualitymatters.
*/
public final class HttpCodes {
// https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error
private static final List<Integer> CLIENT_SIDE_ERROR_CODES = unmodifiableList(asList(
400,
401,
402,
403,
404,
405,
406,
// For 408, OkHttp will do silent retry.
409,
410,
411,
412,
413,
414,
415,
416,
417,
418,
422,
423,
424,
426,
428,
429,
431,
440
));
// https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#5xx_Server_Error
private static final List<Integer> SERVER_SIDE_ERROR_CODES = unmodifiableList(asList(
500,
501,
502,
503,
504,
505,
506,
507,
508,
509,
510,
511
));
private static final List<Integer> CLIENT_AND_SERVER_ERROR_CODES;
static {
List<Integer> clientAndServerErrorCodes = new ArrayList<>(CLIENT_SIDE_ERROR_CODES.size() + SERVER_SIDE_ERROR_CODES.size());
clientAndServerErrorCodes.addAll(CLIENT_SIDE_ERROR_CODES);
clientAndServerErrorCodes.addAll(SERVER_SIDE_ERROR_CODES);
CLIENT_AND_SERVER_ERROR_CODES = unmodifiableList(clientAndServerErrorCodes);
}
private HttpCodes() {
throw new AssertionError();
}
@NonNull
public static List<Integer> clientAndServerSideErrorCodes() {
return CLIENT_AND_SERVER_ERROR_CODES;
}
}