Package org.apache.struts2.util
Class NamedVariablePatternMatcher
java.lang.Object
org.apache.struts2.util.NamedVariablePatternMatcher
- All Implemented Interfaces:
- PatternMatcher<NamedVariablePatternMatcher.CompiledPattern>
public class NamedVariablePatternMatcher
extends Object
implements PatternMatcher<NamedVariablePatternMatcher.CompiledPattern>
An implementation of a pattern matcher that uses simple named wildcards.  The named wildcards are defined using the
 
 
 
{VARIABLE_NAME} syntax and will match any characters that aren't '/'.  Internally, the pattern is
 converted into a regular expression where the named wildcard will be translated into ([^/]+) so that
 at least one character must match in order for the wildcard to be matched successfully.  Matched values will be
 available in the variable map, indexed by the name they were given in the pattern.
 For example, the following patterns will be processed as so:
| Pattern | Example | Variable Map Contents | 
|---|---|---|
| /animals/{animal} | /animals/dog | {animal -> dog} | 
| /animals/{animal}/tag/No{id} | /animals/dog/tag/No23 | {animal -> dog, id -> 23} | 
| /{language} | /en | {language -> en} | 
Escaping hasn't been implemented since the intended use of these patterns will be in matching URLs.
- Since:
- 2.1
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionstatic classStores the compiled pattern and the variable names matches will correspond to.
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptioncompilePattern(String data) Compiles the pattern.booleanDetermines if the pattern is a simple literal string or contains wildcards that will need to be processedbooleanTries to process the data against the compiled expression.
- 
Constructor Details- 
NamedVariablePatternMatcherpublic NamedVariablePatternMatcher()
 
- 
- 
Method Details- 
isLiteralDescription copied from interface:PatternMatcherDetermines if the pattern is a simple literal string or contains wildcards that will need to be processed- Specified by:
- isLiteralin interface- PatternMatcher<NamedVariablePatternMatcher.CompiledPattern>
- Parameters:
- pattern- The string pattern
- Returns:
- True if the pattern doesn't contain processing elements, false otherwise
 
- 
compilePatternCompiles the pattern.- Specified by:
- compilePatternin interface- PatternMatcher<NamedVariablePatternMatcher.CompiledPattern>
- Parameters:
- data- The pattern, must not be null or empty
- Returns:
- The compiled pattern, null if the pattern was null or empty
 
- 
matchpublic boolean match(Map<String, String> map, String data, NamedVariablePatternMatcher.CompiledPattern expr) Tries to process the data against the compiled expression. If successful, the map will contain the matched data, using the specified variable names in the original pattern.- Specified by:
- matchin interface- PatternMatcher<NamedVariablePatternMatcher.CompiledPattern>
- Parameters:
- map- The map of variables
- data- The data to match
- expr- The compiled pattern
- Returns:
- True if matched, false if not matched, the data was null, or the data was an empty string
 
 
-