package com.limegroup.gnutella.http; import com.limegroup.gnutella.util.CommonUtils; /** * This class adds type safety for constant HTTP header values. If there's * an HTTP header value that is constant, simply add it to this enumeration. */ public class ConstantHTTPHeaderValue implements HTTPHeaderValue { /** * Constant for the value for the HTTP header. */ private final String VALUE; /** * Creates a new <tt>ConstantHTTPHeaderValue</tt> with the specified * string value. * * @param value the string value to return as the value for an * HTTP header */ private ConstantHTTPHeaderValue(String value) { VALUE = value; } // implements HTTPHeaderValue -- inherit doc comment public String httpStringValue() { return VALUE; } /** * Constant for the HTTP server, as given in the "Server: " header. */ public static final HTTPHeaderValue SERVER_VALUE = new ConstantHTTPHeaderValue(CommonUtils.getHttpServer()); /** * Constant for accepting or encoding in deflate, in the Accept-Encoding * or Content-Encoding fields. */ public static final HTTPHeaderValue DEFLATE_VALUE = new ConstantHTTPHeaderValue("deflate"); /** * Constant for the 'close' value sent the server expects to close * the connection. */ public static final HTTPHeaderValue CLOSE_VALUE = new ConstantHTTPHeaderValue("close"); /** * Constant for the 'browse/version' value sent. */ public static final HTTPHeaderValue BROWSE_FEATURE = new ConstantHTTPHeaderValue( HTTPConstants.BROWSE_PROTOCOL + "/" + HTTPConstants.BROWSE_VERSION ); /** * Constant for the 'chat/version' value sent. */ public static final HTTPHeaderValue CHAT_FEATURE = new ConstantHTTPHeaderValue( HTTPConstants.CHAT_PROTOCOL + "/" + HTTPConstants.CHAT_VERSION ); /** * Constant for the 'queue/version' value sent. */ public static final HTTPHeaderValue QUEUE_FEATURE = new ConstantHTTPHeaderValue( HTTPConstants.QUEUE_PROTOCOL + "/" + HTTPConstants.QUEUE_VERSION ); /** * Constant for the g2/version' value sent. */ public static final HTTPHeaderValue G2_FEATURE = new ConstantHTTPHeaderValue( HTTPConstants.G2_PROTOCOL + "/" + HTTPConstants.G2_VERSION ); /** * exact meaning of this header: the host sending this header would like * to receive alternate locations behind firewalls. */ public static final HTTPHeaderValue PUSH_LOCS_FEATURE = new ConstantHTTPHeaderValue( HTTPConstants.PUSH_LOCS + "/" + HTTPConstants.PUSH_LOCS_VERSION ); /** * exact meaning of this header: the host sending this header supports * the designated version of Firewall to Firewall transfer, and is * most likely firewalled. */ public static final HTTPHeaderValue FWT_PUSH_LOCS_FEATURE = new ConstantHTTPHeaderValue( HTTPConstants.FW_TRANSFER + "/" + HTTPConstants.FWT_TRANSFER_VERSION ); }