public class UriComponent
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
UriComponent.Type
The URI component type.
|
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
contextualEncode(java.lang.String s,
UriComponent.Type t)
Contextually encodes the characters of string that are either non-ASCII
characters or are ASCII characters that must be percent-encoded using the
UTF-8 encoding.
|
static java.lang.String |
contextualEncode(java.lang.String s,
UriComponent.Type t,
boolean template)
Contextually encodes the characters of string that are either non-ASCII
characters or are ASCII characters that must be percent-encoded using the
UTF-8 encoding.
|
static java.lang.String |
decode(java.lang.String s,
UriComponent.Type t)
Decodes characters of a string that are percent-encoded octets using
UTF-8 decoding (if needed).
|
static MultivaluedMap<java.lang.String,java.lang.String> |
decodeMatrix(java.lang.String pathSegment,
boolean decode)
Decode the matrix component of a URI path segment.
|
static java.util.List<PathSegment> |
decodePath(java.lang.String path,
boolean decode)
Decode the path component of a URI as path segments.
|
static java.util.List<PathSegment> |
decodePath(java.net.URI u,
boolean decode)
Decode the path component of a URI as path segments.
|
static void |
decodePathSegment(java.util.List<PathSegment> segments,
java.lang.String segment,
boolean decode)
Decode the path segment and add it to the list of path segments.
|
static MultivaluedMap<java.lang.String,java.lang.String> |
decodeQuery(java.lang.String q,
boolean decode)
Decode the query component of a URI.
|
static MultivaluedMap<java.lang.String,java.lang.String> |
decodeQuery(java.lang.String q,
boolean decodeNames,
boolean decodeValues)
Decode the query component of a URI.
|
static MultivaluedMap<java.lang.String,java.lang.String> |
decodeQuery(java.net.URI u,
boolean decode)
Decode the query component of a URI.
|
static java.lang.String |
encode(java.lang.String s,
UriComponent.Type t)
Encodes the characters of string that are either non-ASCII characters
or are ASCII characters that must be percent-encoded using the
UTF-8 encoding.
|
static java.lang.String |
encode(java.lang.String s,
UriComponent.Type t,
boolean template)
Encodes the characters of string that are either non-ASCII characters
or are ASCII characters that must be percent-encoded using the
UTF-8 encoding.
|
static java.lang.String |
encodeTemplateNames(java.lang.String s)
Encodes a string with template parameters names present, specifically the
characters '{' and '}' will be percent-encoded.
|
static boolean |
isHexCharacter(char c)
Checks whether the character
c is hexadecimal character. |
static boolean |
valid(java.lang.String s,
UriComponent.Type t)
Validates the legal characters of a percent-encoded string that
represents a URI component type.
|
static boolean |
valid(java.lang.String s,
UriComponent.Type t,
boolean template)
Validates the legal characters of a percent-encoded string that
represents a URI component type.
|
static void |
validate(java.lang.String s,
UriComponent.Type t)
Validates the legal characters of a percent-encoded string that
represents a URI component type.
|
static void |
validate(java.lang.String s,
UriComponent.Type t,
boolean template)
Validates the legal characters of a percent-encoded string that
represents a URI component type.
|
public static void validate(java.lang.String s, UriComponent.Type t)
s
- the encoded string.t
- the URI component type identifying the legal characters.java.lang.IllegalArgumentException
- if the encoded string contains illegal
characters.public static void validate(java.lang.String s, UriComponent.Type t, boolean template)
s
- the encoded string.t
- the URI component type identifying the legal characters.template
- true if the encoded string contains URI template variablesjava.lang.IllegalArgumentException
- if the encoded string contains illegal
characters.public static boolean valid(java.lang.String s, UriComponent.Type t)
s
- the encoded string.t
- the URI component type identifying the legal characters.public static boolean valid(java.lang.String s, UriComponent.Type t, boolean template)
s
- the encoded string.t
- the URI component type identifying the legal characters.template
- true if the encoded string contains URI template variablespublic static java.lang.String contextualEncode(java.lang.String s, UriComponent.Type t)
s
- the string to be encoded.t
- the URI component type identifying the ASCII characters that
must be percent-encoded.public static java.lang.String contextualEncode(java.lang.String s, UriComponent.Type t, boolean template)
s
- the string to be encoded.t
- the URI component type identifying the ASCII characters that
must be percent-encoded.template
- true if the encoded string contains URI template variablespublic static java.lang.String encode(java.lang.String s, UriComponent.Type t)
s
- the string to be encoded.t
- the URI component type identifying the ASCII characters that
must be percent-encoded.public static java.lang.String encode(java.lang.String s, UriComponent.Type t, boolean template)
s
- the string to be encoded.t
- the URI component type identifying the ASCII characters that
must be percent-encoded.template
- true if the encoded string contains URI template variablespublic static java.lang.String encodeTemplateNames(java.lang.String s)
s
- the string with zero or more template parameters namespublic static java.lang.String decode(java.lang.String s, UriComponent.Type t)
It is assumed that the string is valid according to an (unspecified) URI component type. If a sequence of contiguous percent-encoded octets is not a valid UTF-8 character then the octets are replaced with '�'.
If the URI component is of type HOST then any "%" found between "[]" is left alone. It is an IPv6 literal with a scope_id.
If the URI component is of type QUERY_PARAM then any "+" is decoded as as ' '.
s
- the string to be decoded.t
- the URI component type, may be null.java.lang.IllegalArgumentException
- if a malformed percent-encoded octet is
detectedpublic static MultivaluedMap<java.lang.String,java.lang.String> decodeQuery(java.net.URI u, boolean decode)
Query parameter names in the returned map are always decoded. Decoding of query parameter
values can be controlled using the decode
parameter flag.
u
- the URI.decode
- true
if the returned query parameter values of the query component
should be in decoded form.public static MultivaluedMap<java.lang.String,java.lang.String> decodeQuery(java.lang.String q, boolean decode)
Query parameter names in the returned map are always decoded. Decoding of query parameter
values can be controlled using the decode
parameter flag.
q
- the query component in encoded form.decode
- true
if the returned query parameter values of the query component
should be in decoded form.public static MultivaluedMap<java.lang.String,java.lang.String> decodeQuery(java.lang.String q, boolean decodeNames, boolean decodeValues)
Decoding of query parameter names and values can be controlled using the decodeNames
and decodeValues
parameter flags.
q
- the query component in encoded form.decodeNames
- true
if the returned query parameter names of the query component
should be in decoded form.decodeValues
- true
if the returned query parameter values of the query component
should be in decoded form.public static java.util.List<PathSegment> decodePath(java.net.URI u, boolean decode)
u
- the URI. If the path component is an absolute path component
then the leading '/' is ignored and is not considered a delimiator
of a path segment.decode
- true if the path segments of the path component
should be in decoded form.public static java.util.List<PathSegment> decodePath(java.lang.String path, boolean decode)
Any '/' character in the path is considered to be a deliminator between two path segments. Thus if the path is '/' then the path segment list will contain two empty path segments. If the path is "//" then the path segment list will contain three empty path segments. If the path is "/a/" the path segment list will consist of the following path segments in order: "", "a" and "".
path
- the path component in encoded form.decode
- true if the path segments of the path component
should be in decoded form.public static void decodePathSegment(java.util.List<PathSegment> segments, java.lang.String segment, boolean decode)
segments
- mutable list of path segments.segment
- path segment to be decoded.decode
- true
if the path segment should be in a decoded form.public static MultivaluedMap<java.lang.String,java.lang.String> decodeMatrix(java.lang.String pathSegment, boolean decode)
pathSegment
- the path segment component in encoded form.decode
- true if the matrix parameters of the path segment component
should be in decoded form.public static boolean isHexCharacter(char c)
c
is hexadecimal character.c
- Any characterc
is a hexadecimal character (e.g. 0, 5, a, A, f, ...)Copyright © 2016 Oracle Corporation. All Rights Reserved.