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

com.firefly.codec.http2.model.HttpHeaderValue Maven / Gradle / Ivy

There is a newer version: 4.0.3.2
Show newest version
//
//  ========================================================================
//  Copyright (c) 1995-2015 Mort Bay Consulting Pty. Ltd.
//  ------------------------------------------------------------------------
//  All rights reserved. This program and the accompanying materials
//  are made available under the terms of the Eclipse Public License v1.0
//  and Apache License v2.0 which accompanies this distribution.
//
//      The Eclipse Public License is available at
//      http://www.eclipse.org/legal/epl-v10.html
//
//      The Apache License v2.0 is available at
//      http://www.opensource.org/licenses/apache2.0.php
//
//  You may elect to redistribute this code under either of these licenses.
//  ========================================================================
//

package com.firefly.codec.http2.model;

import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
import java.util.EnumSet;

import com.firefly.utils.collection.ArrayTrie;
import com.firefly.utils.collection.Trie;

/**
 * 
 */
public enum HttpHeaderValue {
	
	CLOSE("close"),
    CHUNKED("chunked"),
    GZIP("gzip"),
    IDENTITY("identity"),
    KEEP_ALIVE("keep-alive"),
    CONTINUE("100-continue"),
    PROCESSING("102-processing"),
    TE("TE"),
    BYTES("bytes"),
    NO_CACHE("no-cache"),
    UPGRADE("Upgrade"),
    UNKNOWN("::UNKNOWN::");

	private static final EnumSet __known = EnumSet.of(
			HttpHeader.CONNECTION, 
			HttpHeader.TRANSFER_ENCODING,
			HttpHeader.CONTENT_ENCODING);
	
	public final static Trie CACHE = new ArrayTrie();
	static {
		for (HttpHeaderValue value : HttpHeaderValue.values())
			if (value != UNKNOWN)
				CACHE.put(value.toString(), value);
	}

	private final String string;
	private final ByteBuffer buffer;
	
	private HttpHeaderValue(String s) {
		string = s;
		buffer = ByteBuffer.wrap(s.getBytes(StandardCharsets.UTF_8));
	}

	public ByteBuffer toBuffer() {
		return buffer.asReadOnlyBuffer();
	}

	public boolean is(String s) {
		return string.equalsIgnoreCase(s);
	}

	public String asString() {
		return string;
	}

	@Override
	public String toString() {
		return string;
	}

	public static boolean hasKnownValues(HttpHeader header) {
		if (header == null)
			return false;
		return __known.contains(header);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy