com.opensymphony.module.sitemesh.mapper
Class PathMapper
java.lang.Object
com.opensymphony.module.sitemesh.mapper.PathMapper
public class PathMapper - extends Object
The PathMapper is used to map file patterns to keys, and find an approriate
key for a given file path. The pattern rules are consistent with those defined
in the Servlet 2.3 API on the whole. Wildcard patterns are also supported, using
any combination of * and ?.
Example
PathMapper pm = new PathMapper();
pm.put("one","/");
pm.put("two","/mydir/*");
pm.put("three","*.xml");
pm.put("four","/myexactfile.html");
pm.put("five","/*\/admin/*.??ml");
String result1 = pm.get("/mydir/myfile.xml"); // returns "two";
String result2 = pm.get("/mydir/otherdir/admin/myfile.html"); // returns "five";
- Version:
- $Revision: 1.3 $
- Author:
- Joe Walnes, Mike Cannon-Brookes, Hani Suleiman
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
mappings
private Map mappings
PathMapper
public PathMapper()
put
public void put(String key,
String pattern)
- Add a key and appropriate matching pattern.
get
public String get(String path)
- Retrieve appropriate key by matching patterns with supplied path.
findKey
private static String findKey(String path,
Map mappings)
- Find exact key in mappings.
findExactKey
private static String findExactKey(String path,
Map mappings)
- Check if path matches exact pattern ( /blah/blah.jsp ).
findComplexKey
private static String findComplexKey(String path,
Map mappings)
findDefaultKey
private static String findDefaultKey(Map mappings)
- Look for root pattern ( / ).
match
private static boolean match(String pattern,
String str,
boolean isCaseSensitive)
|