Package 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

## Field Summary

Fields
Modifier and Type
Field
Description
`private Map`
`mappings`

## Constructor Summary

Constructors
Constructor
Description
`PathMapper()`

## Method Summary

Modifier and Type
Method
Description
`private static String`
`findComplexKey(String path, Map mappings)`
`private static String`
`findDefaultKey(Map mappings)`
Look for root pattern ( / ).
`private static String`
`findExactKey(String path, Map mappings)`
Check if path matches exact pattern ( /blah/blah.jsp ).
`private static String`
`findKey(String path, Map mappings)`
Find exact key in mappings.
`String`
`get(String path)`
Retrieve appropriate key by matching patterns with supplied path.
`private static boolean`
`match(String pattern, String str, boolean isCaseSensitive)`
`void`
`put(String key, String pattern)`
Add a key and appropriate matching pattern.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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