Class 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 Detail

      • mappings

        private Map mappings
    • Constructor Detail

      • PathMapper

        public PathMapper()
    • Method Detail

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