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
  • Field Details

    • mappings

      private Map mappings
  • Constructor Details

    • PathMapper

      public PathMapper()
  • Method Details

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