Package org.uberfire.commons.regex.util
Class AntPathMatcher
- java.lang.Object
-
- org.uberfire.commons.regex.util.AntPathMatcher
-
public class AntPathMatcher extends Object
PathMatcher implementation for Ant-style path patterns.This code has been borrowed from Apache Camel.
-
-
Field Summary
Fields Modifier and Type Field Description static StringDEFAULT_PATH_SEPARATORDefault path separator: "/"
-
Constructor Summary
Constructors Constructor Description AntPathMatcher()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleandoMatch(String pattern, String path, boolean fullMatch)Actually match the givenpathagainst the givenpattern.StringextractPathWithinPattern(String pattern, String path)Given a pattern and a full path, determine the pattern-mapped part.booleanisPattern(String path)booleanmatch(String pattern, String path)booleanmatchStart(String pattern, String path)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 Detail
-
DEFAULT_PATH_SEPARATOR
public static final String DEFAULT_PATH_SEPARATOR
Default path separator: "/"- See Also:
- Constant Field Values
-
-
Method Detail
-
tokenizeToStringArray
public static String[] tokenizeToStringArray(String str, String delimiters)
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:
StringTokenizer,String.trim()
-
setPathSeparator
public void setPathSeparator(String pathSeparator)
Set the path separator to use for pattern parsing. Default is "/", as in Ant.
-
isPattern
public boolean isPattern(String path)
-
doMatch
protected boolean doMatch(String pattern, String path, boolean fullMatch)
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)- Returns:
trueif the suppliedpathmatched,falseif it didn't
-
extractPathWithinPattern
public String extractPathWithinPattern(String pattern, String path)
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. - '
-
-