Package org.apache.camel.util
Class AntPathMatcher
java.lang.Object
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
FieldsModifier and TypeFieldDescriptionstatic final StringDefault path separator: "/"static final AntPathMatcher -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanbooleandetermineRootDir(String location) Determine the root directory for the given location.protected booleanActually match the givenpathagainst the givenpattern.extractPathWithinPattern(String pattern, String path) Given a pattern and a full path, determine the pattern-mapped part.booleanbooleanbooleanbooleanmatchStart(String pattern, String path) booleanmatchStart(String pattern, String path, boolean isCaseSensitive) 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
-
INSTANCE
-
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. -
isPattern
-
match
-
anyMatch
-
anyMatch
-
matchStart
-
match
-
matchStart
-
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. - '
-
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:
-
determineRootDir
Determine the root directory for the given location.Used for determining the starting point for file matching, resolving the root directory location
Will return "/WEB-INF/" for the pattern "/WEB-INF/*.xml", for example.
- Parameters:
location- the location to check- Returns:
- the part of the location that denotes the root directory
-