public class RawFieldParser extends Object
Low level parser for header field elements. The parsing routines of this class are designed to produce near zero intermediate garbage and make no intermediate copies of input data.
This class is immutable and thread safe.
Modifier and Type | Field and Description |
---|---|
static RawFieldParser |
DEFAULT |
Constructor and Description |
---|
RawFieldParser() |
Modifier and Type | Method and Description |
---|---|
void |
copyContent(ByteSequence buf,
ParserCursor cursor,
BitSet delimiters,
StringBuilder dst)
Transfers content into the destination buffer until a whitespace character, a comment,
or any of the given delimiters is encountered.
|
void |
copyQuotedContent(ByteSequence buf,
ParserCursor cursor,
StringBuilder dst)
Transfers content enclosed with quote marks into the destination buffer.
|
void |
copyUnquotedContent(ByteSequence buf,
ParserCursor cursor,
BitSet delimiters,
StringBuilder dst)
Transfers content into the destination buffer until a whitespace character, a comment,
a quote, or any of the given delimiters is encountered.
|
static BitSet |
INIT_BITSET(int... b) |
RawField |
parseField(ByteSequence raw)
Parses the sequence of bytes into
RawField . |
NameValuePair |
parseParameter(ByteSequence buf,
ParserCursor cursor)
Parses the sequence of bytes containing a field parameter delimited with semicolon into
NameValuePair . |
List<NameValuePair> |
parseParameters(ByteSequence buf,
ParserCursor cursor)
Parses the sequence of bytes containing field parameters delimited with semicolon into
a list of
NameValuePair s. |
RawBody |
parseRawBody(ByteSequence buf,
ParserCursor cursor)
Parses the sequence of bytes containing a value with parameters into
RawBody . |
RawBody |
parseRawBody(RawField field)
Parses the field body containing a value with parameters into
RawBody . |
String |
parseToken(ByteSequence buf,
ParserCursor cursor,
BitSet delimiters)
Extracts from the sequence of bytes a token terminated with any of the given delimiters
discarding semantically insignificant whitespace characters and comments.
|
String |
parseValue(ByteSequence buf,
ParserCursor cursor,
BitSet delimiters)
Extracts from the sequence of bytes a value which can be enclosed in quote marks and
terminated with any of the given delimiters discarding semantically insignificant
whitespace characters and comments.
|
void |
skipAllWhiteSpace(ByteSequence buf,
ParserCursor cursor)
Skips semantically insignificant whitespace characters and comments and moves the cursor
to the closest semantically significant non-whitespace character.
|
void |
skipComment(ByteSequence buf,
ParserCursor cursor)
Skips semantically insignificant content if the current position is positioned at the
beginning of a comment and moves the cursor past the end of the comment.
|
void |
skipWhiteSpace(ByteSequence buf,
ParserCursor cursor)
Skips semantically insignificant whitespace characters and moves the cursor to the closest
non-whitespace character.
|
public static final RawFieldParser DEFAULT
public static BitSet INIT_BITSET(int... b)
public RawField parseField(ByteSequence raw) throws MimeException
RawField
.MimeException
- if the input data does not contain a valid MIME field.public RawBody parseRawBody(RawField field)
RawBody
.field
- unstructured (raw) fieldpublic RawBody parseRawBody(ByteSequence buf, ParserCursor cursor)
RawBody
.buf
- buffer with the sequence of bytes to be parsedcursor
- defines the bounds and current position of the bufferpublic List<NameValuePair> parseParameters(ByteSequence buf, ParserCursor cursor)
NameValuePair
s.buf
- buffer with the sequence of bytes to be parsedcursor
- defines the bounds and current position of the bufferpublic NameValuePair parseParameter(ByteSequence buf, ParserCursor cursor)
NameValuePair
.buf
- buffer with the sequence of bytes to be parsedcursor
- defines the bounds and current position of the bufferpublic String parseToken(ByteSequence buf, ParserCursor cursor, BitSet delimiters)
buf
- buffer with the sequence of bytes to be parsedcursor
- defines the bounds and current position of the bufferdelimiters
- set of delimiting characters. Can be null
if the token
is not delimited by any character.public String parseValue(ByteSequence buf, ParserCursor cursor, BitSet delimiters)
buf
- buffer with the sequence of bytes to be parsedcursor
- defines the bounds and current position of the bufferdelimiters
- set of delimiting characters. Can be null
if the value
is not delimited by any character.public void skipWhiteSpace(ByteSequence buf, ParserCursor cursor)
buf
- buffer with the sequence of bytes to be parsedcursor
- defines the bounds and current position of the bufferpublic void skipComment(ByteSequence buf, ParserCursor cursor)
buf
- buffer with the sequence of bytes to be parsedcursor
- defines the bounds and current position of the bufferpublic void skipAllWhiteSpace(ByteSequence buf, ParserCursor cursor)
buf
- buffer with the sequence of bytes to be parsedcursor
- defines the bounds and current position of the bufferpublic void copyContent(ByteSequence buf, ParserCursor cursor, BitSet delimiters, StringBuilder dst)
buf
- buffer with the sequence of bytes to be parsedcursor
- defines the bounds and current position of the bufferdelimiters
- set of delimiting characters. Can be null
if the value
is delimited by a whitespace or a comment only.dst
- destination bufferpublic void copyUnquotedContent(ByteSequence buf, ParserCursor cursor, BitSet delimiters, StringBuilder dst)
buf
- buffer with the sequence of bytes to be parsedcursor
- defines the bounds and current position of the bufferdelimiters
- set of delimiting characters. Can be null
if the value
is delimited by a whitespace, a quote or a comment only.dst
- destination bufferpublic void copyQuotedContent(ByteSequence buf, ParserCursor cursor, StringBuilder dst)
buf
- buffer with the sequence of bytes to be parsedcursor
- defines the bounds and current position of the bufferdst
- destination bufferCopyright © 2004–2023 The Apache Software Foundation. All rights reserved.