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

com.firenio.baseio.codec.http11.HttpHeader Maven / Gradle / Ivy

There is a newer version: 3.2.9.beta11
Show newest version
/*
 * Copyright 2015 The Baseio Project
 *  
 * Licensed under the Apache License, Version 2.0 (the "License"),
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *  
 *      http://www.apache.org/licenses/LICENSE-2.0
 *  
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.firenio.baseio.codec.http11;

import java.util.HashMap;
import java.util.Map;

public enum HttpHeader {

    Accept("Accept"), Accept_Encoding("Accept-Encoding"), Accept_Language(
            "Accept-Language"), Accept_Ranges("Accept-Ranges"), Age("Age"), Allow(
                    "Allow"), Cache_Control("Cache-Control"), Connection(
                            "Connection"), Content_Encoding("Content-Encoding"), Content_Language(
                                    "Content-Language"), Content_Length(
                                            "Content-Length"), Content_Location(
                                                    "Content-Location"), Content_MD5(
                                                            "Content-MD5"), Content_Range(
                                                                    "Content-Range"), Content_Type(
                                                                            "Content-Type"), Cookie(
                                                                                    "Cookie"), Date(
                                                                                            "Date"), ETag(
                                                                                                    "ETag"), Expires(
                                                                                                            "Expires"), Host(
                                                                                                                    "Host"), If_Modified_Since(
                                                                                                                            "If-Modified-Since"), Last_Modified(
                                                                                                                                    "Last-Modified"), Location(
                                                                                                                                            "Location"), Pragma(
                                                                                                                                                    "Pragma"), Proxy_Authenticate(
                                                                                                                                                            "Proxy-Authenticate"), Proxy_Connection(
                                                                                                                                                                    "Proxy-Connection"), Referer(
                                                                                                                                                                            "Referer"), Refresh(
                                                                                                                                                                                    "Refresh"), Retry_After(
                                                                                                                                                                                            "Retry-After"), Sec_Metadata(
                                                                                                                                                                                                    "Sec-Metadata"), Sec_WebSocket_Accept(
                                                                                                                                                                                                            "Sec-WebSocket-Accept"), Sec_WebSocket_Extensions(
                                                                                                                                                                                                                    "Sec-WebSocket-Extensions"), Sec_WebSocket_Key(
                                                                                                                                                                                                                            "Sec-WebSocket-Key"), Sec_WebSocket_Version(
                                                                                                                                                                                                                                    "Sec-WebSocket-Version"), Server(
                                                                                                                                                                                                                                            "Server"), Set_Cookie(
                                                                                                                                                                                                                                                    "Set-Cookie"), Trailer(
                                                                                                                                                                                                                                                            "Trailer"), Transfer_Encoding(
                                                                                                                                                                                                                                                                    "Transfer-Encoding"), Upgrade(
                                                                                                                                                                                                                                                                            "Upgrade"), Upgrade_Insecure_Requests(
                                                                                                                                                                                                                                                                                    "Upgrade-Insecure-Requests"), User_Agent(
                                                                                                                                                                                                                                                                                            "User-Agent"), Vary(
                                                                                                                                                                                                                                                                                                    "Vary"), Via(
                                                                                                                                                                                                                                                                                                            "Via"), Warning(
                                                                                                                                                                                                                                                                                                                    "Warning"), WWW_Authenticate(
                                                                                                                                                                                                                                                                                                                            "WWW-Authenticate");

    public static final Map ALL = new HashMap<>();
    private static final HttpHeader[]           enums;
    static {
        try {
            enums = new HttpHeader[values().length];
            for (HttpHeader value : values()) {
                enums[value.id] = value;
                ALL.put(value.getKey(), value);
                ALL.put(value.getLowercase(), value);
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    private final byte[] bytes;

    private final int    id;

    private final String key;

    private final String lowercase;

    private HttpHeader(String key) {
        this.key = key;
        this.lowercase = key.toLowerCase();
        this.bytes = key.getBytes();
        this.id = HttpHeaderHelper.HEADER_SEQ.getAndIncrement();
    }

    public byte[] getBytes() {
        return bytes;
    }

    public int getId() {
        return id;
    }

    public String getKey() {
        return key;
    }

    public String getLowercase() {
        return lowercase;
    }

    @Override
    public String toString() {
        return key.toString();
    }

    public static HttpHeader get(int index) {
        return enums[index];
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy