Package org.restlet.engine.header
Class HeaderUtils
- java.lang.Object
-
- org.restlet.engine.header.HeaderUtils
-
public class HeaderUtils extends java.lang.ObjectHTTP-style header utilities.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.util.Set<java.lang.String>STANDARD_HEADERSStandard set of headers which cannot be modified.private static java.util.Set<java.lang.String>UNSUPPORTED_STANDARD_HEADERSSet of unsupported headers that will be covered in future versions.
-
Constructor Summary
Constructors Modifier Constructor Description privateHeaderUtils()Private constructor to ensure that the class acts as a true utility class i.e.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidaddEntityHeaders(Representation entity, Series<Header> headers)Adds the entity headers based on theRepresentationto theSeries.static voidaddExtensionHeaders(Series<Header> existingHeaders, Series<Header> additionalHeaders)Adds extension headers if they are non-standard headers.static voidaddGeneralHeaders(Message message, Series<Header> headers)static voidaddHeader(java.lang.String headerName, java.lang.String headerValue, Series<Header> headers)Adds a header to the given list.static voidaddNotModifiedEntityHeaders(Representation entity, Series<Header> headers)Adds the entity headers based on theRepresentationto theSerieswhen a 304 (Not Modified) status is returned.static voidaddRequestHeaders(Request request, Series<Header> headers)static voidaddResponseHeaders(Response response, Series<Header> headers)static voidcopyExtensionHeaders(Series<Header> headers, Message message)Copies extension headers into a request or a response.static voidcopyResponseTransportHeaders(Series<Header> headers, Response response)Copies headers into a response.static RepresentationextractEntityHeaders(java.lang.Iterable<Header> headers, Representation representation)Extracts entity headers and updates a given representation or create an empty one when at least one entity header is present.static longgetContentLength(Series<Header> headers)Returns the content length of the request entity if know,Representation.UNKNOWN_SIZEotherwise.static booleanisAlpha(int character)Indicates if the given character is alphabetical (a-z or A-Z).static booleanisAsciiChar(int character)Indicates if the given character is in ASCII range.static booleanisCarriageReturn(int character)Indicates if the given character is a carriage return.static booleanisChunkedEncoding(Series<Header> headers)Indicates if the entity is chunked.static booleanisComma(int character)Indicates if the given character is a comma, the character used as header value separator.static booleanisCommentText(int character)Indicates if the given character is a comment text.static booleanisConnectionClose(Series<Header> headers)Indicates if the connection must be closed.static booleanisControlChar(int character)Indicates if the given character is a control character.static booleanisDigit(int character)Indicates if the given character is a digit (0-9).static booleanisDoubleQuote(int character)Indicates if the given character is a double quote.static booleanisHorizontalTab(int character)Indicates if the given character is an horizontal tab.static booleanisLatin1Char(int character)Indicates if the given character is in ISO Latin 1 (8859-1) range.static booleanisLinearWhiteSpace(int character)Indicates if the given character is a value separator.static booleanisLineFeed(int character)Indicates if the given character is a line feed.static booleanisLowerCase(int character)Indicates if the given character is lower case (a-z).static booleanisQuoteCharacter(int character)Indicates if the given character marks the start of a quoted pair.static booleanisQuotedText(int character)Indicates if the given character is a quoted text.static booleanisSemiColon(int character)Indicates if the given character is a semicolon, the character used as header parameter separator.static booleanisSeparator(int character)Indicates if the given character is a separator.static booleanisSpace(int character)Indicates if the given character is a space.static booleanisText(int character)Indicates if the given character is textual (ISO Latin 1 and not a control character).static booleanisToken(java.lang.CharSequence token)Indicates if the token is valid.
Only contains valid token characters.static booleanisTokenChar(int character)Indicates if the given character is a token character (text and not a separator).static booleanisUpperCase(int character)Indicates if the given character is upper case (A-Z).static voidkeepExtensionHeadersOnly(Message message)Remove the headers that are mapped to the framework's API from the given message's list of headers.static voidwriteCRLF(java.io.OutputStream os)Writes a new line.static voidwriteHeaderLine(Header header, java.io.OutputStream os)Writes a header line.
-
-
-
Field Detail
-
STANDARD_HEADERS
private static final java.util.Set<java.lang.String> STANDARD_HEADERS
Standard set of headers which cannot be modified.
-
UNSUPPORTED_STANDARD_HEADERS
private static final java.util.Set<java.lang.String> UNSUPPORTED_STANDARD_HEADERS
Set of unsupported headers that will be covered in future versions.
-
-
Method Detail
-
addEntityHeaders
public static void addEntityHeaders(Representation entity, Series<Header> headers)
Adds the entity headers based on theRepresentationto theSeries.- Parameters:
entity- The source entityRepresentation.headers- The target headersSeries.
-
addExtensionHeaders
public static void addExtensionHeaders(Series<Header> existingHeaders, Series<Header> additionalHeaders)
Adds extension headers if they are non-standard headers.- Parameters:
existingHeaders- The headers to update.additionalHeaders- The headers to add.
-
addHeader
public static void addHeader(java.lang.String headerName, java.lang.String headerValue, Series<Header> headers)Adds a header to the given list. Checks for exceptions and logs them.- Parameters:
headerName- The header name.headerValue- The header value.headers- The headers list.
-
addNotModifiedEntityHeaders
public static void addNotModifiedEntityHeaders(Representation entity, Series<Header> headers)
Adds the entity headers based on theRepresentationto theSerieswhen a 304 (Not Modified) status is returned.- Parameters:
entity- The source entityRepresentation.headers- The target headersSeries.
-
addResponseHeaders
public static void addResponseHeaders(Response response, Series<Header> headers)
-
keepExtensionHeadersOnly
public static void keepExtensionHeadersOnly(Message message)
Remove the headers that are mapped to the framework's API from the given message's list of headers.- Parameters:
message- The message to update.
-
copyExtensionHeaders
public static void copyExtensionHeaders(Series<Header> headers, Message message)
Copies extension headers into a request or a response.- Parameters:
headers- The headers to copy.message- The message to update.
-
copyResponseTransportHeaders
public static void copyResponseTransportHeaders(Series<Header> headers, Response response)
Copies headers into a response.- Parameters:
headers- The headers to copy.response- The response to update.
-
extractEntityHeaders
public static Representation extractEntityHeaders(java.lang.Iterable<Header> headers, Representation representation) throws java.lang.NumberFormatException
Extracts entity headers and updates a given representation or create an empty one when at least one entity header is present.- Parameters:
headers- The headers to copy.representation- The representation to update or null.- Returns:
- a representation updated with the given entity headers.
- Throws:
java.lang.NumberFormatException- See Also:
copyResponseTransportHeaders(Series, Response)
-
getContentLength
public static long getContentLength(Series<Header> headers)
Returns the content length of the request entity if know,Representation.UNKNOWN_SIZEotherwise.- Returns:
- The request content length.
-
isAlpha
public static boolean isAlpha(int character)
Indicates if the given character is alphabetical (a-z or A-Z).- Parameters:
character- The character to test.- Returns:
- True if the given character is alphabetical (a-z or A-Z).
-
isAsciiChar
public static boolean isAsciiChar(int character)
Indicates if the given character is in ASCII range.- Parameters:
character- The character to test.- Returns:
- True if the given character is in ASCII range.
-
isCarriageReturn
public static boolean isCarriageReturn(int character)
Indicates if the given character is a carriage return.- Parameters:
character- The character to test.- Returns:
- True if the given character is a carriage return.
-
isChunkedEncoding
public static boolean isChunkedEncoding(Series<Header> headers)
Indicates if the entity is chunked.- Returns:
- True if the entity is chunked.
-
isComma
public static boolean isComma(int character)
Indicates if the given character is a comma, the character used as header value separator.- Parameters:
character- The character to test.- Returns:
- True if the given character is a comma.
-
isCommentText
public static boolean isCommentText(int character)
Indicates if the given character is a comment text. It meansisText(int)returns true and the character is not '(' or ')'.- Parameters:
character- The character to test.- Returns:
- True if the given character is a quoted text.
-
isConnectionClose
public static boolean isConnectionClose(Series<Header> headers)
Indicates if the connection must be closed.- Parameters:
headers- The headers to test.- Returns:
- True if the connection must be closed.
-
isControlChar
public static boolean isControlChar(int character)
Indicates if the given character is a control character.- Parameters:
character- The character to test.- Returns:
- True if the given character is a control character.
-
isDigit
public static boolean isDigit(int character)
Indicates if the given character is a digit (0-9).- Parameters:
character- The character to test.- Returns:
- True if the given character is a digit (0-9).
-
isDoubleQuote
public static boolean isDoubleQuote(int character)
Indicates if the given character is a double quote.- Parameters:
character- The character to test.- Returns:
- True if the given character is a double quote.
-
isHorizontalTab
public static boolean isHorizontalTab(int character)
Indicates if the given character is an horizontal tab.- Parameters:
character- The character to test.- Returns:
- True if the given character is an horizontal tab.
-
isLatin1Char
public static boolean isLatin1Char(int character)
Indicates if the given character is in ISO Latin 1 (8859-1) range. Note that this range is a superset of ASCII and a subrange of Unicode (UTF-8).- Parameters:
character- The character to test.- Returns:
- True if the given character is in ISO Latin 1 range.
-
isLinearWhiteSpace
public static boolean isLinearWhiteSpace(int character)
Indicates if the given character is a value separator.- Parameters:
character- The character to test.- Returns:
- True if the given character is a value separator.
-
isLineFeed
public static boolean isLineFeed(int character)
Indicates if the given character is a line feed.- Parameters:
character- The character to test.- Returns:
- True if the given character is a line feed.
-
isLowerCase
public static boolean isLowerCase(int character)
Indicates if the given character is lower case (a-z).- Parameters:
character- The character to test.- Returns:
- True if the given character is lower case (a-z).
-
isQuoteCharacter
public static boolean isQuoteCharacter(int character)
Indicates if the given character marks the start of a quoted pair.- Parameters:
character- The character to test.- Returns:
- True if the given character marks the start of a quoted pair.
-
isQuotedText
public static boolean isQuotedText(int character)
Indicates if the given character is a quoted text. It meansisText(int)returns true andisDoubleQuote(int)returns false.- Parameters:
character- The character to test.- Returns:
- True if the given character is a quoted text.
-
isSemiColon
public static boolean isSemiColon(int character)
Indicates if the given character is a semicolon, the character used as header parameter separator.- Parameters:
character- The character to test.- Returns:
- True if the given character is a semicolon.
-
isSeparator
public static boolean isSeparator(int character)
Indicates if the given character is a separator.- Parameters:
character- The character to test.- Returns:
- True if the given character is a separator.
-
isSpace
public static boolean isSpace(int character)
Indicates if the given character is a space.- Parameters:
character- The character to test.- Returns:
- True if the given character is a space.
-
isText
public static boolean isText(int character)
Indicates if the given character is textual (ISO Latin 1 and not a control character).- Parameters:
character- The character to test.- Returns:
- True if the given character is textual.
-
isToken
public static boolean isToken(java.lang.CharSequence token)
Indicates if the token is valid.
Only contains valid token characters.- Parameters:
token- The token to check- Returns:
- True if the token is valid.
-
isTokenChar
public static boolean isTokenChar(int character)
Indicates if the given character is a token character (text and not a separator).- Parameters:
character- The character to test.- Returns:
- True if the given character is a token character (text and not a separator).
-
isUpperCase
public static boolean isUpperCase(int character)
Indicates if the given character is upper case (A-Z).- Parameters:
character- The character to test.- Returns:
- True if the given character is upper case (A-Z).
-
writeCRLF
public static void writeCRLF(java.io.OutputStream os) throws java.io.IOExceptionWrites a new line.- Parameters:
os- The output stream.- Throws:
java.io.IOException
-
writeHeaderLine
public static void writeHeaderLine(Header header, java.io.OutputStream os) throws java.io.IOException
Writes a header line.- Parameters:
header- The header to write.os- The output stream.- Throws:
java.io.IOException
-
-