public class WildcardHelper extends Object implements PatternMatcher<int[]>
Modifier and Type | Field and Description |
---|---|
protected static int |
MATCH_BEGIN
The int representing begin in the pattern
int [] . |
protected static int |
MATCH_END
The int value that terminates the pattern
int [] . |
protected static int |
MATCH_FILE
The int representing '*' in the pattern
int [] . |
protected static int |
MATCH_PATH
The int representing '**' in the pattern
int [] . |
protected static int |
MATCH_THEEND
The int representing end in pattern
int [] . |
Constructor and Description |
---|
WildcardHelper() |
Modifier and Type | Method and Description |
---|---|
int[] |
compilePattern(String data)
Translate the given
String into a int []
representing the pattern matchable by this class. |
protected int |
indexOfArray(int[] r,
int rpos,
int rend,
char[] d,
int dpos)
Get the offset of a part of an int array within a char array.
|
boolean |
isLiteral(String pattern)
Determines if the pattern contains any * characters
|
protected int |
lastIndexOfArray(int[] r,
int rpos,
int rend,
char[] d,
int dpos)
Get the offset of a last occurance of an int array within a char array.
|
boolean |
match(Map<String,String> map,
String data,
int[] expr)
Match a pattern agains a string and isolates wildcard replacement into
a
Stack . |
protected boolean |
matchArray(int[] r,
int rpos,
int rend,
char[] d,
int dpos)
Matches elements of array r from rpos to rend with array d, starting
from dpos.
|
protected static final int MATCH_FILE
int []
.protected static final int MATCH_PATH
int []
.protected static final int MATCH_BEGIN
int []
.protected static final int MATCH_THEEND
int []
.protected static final int MATCH_END
int []
.public boolean isLiteral(String pattern)
isLiteral
in interface PatternMatcher<int[]>
pattern
- The patternpublic int[] compilePattern(String data)
Translate the given String
into a int []
representing the pattern matchable by this class.
This function
translates a String
into an int array converting the
special '*' and '\' characters.
Here is how the conversion
algorithm works:
When more than two '*' characters, not separated by another
character, are found their value is considered as '**' (MATCH_PATH).
The array is always terminated by a special value (MATCH_END).
All MATCH* values are less than zero, while normal characters are
equal or greater.
compilePattern
in interface PatternMatcher<int[]>
data
- The string to translate.NullPointerException
- If data is null.public boolean match(Map<String,String> map, String data, int[] expr)
Stack
.match
in interface PatternMatcher<int[]>
map
- The map to store matched valuesdata
- The string to matchexpr
- The compiled wildcard expressionNullPointerException
- If any parameters are nullprotected int indexOfArray(int[] r, int rpos, int rend, char[] d, int dpos)
r
- The array containing the data that need to be matched in
d.rpos
- The index of the first character in r to look for.rend
- The index of the last character in r to look for plus 1.d
- The array of char that should contain a part of r.dpos
- The starting offset in d for the matching.protected int lastIndexOfArray(int[] r, int rpos, int rend, char[] d, int dpos)
r
- The array containing the data that need to be matched in
d.rpos
- The index of the first character in r to look for.rend
- The index of the last character in r to look for plus 1.d
- The array of char that should contain a part of r.dpos
- The starting offset in d for the matching.protected boolean matchArray(int[] r, int rpos, int rend, char[] d, int dpos)
r
- The array containing the data that need to be matched in
d.rpos
- The index of the first character in r to look for.rend
- The index of the last character in r to look for.d
- The array of char that should start from a part of r.dpos
- The starting offset in d for the matching.Copyright © 2000–2020 Apache Software Foundation. All rights reserved.