Package org.apache.http.message
Class BasicLineFormatter
java.lang.Object
org.apache.http.message.BasicLineFormatter
- All Implemented Interfaces:
LineFormatter
public class BasicLineFormatter extends Object implements LineFormatter
Interface for formatting elements of the HEAD section of an HTTP message.
This is the complement to
LineParser.
There are individual methods for formatting a request line, a
status line, or a header line. The formatting does not include the
trailing line break sequence CR-LF.
The formatted lines are returned in memory, the formatter does not depend
on any specific IO mechanism.
Instances of this interface are expected to be stateless and thread-safe.- Since:
- 4.0
- Version:
- $Revision: 574185 $
- Author:
- Remy Maucherat, Mike Bowler, Jeff Dever, Oleg Kalnichevski, and others
-
Field Summary
Fields Modifier and Type Field Description static BasicLineFormatterDEFAULTA default instance of this class, for use as default or fallback.static BasicLineFormatterINSTANCE -
Constructor Summary
Constructors Constructor Description BasicLineFormatter() -
Method Summary
Modifier and Type Method Description CharArrayBufferappendProtocolVersion(CharArrayBuffer buffer, ProtocolVersion version)Formats a protocol version.protected voiddoFormatHeader(CharArrayBuffer buffer, Header header)Actually formats a header.protected voiddoFormatRequestLine(CharArrayBuffer buffer, RequestLine reqline)Actually formats a request line.protected voiddoFormatStatusLine(CharArrayBuffer buffer, StatusLine statline)Actually formats a status line.protected intestimateProtocolVersionLen(ProtocolVersion version)Guesses the length of a formatted protocol version.static StringformatHeader(Header header, LineFormatter formatter)Formats a header.CharArrayBufferformatHeader(CharArrayBuffer buffer, Header header)Formats a header.static StringformatProtocolVersion(ProtocolVersion version, LineFormatter formatter)Formats a protocol version.static StringformatRequestLine(RequestLine reqline, LineFormatter formatter)Formats a request line.CharArrayBufferformatRequestLine(CharArrayBuffer buffer, RequestLine reqline)Formats a request line.static StringformatStatusLine(StatusLine statline, LineFormatter formatter)Formats a status line.CharArrayBufferformatStatusLine(CharArrayBuffer buffer, StatusLine statline)Formats a status line.protected CharArrayBufferinitBuffer(CharArrayBuffer buffer)Obtains a buffer for formatting.
-
Field Details
-
DEFAULT
A default instance of this class, for use as default or fallback. Note thatBasicLineFormatteris not a singleton, there can be many instances of the class itself and of derived classes. The instance here provides non-customized, default behavior. -
INSTANCE
-
-
Constructor Details
-
BasicLineFormatter
public BasicLineFormatter()
-
-
Method Details
-
initBuffer
Obtains a buffer for formatting.- Parameters:
buffer- a buffer already available, ornull- Returns:
- the cleared argument buffer if there is one, or a new empty buffer that can be used for formatting
-
formatProtocolVersion
Formats a protocol version.- Parameters:
version- the protocol version to formatformatter- the formatter to use, ornullfor thedefault- Returns:
- the formatted protocol version
-
appendProtocolVersion
Description copied from interface:LineFormatterFormats a protocol version. This method does not follow the general contract forbufferarguments. It does not clear the argument buffer, but appends instead. The returned buffer can always be modified by the caller. Because of these differing conventions, it is not namedformatProtocolVersion.- Specified by:
appendProtocolVersionin interfaceLineFormatter- Parameters:
buffer- a buffer to which to append, ornullversion- the protocol version to format- Returns:
- a buffer with the formatted protocol version appended.
The caller is allowed to modify the result buffer.
If the
bufferargument is notnull, the returned buffer is the argument buffer.
-
estimateProtocolVersionLen
Guesses the length of a formatted protocol version. Needed to guess the length of a formatted request or status line.- Parameters:
version- the protocol version to format, ornull- Returns:
- the estimated length of the formatted protocol version, in characters
-
formatRequestLine
Formats a request line.- Parameters:
reqline- the request line to formatformatter- the formatter to use, ornullfor thedefault- Returns:
- the formatted request line
-
formatRequestLine
Description copied from interface:LineFormatterFormats a request line.- Specified by:
formatRequestLinein interfaceLineFormatter- Parameters:
buffer- a buffer available for formatting, ornull. The buffer will be cleared before use.reqline- the request line to format- Returns:
- the formatted request line
-
doFormatRequestLine
Actually formats a request line. Called fromformatRequestLine(org.apache.http.RequestLine, org.apache.http.message.LineFormatter).- Parameters:
buffer- the empty buffer into which to format, nevernullreqline- the request line to format, nevernull
-
formatStatusLine
Formats a status line.- Parameters:
statline- the status line to formatformatter- the formatter to use, ornullfor thedefault- Returns:
- the formatted status line
-
formatStatusLine
Description copied from interface:LineFormatterFormats a status line.- Specified by:
formatStatusLinein interfaceLineFormatter- Parameters:
buffer- a buffer available for formatting, ornull. The buffer will be cleared before use.statline- the status line to format- Returns:
- the formatted status line
-
doFormatStatusLine
Actually formats a status line. Called fromformatStatusLine(org.apache.http.StatusLine, org.apache.http.message.LineFormatter).- Parameters:
buffer- the empty buffer into which to format, nevernullstatline- the status line to format, nevernull
-
formatHeader
Formats a header.- Parameters:
header- the header to formatformatter- the formatter to use, ornullfor thedefault- Returns:
- the formatted header
-
formatHeader
Description copied from interface:LineFormatterFormats a header. Due to header continuation, the result may be multiple lines. In order to generate well-formed HTTP, the lines in the result must be separated by the HTTP line break sequence CR-LF. There is no trailing CR-LF in the result.
See the class comment for details about the buffer argument.- Specified by:
formatHeaderin interfaceLineFormatter- Parameters:
buffer- a buffer available for formatting, ornull. The buffer will be cleared before use.header- the header to format- Returns:
- a buffer holding the formatted header, never
null. The returned buffer may be different from the argument buffer.
-
doFormatHeader
Actually formats a header. Called fromformatHeader(org.apache.http.Header, org.apache.http.message.LineFormatter).- Parameters:
buffer- the empty buffer into which to format, nevernullheader- the header to format, nevernull
-