org.apache.cocoon.util
Class WildcardMatcherHelper

java.lang.Object
  extended byorg.apache.cocoon.util.WildcardMatcherHelper

public class WildcardMatcherHelper
extends Object

This class is an utility class that perform wildcard-patterns matching and isolation.

Version:
$Id: WildcardMatcherHelper.html 1304280 2012-03-23 11:18:01Z ilgrosso $

Field Summary
static char ESC
          Default path separator: "/"
static char PATHSEP
          Default path separator: "/"
static char STAR
          Default path separator: "/"
 
Constructor Summary
WildcardMatcherHelper()
           
 
Method Summary
static Map match(String pat, String str)
          Match a pattern agains a string and isolates wildcard replacement into a Map.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ESC

public static final char ESC
Default path separator: "/"

See Also:
Constant Field Values

PATHSEP

public static final char PATHSEP
Default path separator: "/"

See Also:
Constant Field Values

STAR

public static final char STAR
Default path separator: "/"

See Also:
Constant Field Values
Constructor Detail

WildcardMatcherHelper

public WildcardMatcherHelper()
Method Detail

match

public static Map match(String pat,
                        String str)
Match a pattern agains a string and isolates wildcard replacement into a Map.
Here is how the matching algorithm works:
When more than two '*' characters, not separated by another character, are found their value is considered as '**' and immediate succeeding '*' are skipped.
The '**' wildcard is greedy and thus the following sample matches as {"foo/bar","baz","bug"}:
pattern
STAR,STAR,PATHSEP,STAR,PATHSEP,STAR,STAR (why can't I express it litterally?)
string
foo/bar/baz/bug
The first '**' in the pattern will suck up as much as possible without making the match fail.

Parameters:
pat - The pattern string.
str - The string to math agains the pattern
Returns:
a Map containing the representation of the extracted pattern. The extracted patterns are keys in the Map from left to right beginning with "1" for te left most, "2" for the next, a.s.o. The key "0" is the string itself. If the return value is null, string does not match to the pattern .


Copyright 1999-2008 The Apache Software Foundation. All Rights Reserved.