public class PathPatternParser extends Object
PathPattern
instances that can
then be matched to requests.
The PathPatternParser
and PathPattern
are specifically
designed for use with HTTP URL paths in web applications where a large number
of URI path patterns, continuously matched against incoming requests,
motivates the need for efficient matching.
For details of the path pattern syntax see PathPattern
.
Modifier and Type | Field and Description |
---|---|
static PathPatternParser |
defaultInstance
Shared, read-only instance of
PathPatternParser . |
Constructor and Description |
---|
PathPatternParser() |
Modifier and Type | Method and Description |
---|---|
PathContainer.Options |
getPathOptions()
Return the
configured pattern parsing options. |
String |
initFullPathPattern(String pattern)
Prepare the given pattern for use in matching to full URL paths.
|
boolean |
isCaseSensitive()
Whether case-sensitive pattern matching is enabled.
|
boolean |
isMatchOptionalTrailingSeparator()
Whether optional trailing slashing match is enabled.
|
PathPattern |
parse(String pathPattern)
Process the path pattern content, a character at a time, breaking it into
path elements around separator boundaries and verifying the structure at each
stage.
|
void |
setCaseSensitive(boolean caseSensitive)
Whether path pattern matching should be case-sensitive.
|
void |
setMatchOptionalTrailingSeparator(boolean matchOptionalTrailingSeparator)
Whether a
PathPattern produced by this parser should
automatically match request paths with a trailing slash. |
void |
setPathOptions(PathContainer.Options pathOptions)
Set options for parsing patterns.
|
public static final PathPatternParser defaultInstance
PathPatternParser
. Uses default settings:
matchOptionalTrailingSeparator=true
caseSensitivetrue
pathOptions=PathContainer.Options.HTTP_PATH
public void setMatchOptionalTrailingSeparator(boolean matchOptionalTrailingSeparator)
PathPattern
produced by this parser should
automatically match request paths with a trailing slash.
If set to true
a PathPattern
without a trailing slash
will also match request paths with a trailing slash. If set to
false
a PathPattern
will only match request paths with
a trailing slash.
The default is true
.
public boolean isMatchOptionalTrailingSeparator()
public void setCaseSensitive(boolean caseSensitive)
The default is true
.
public boolean isCaseSensitive()
public void setPathOptions(PathContainer.Options pathOptions)
PathContainer.Options.HTTP_PATH
is used by default.
public PathContainer.Options getPathOptions()
configured
pattern parsing options.public String initFullPathPattern(String pattern)
By default, prepend a leading slash if needed for non-empty patterns.
pattern
- the pattern to initializepublic PathPattern parse(String pathPattern) throws PatternParseException
InternalPathPatternParser
because that class is not thread-safe.pathPattern
- the input path pattern, e.g. /project/{name}PatternParseException
- in case of parse errors