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