public class AntPathMatcher extends Object
Part of this mapping code has been kindly borrowed from Apache Ant and Spring Framework.
The mapping matches URLs using the following rules:
Some examples:
com/t?st.jsp
- matches com/test.jsp
but also
com/tast.jsp
or com/txst.jsp
com/*.jsp
- matches all .jsp
files in the
com
directory
com/**/test.jsp
- matches all test.jsp
files underneath the com
path
org/springframework/**/*.jsp
- matches all
.jsp
files underneath the org/springframework
path
org/**/servlet/bla.jsp
- matches
org/springframework/servlet/bla.jsp
but also
org/springframework/testing/servlet/bla.jsp
and
org/servlet/bla.jsp
Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_PATH_SEPARATOR
Default path separator: "/"
|
Constructor and Description |
---|
AntPathMatcher() |
Modifier and Type | Method and Description |
---|---|
protected boolean |
doMatch(String pattern,
String path,
boolean fullMatch,
boolean isCaseSensitive)
Actually match the given
path against the given
pattern . |
String |
extractPathWithinPattern(String pattern,
String path)
Given a pattern and a full path, determine the pattern-mapped part.
|
boolean |
isPattern(String path) |
boolean |
match(String pattern,
String path) |
boolean |
match(String pattern,
String path,
boolean isCaseSensitive) |
boolean |
matchStart(String pattern,
String path) |
boolean |
matchStart(String pattern,
String path,
boolean isCaseSensitive) |
void |
setPathSeparator(String pathSeparator)
Set the path separator to use for pattern parsing.
|
static String[] |
tokenizeToStringArray(String str,
String delimiters)
Tokenize the given String into a String array via a StringTokenizer.
|
public static final String DEFAULT_PATH_SEPARATOR
public void setPathSeparator(String pathSeparator)
public boolean isPattern(String path)
protected boolean doMatch(String pattern, String path, boolean fullMatch, boolean isCaseSensitive)
path
against the given
pattern
.pattern
- the pattern to match againstpath
- the path String to testfullMatch
- whether a full pattern match is required (else a pattern
match as far as the given base path goes is sufficient)isCaseSensitive
- Whether or not matching should be performed
case sensitively.true
if the supplied path
matched,
false
if it didn'tpublic String extractPathWithinPattern(String pattern, String path)
For example:
/docs/cvs/commit.html
' and '
/docs/cvs/commit.html
-> ''/docs/*
' and '/docs/cvs/commit
-> '
cvs/commit
'/docs/cvs/*.html
' and '
/docs/cvs/commit.html
-> 'commit.html
'/docs/**
' and '/docs/cvs/commit
-> '
cvs/commit
'/docs/**\/*.html
' and '
/docs/cvs/commit.html
-> 'cvs/commit.html
'/*.html
' and '/docs/cvs/commit.html
-> '
docs/cvs/commit.html
'*.html
' and '/docs/cvs/commit.html
-> '
/docs/cvs/commit.html
'*
' and '/docs/cvs/commit.html
-> '
/docs/cvs/commit.html
'
Assumes that match(java.lang.String, java.lang.String)
returns true
for '
pattern
' and 'path
', but does
not enforce this.
public static String[] tokenizeToStringArray(String str, String delimiters)
The given delimiters string is supposed to consist of any number of
delimiter characters. Each of those characters can be used to separate
tokens. A delimiter is always a single character; for multi-character
delimiters, consider using delimitedListToStringArray
str
- the String to tokenizedelimiters
- the delimiter characters, assembled as String (each of
those characters is individually considered as delimiter).StringTokenizer
,
String.trim()
Apache Camel