PathMatcher

Strategy interface for {@code string}-based path matching.

<p>Used by {@link hunt.framework.core.io.support.PathMatchingResourcePatternResolver}, {@link hunt.framework.web.servlet.handler.AbstractUrlHandlerMapping}, and {@link hunt.framework.web.servlet.mvc.WebContentInterceptor}.

<p>The default implementation is {@link AntPathMatcher}, supporting the Ant-style pattern syntax.

@author Juergen Hoeller @see AntPathMatcher

Members

Functions

combine
string combine(string pattern1, string pattern2)

Combines two patterns into a new pattern that is returned. <p>The full algorithm used for combining the two pattern depends on the underlying implementation. @param pattern1 the first pattern @param pattern2 the second pattern @return the combination of the two patterns @throws IllegalArgumentException when the two patterns cannot be combined

extractPathWithinPattern
string extractPathWithinPattern(string pattern, string path)

Given a pattern and a full path, determine the pattern-mapped part. <p>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. <p>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. <p>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 {@code pattern} parameter being a static path that wouldn't qualify as an actual {@link #isPattern pattern}). A sophisticated implementation will differentiate between the static parts and the dynamic parts of the given path pattern. @param pattern the path pattern @param path the full path to introspect @return the pattern-mapped part of the given {@code path} (never {@code null})

extractUriTemplateVariables
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 '}'). <p>For example: For pattern "/hotels/{hotel}" and path "/hotels/1", this method will return a map containing "hotel"->"1". @param pattern the path pattern, possibly containing URI templates @param path the full path to extract template variables from @return a map, containing variable names as keys; variables values as values

isPattern
bool isPattern(string path)

Does the given {@code path} represent a pattern that can be matched by an implementation of this interface? <p>If the return value is {@code false}, then the {@link #match} method does not have to be used because direct equality comparisons on the static path Strings will lead to the same result. @param path the path string to check @return {@code true} if the given {@code path} represents a pattern

match
bool match(string pattern, string path)

Match the given {@code path} against the given {@code pattern}, according to this PathMatcher's matching strategy. @param pattern the pattern to match against @param path the path string to test @return {@code true} if the supplied {@code path} matched, {@code false} if it didn't

matchStart
bool matchStart(string pattern, string path)

Match the given {@code path} against the corresponding part of the given {@code pattern}, according to this PathMatcher's matching strategy. <p>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. @param pattern the pattern to match against @param path the path string to test @return {@code true} if the supplied {@code path} matched, {@code false} if it didn't

Meta