Class AntPathMatcher
java.lang.Object
org.onehippo.forge.content.exim.core.util.AntPathMatcher
Note: Copied from the source of
org.apache.camel.util.AntPathMatcher.
PathMatcher implementation for Ant-style path patterns. Examples are provided below.
Part of this mapping code has been kindly borrowed from Apache Ant and Spring Framework.
The mapping matches URLs using the following rules:
- ? matches one character
- * matches zero or more characters
- ** matches zero or more 'directories' in a path
Some examples:
com/t?st.jsp- matchescom/test.jspbut alsocom/tast.jsporcom/txst.jspcom/*.jsp- matches all.jspfiles in thecomdirectorycom/**/test.jsp- matches alltest.jspfiles underneath thecompathorg/springframework/**/*.jsp- matches all.jspfiles underneath theorg/springframeworkpathorg/**/servlet/bla.jsp- matchesorg/springframework/servlet/bla.jspbut alsoorg/springframework/testing/servlet/bla.jspandorg/servlet/bla.jsp
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanActually match the givenpathagainst the givenpattern.extractPathWithinPattern(String pattern, String path) Given a pattern and a full path, determine the pattern-mapped part.booleanCheck ifpathis an ANT style pattern string.booleanMatches.booleanMatch.booleanmatchStart(String pattern, String path) Match starts.booleanmatchStart(String pattern, String path, boolean isCaseSensitive) Match starts.voidsetPathSeparator(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.
-
Field Details
-
DEFAULT_PATH_SEPARATOR
Default path separator: "/"- See Also:
-
-
Constructor Details
-
AntPathMatcher
public AntPathMatcher()
-
-
Method Details
-
setPathSeparator
Set the path separator to use for pattern parsing. Default is "/", as in Ant.- Parameters:
pathSeparator- path separator
-
isPattern
Check ifpathis an ANT style pattern string.- Parameters:
path- path pattern- Returns:
- true if
pathis an ANT style pattern string
-
match
Matches.- Parameters:
pattern- patternpath- path- Returns:
- true if matched
-
matchStart
Match starts.- Parameters:
pattern- patternpath- path- Returns:
- true if match starts
-
match
Match.- Parameters:
pattern- patternpath- pathisCaseSensitive- case sensitiveness- Returns:
- true if matches
-
matchStart
Match starts.- Parameters:
pattern- patternpath- pathisCaseSensitive- case sensitiveness- Returns:
- true if match starts
-
doMatch
Actually match the givenpathagainst the givenpattern.- Parameters:
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.- Returns:
trueif the suppliedpathmatched,falseif it didn't
-
extractPathWithinPattern
Given a pattern and a full path, determine the pattern-mapped part.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)returnstruefor 'pattern' and 'path', but does not enforce this.- Parameters:
pattern- patternpath- path- Returns:
- extracted path within the pattern
- '
-
tokenizeToStringArray
Tokenize the given String into a String array via a StringTokenizer. Trims tokens and omits empty tokens.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- Parameters:
str- the String to tokenizedelimiters- the delimiter characters, assembled as String (each of those characters is individually considered as delimiter).- Returns:
- an array of the tokens
- See Also:
-