org.apache.struts.util
Class WildcardHelper
java.lang.Object
org.apache.struts.util.WildcardHelper
public class WildcardHelper
extends java.lang.Object
This class is an utility class that perform wilcard-patterns matching and
isolation taken from Apache Cocoon.
$Rev: 54929 $ $Date: 2004-10-16 17:38:42 +0100 (Sat, 16 Oct 2004) $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 [] .
|
int[] | compilePattern(String data) - Translate the given
String into a int []
representing the pattern matchable by this class.
|
protected int | indexOfArray(r[] , int rpos, int rend, d[] , int dpos) - Get the offset of a part of an int array within a char array.
|
protected int | lastIndexOfArray(r[] , int rpos, int rend, d[] , int dpos) - Get the offset of a last occurance of an int array within a char array.
|
boolean | match(Map map, String data, int[] expr) - Match a pattern agains a string and isolates wildcard replacement into a
Stack .
|
protected boolean | matchArray(r[] , int rpos, int rend, d[] , int dpos) - Matches elements of array r from rpos to rend with array d, starting
from dpos.
|
MATCH_BEGIN
protected static final int MATCH_BEGIN
The int representing begin in the pattern int []
.
MATCH_END
protected static final int MATCH_END
The int value that terminates the pattern int []
.
MATCH_FILE
protected static final int MATCH_FILE
The int representing '*' in the pattern int []
.
MATCH_PATH
protected static final int MATCH_PATH
The int representing '**' in the pattern int []
.
MATCH_THEEND
protected static final int MATCH_THEEND
The int representing end in pattern int []
.
compilePattern
public 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:
- The '*' character is converted to MATCH_FILE, meaning that zero
or more characters (excluding the path separator '/') are to
be matched.
- The '**' sequence is converted to MATCH_PATH, meaning that zero
or more characters (including the path separator '/') are to
be matched.
- The '\' character is used as an escape sequence ('\*' is
translated in '*', not in MATCH_FILE). If an exact '\' character
is to be matched the source string must contain a '\\'.
sequence.
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.
data
- The string to translate.
- The encoded string as an int array, terminated by the MATCH_END
value (don't consider the array length).
indexOfArray
protected int indexOfArray(r[] ,
int rpos,
int rend,
d[] ,
int dpos)
Get the offset of a part of an int array within a char array.
This method return the index in d of the first occurrence after dpos of
that part of array specified by r, starting at rpos and terminating at
rend.
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.dpos
- The starting offset in d for the matching.
- The offset in d of the part of r matched in d or -1 if that was
not found.
lastIndexOfArray
protected int lastIndexOfArray(r[] ,
int rpos,
int rend,
d[] ,
int dpos)
Get the offset of a last occurance of an int array within a char array.
This method return the index in d of the last occurrence after dpos of
that part of array specified by r, starting at rpos and terminating at
rend.
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.dpos
- The starting offset in d for the matching.
- The offset in d of the last part of r matched in d or -1 if
that was not found.
match
public boolean match(Map map,
String data,
int[] expr)
Match a pattern agains a string and isolates wildcard replacement into a
Stack
.
map
- The map to store matched valuesdata
- The string to matchexpr
- The compiled wildcard expression
matchArray
protected boolean matchArray(r[] ,
int rpos,
int rend,
d[] ,
int dpos)
Matches elements of array r from rpos to rend with array d, starting
from dpos.
This method return true if elements of array r from rpos to rend
equals elements of array d starting from dpos to dpos+(rend-rpos).
rpos
- The index of the first character in r to look for.rend
- The index of the last character in r to look for.dpos
- The starting offset in d for the matching.
- true if array d starts from portion of array r.
Copyright B) 2000-2007 - The Apache Software Foundation