class HttpErrorResponseException extends RuntimeException {

    @Override
    public boolean equals(Object object)
    {
        if (this == object)
        {
            return true;
        }
        if (object == null || getClass() != object.getClass())
        {
            return false;
        }

        HttpErrorResponseException that = (HttpErrorResponseException) object;
        return statusCode == that.getStatusCode();
    }

    public  HttpErrorResponseException(int statusCode, String statusDescription, String responseMessage);
    public  HttpErrorResponseException(String message, int statusCode, String statusDescription, String responseMessage);
    public  HttpErrorResponseException(String message, Throwable cause, int statusCode, String statusDescription, String responseMessage);
    public  HttpErrorResponseException(Throwable cause, int statusCode, String statusDescription, String responseMessage);
    protected  HttpErrorResponseException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace, int statusCode,
        String statusDescription, String responseMessage);

}