All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.enonic.xp.web.HttpStatus Maven / Gradle / Ivy

The newest version!
package com.enonic.xp.web;

public enum HttpStatus
{
    // Informational
    CONTINUE( 100, "Continue" ),
    SWITCHING_PROTOCOLS( 101, "Switching Protocols" ),
    PROCESSING( 102, "Processing" ),
    CHECKPOINT( 103, "Checkpoint" ),

    // Successful
    OK( 200, "OK" ),
    CREATED( 201, "Created" ),
    ACCEPTED( 202, "Accepted" ),
    NON_AUTHORITATIVE_INFORMATION( 203, "Non-Authoritative Information" ),
    NO_CONTENT( 204, "No Content" ),
    RESET_CONTENT( 205, "Reset Content" ),
    PARTIAL_CONTENT( 206, "Partial Content" ),
    MULTI_STATUS( 207, "Multi-Status" ),
    ALREADY_REPORTED( 208, "Already Reported" ),
    IM_USED( 226, "IM Used" ),

    // Redirection
    MULTIPLE_CHOICES( 300, "Multiple Choices" ),
    MOVED_PERMANENTLY( 301, "Moved Permanently" ),
    FOUND( 302, "Found" ),
    SEE_OTHER( 303, "See Other" ),
    NOT_MODIFIED( 304, "Not Modified" ),
    TEMPORARY_REDIRECT( 307, "Temporary Redirect" ),
    PERMANENT_REDIRECT( 308, "Permanent Redirect" ),

    // ClientError
    BAD_REQUEST( 400, "Bad Request" ),
    UNAUTHORIZED( 401, "Unauthorized" ),
    PAYMENT_REQUIRED( 402, "Payment Required" ),
    FORBIDDEN( 403, "Forbidden" ),
    NOT_FOUND( 404, "Not Found" ),
    METHOD_NOT_ALLOWED( 405, "Method Not Allowed" ),
    NOT_ACCEPTABLE( 406, "Not Acceptable" ),
    PROXY_AUTHENTICATION_REQUIRED( 407, "Proxy Authentication Required" ),
    REQUEST_TIMEOUT( 408, "Request Timeout" ),
    CONFLICT( 409, "Conflict" ),
    GONE( 410, "Gone" ),
    LENGTH_REQUIRED( 411, "Length Required" ),
    PRECONDITION_FAILED( 412, "Precondition Failed" ),
    PAYLOAD_TOO_LARGE( 413, "Payload Too Large" ),
    URI_TOO_LONG( 414, "URI Too Long" ),
    UNSUPPORTED_MEDIA_TYPE( 415, "Unsupported Media Type" ),
    REQUESTED_RANGE_NOT_SATISFIABLE( 416, "Requested range not satisfiable" ),
    EXPECTATION_FAILED( 417, "Expectation Failed" ),
    IM_A_TEAPOT( 418, "I'm a teapot" ),
    UNPROCESSABLE_ENTITY( 422, "Unprocessable Entity" ),
    LOCKED( 423, "Locked" ),
    FAILED_DEPENDENCY( 424, "Failed Dependency" ),
    UPGRADE_REQUIRED( 426, "Upgrade Required" ),
    PRECONDITION_REQUIRED( 428, "Precondition Required" ),
    TOO_MANY_REQUESTS( 429, "Too Many Requests" ),
    REQUEST_HEADER_FIELDS_TOO_LARGE( 431, "Request Header Fields Too Large" ),

    // ServerError
    INTERNAL_SERVER_ERROR( 500, "Internal Server Error" ),
    NOT_IMPLEMENTED( 501, "Not Implemented" ),
    BAD_GATEWAY( 502, "Bad Gateway" ),
    SERVICE_UNAVAILABLE( 503, "Service Unavailable" ),
    GATEWAY_TIMEOUT( 504, "Gateway Timeout" ),
    HTTP_VERSION_NOT_SUPPORTED( 505, "HTTP Version not supported" ),
    VARIANT_ALSO_NEGOTIATES( 506, "Variant Also Negotiates" ),
    INSUFFICIENT_STORAGE( 507, "Insufficient Storage" ),
    LOOP_DETECTED( 508, "Loop Detected" ),
    BANDWIDTH_LIMIT_EXCEEDED( 509, "Bandwidth Limit Exceeded" ),
    NOT_EXTENDED( 510, "Not Extended" ),
    NETWORK_AUTHENTICATION_REQUIRED( 511, "Network Authentication Required" );

    private final int value;

    private final String reasonPhrase;

    HttpStatus( final int value, final String reasonPhrase )
    {
        this.value = value;
        this.reasonPhrase = reasonPhrase;
    }

    public int value()
    {
        return this.value;
    }

    public String getReasonPhrase()
    {
        return this.reasonPhrase;
    }

    public boolean is1xxInformational()
    {
        final int code = this.value / 100;
        return code == 1;
    }

    public boolean is2xxSuccessful()
    {
        final int code = this.value / 100;
        return code == 2;
    }

    public boolean is3xxRedirection()
    {
        final int code = this.value / 100;
        return code == 3;
    }

    public boolean is4xxClientError()
    {
        final int code = this.value / 100;
        return code == 4;
    }

    public boolean is5xxServerError()
    {
        final int code = this.value / 100;
        return code == 5;
    }

    @Override
    public String toString()
    {
        return Integer.toString( this.value );
    }

    public static HttpStatus from( final int value )
    {
        for ( final HttpStatus status : HttpStatus.values() )
        {
            if ( status.value == value )
            {
                return status;
            }
        }

        return null;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy