Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.tiles.util
Class WildcardHelper

    java.lang.Object
      org.apache.tiles.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 Struts that is taken, in turn, from Apache Struts.

Since:
  2.1.0
Version:
  $Rev: 795343 $ $Date: 2009-07-18 13:26:09 +0200 (sab, 18 lug 2009) $

Field Summary
`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 Summary
`WildcardHelper()`

Method Summary
`int[]` | `compilePattern(java.lang.String data)` Translate the given `String` into a `int []` representing the pattern matchable by this class.
`static java.lang.String` | `convertParam(java.lang.String val, java.util.Map<java.lang.Integer,java.lang.String> vars)` Inserts into a value wildcard-matched strings where specified.
`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.
`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(java.util.Map<java.lang.Integer,java.lang.String> map, java.lang.String data, int[] expr)` Deprecated. Use `#match(List, String, int[])`.
`java.util.List<java.lang.String>` | `match(java.lang.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.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### MATCH_FILE

    protected static final int MATCH_FILE

  The int representing '*' in the pattern `int []`.

  Since:
    2.1.0
  See Also:
    Constant Field Values

### MATCH_PATH

    protected static final int MATCH_PATH

  The int representing '**' in the pattern `int []`.

  Since:
    2.1.0
  See Also:
    Constant Field Values

### MATCH_BEGIN

    protected static final int MATCH_BEGIN

  The int representing begin in the pattern `int []`.

  Since:
    2.1.0
  See Also:
    Constant Field Values

### MATCH_THEEND

    protected static final int MATCH_THEEND

  The int representing end in pattern `int []`.

  Since:
    2.1.0
  See Also:
    Constant Field Values

### MATCH_END

    protected static final int MATCH_END

  The int value that terminates the pattern `int []`.

  Since:
    2.1.0
  See Also:
    Constant Field Values

Constructor Detail

### WildcardHelper

    public WildcardHelper()

Method Detail

### compilePattern

    public int[] compilePattern(java.lang.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.

  Parameters:
    `data` - The string to translate.
  Returns:
    The encoded string as an int array, terminated by the MATCH_END value (don't consider the array length).
  Throws:
    `java.lang.NullPointerException` - If data is null.
  Since:
    2.1.0

### match

    public boolean match(java.util.Map<java.lang.Integer,java.lang.String> map,
                         java.lang.String data,
                         int[] expr)

  Deprecated. Use `#match(List, String, int[])`.

  Match a pattern agains a string and isolates wildcard replacement into a `Stack`.

  Parameters:
    `map` - The map to store matched values
    `data` - The string to match
    `expr` - The compiled wildcard expression
  Returns:
    True if a match
  Throws:
    `java.lang.NullPointerException` - If any parameters are null
  Since:
    2.1.0

### match

    public java.util.List<java.lang.String> match(java.lang.String data,
                                                  int[] expr)

  Match a pattern agains a string and isolates wildcard replacement into a `Stack`.

  Parameters:
    `data` - The string to match
    `expr` - The compiled wildcard expression
  Returns:
    The list of matched variables, or `null` if it does not match.
  Throws:
    `java.lang.NullPointerException` - If any parameters are null
  Since:
    2.2.0

### indexOfArray

    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.
  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.

  Parameters:
    `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.
  Returns:
    The offset in d of the part of r matched in d or -1 if that was not found.
  Since:
    2.1.0

### lastIndexOfArray

    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.
  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.

  Parameters:
    `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.
  Returns:
    The offset in d of the last part of r matched in d or -1 if that was not found.
  Since:
    2.1.0

### matchArray

    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.
  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).

  Parameters:
    `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.
  Returns:
    true if array d starts from portion of array r.
  Since:
    2.1.0

### convertParam

    public static java.lang.String convertParam(java.lang.String val,
                                                java.util.Map<java.lang.Integer,java.lang.String> vars)

  Inserts into a value wildcard-matched strings where specified.

  Parameters:
    `val` - The value to convert
    `vars` - A Map of wildcard-matched strings
  Returns:
    The new value
  Since:
    2.1.0

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2010 Apache Software Foundation. All Rights Reserved.