Top Description Methods
org.springframework.util

public Interface PathMatcher

Known Direct Implementers
org.springframework.util.AntPathMatcher
Imports
java.util.Comparator, .Map

Strategy interface for String-based path matching.

Used by org.springframework.core.io.support.PathMatchingResourcePatternResolver, org.springframework.web.servlet.handler.AbstractUrlHandlerMapping, and org.springframework.web.servlet.mvc.WebContentInterceptor.

The default implementation is AntPathMatcher, supporting the Ant-style pattern syntax.

Author
Juergen Hoeller
Since
1.2
See Also
AntPathMatcher

Method Summary

Modifier and TypeMethod and Description
public String

Returns:

the combination of the two patterns
combine
(String
the first pattern
pattern1
,
String
the second pattern
pattern2
)

Combines two patterns into a new pattern that is returned.

public String

Returns:

the pattern-mapped part of the given path (never null)
extractPathWithinPattern
(String
the path pattern
pattern
,
String
the full path to introspect
path
)

Given a pattern and a full path, determine the pattern-mapped part.

public Map<String, String>

Returns:

a map, containing variable names as keys; variables values as values
extractUriTemplateVariables
(String
the path pattern, possibly containing URI templates
pattern
,
String
the full path to extract template variables from
path
)

Given a pattern and a full path, extract the URI template variables.

public Comparator<String>

Returns:

a comparator capable of sorting patterns in order of explicitness
getPatternComparator
(String
the full path to use for comparison
path
)

Given a full path, returns a Comparator suitable for sorting patterns in order of explicitness for that path.

public boolean

Returns:

true if the given path represents a pattern
isPattern
(String
the path to check
path
)

Does the given path represent a pattern that can be matched by an implementation of this interface?

public boolean

Returns:

true if the supplied path matched, false if it didn't
match
(String
the pattern to match against
pattern
,
String
the path to test
path
)

Match the given path against the given pattern, according to this PathMatcher's matching strategy.

public boolean

Returns:

true if the supplied path matched, false if it didn't
matchStart
(String
the pattern to match against
pattern
,
String
the path to test
path
)

Match the given path against the corresponding part of the given pattern, according to this PathMatcher's matching strategy.

Method Detail

combineback to summary
public String combine(String pattern1, String pattern2)

Combines two patterns into a new pattern that is returned.

The full algorithm used for combining the two pattern depends on the underlying implementation.

Parameters
pattern1:String

the first pattern

pattern2:String

the second pattern

Returns:String

the combination of the two patterns

Exceptions
IllegalArgumentException:
when the two patterns cannot be combined
extractPathWithinPatternback to summary
public String extractPathWithinPattern(String pattern, String path)

Given a pattern and a full path, determine the pattern-mapped part.

This method is supposed to find out which part of the path is matched dynamically through an actual pattern, that is, it strips off a statically defined leading path from the given full path, returning only the actually pattern-matched part of the path.

For example: For "myroot/*.html" as pattern and "myroot/myfile.html" as full path, this method should return "myfile.html". The detailed determination rules are specified to this PathMatcher's matching strategy.

A simple implementation may return the given full path as-is in case of an actual pattern, and the empty String in case of the pattern not containing any dynamic parts (i.e. the pattern parameter being a static path that wouldn't qualify as an actual pattern). A sophisticated implementation will differentiate between the static parts and the dynamic parts of the given path pattern.

Parameters
pattern:String

the path pattern

path:String

the full path to introspect

Returns:String

the pattern-mapped part of the given path (never null)

extractUriTemplateVariablesback to summary
public Map<String, String> extractUriTemplateVariables(String pattern, String path)

Given a pattern and a full path, extract the URI template variables. URI template variables are expressed through curly brackets ('{' and '}').

For example: For pattern "/hotels/{hotel}" and path "/hotels/1", this method will return a map containing "hotel" → "1".

Parameters
pattern:String

the path pattern, possibly containing URI templates

path:String

the full path to extract template variables from

Returns:Map<String, String>

a map, containing variable names as keys; variables values as values

getPatternComparatorback to summary
public Comparator<String> getPatternComparator(String path)

Given a full path, returns a Comparator suitable for sorting patterns in order of explicitness for that path.

The full algorithm used depends on the underlying implementation, but generally, the returned Comparator will sort a list so that more specific patterns come before generic patterns.

Parameters
path:String

the full path to use for comparison

Returns:Comparator<String>

a comparator capable of sorting patterns in order of explicitness

isPatternback to summary
public boolean isPattern(String path)

Does the given path represent a pattern that can be matched by an implementation of this interface?

If the return value is false, then the match method does not have to be used because direct equality comparisons on the static path Strings will lead to the same result.

Parameters
path:String

the path to check

Returns:boolean

true if the given path represents a pattern

matchback to summary
public boolean match(String pattern, String path)

Match the given path against the given pattern, according to this PathMatcher's matching strategy.

Parameters
pattern:String

the pattern to match against

path:String

the path to test

Returns:boolean

true if the supplied path matched, false if it didn't

matchStartback to summary
public boolean matchStart(String pattern, String path)

Match the given path against the corresponding part of the given pattern, according to this PathMatcher's matching strategy.

Determines whether the pattern at least matches as far as the given base path goes, assuming that a full path may then match as well.

Parameters
pattern:String

the pattern to match against

path:String

the path to test

Returns:boolean

true if the supplied path matched, false if it didn't