Package org.apache.struts2.config.impl

# Class ActionConfigMatcher

java.lang.Object
org.apache.struts2.config.impl.AbstractMatcher<ActionConfig>
org.apache.struts2.config.impl.ActionConfigMatcher

All Implemented Interfaces:
  `Serializable`

public class ActionConfigMatcher extends AbstractMatcher<ActionConfig> implements Serializable

Matches paths against pre-compiled wildcard expressions pulled from action configs. It uses the wildcard matcher from the Apache Cocoon project. Patterns will be matched in the order they exist in the config file. The first match wins, so more specific patterns should be defined before less specific patterns.

See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ActionConfigMatcher(PatternMatcher<?> patternMatcher, Map<String,ActionConfig> configs, boolean looseMatch)`
  Finds and precompiles the wildcard patterns from the ActionConfig "path" attributes.
  `ActionConfigMatcher(PatternMatcher<?> patternMatcher, Map<String,ActionConfig> configs, boolean looseMatch, boolean appendNamedParameters)`
  Finds and precompiles the wildcard patterns from the ActionConfig "path" attributes.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ActionConfig`
  `convert(String path, ActionConfig orig, Map<String,String> vars)`
  Clones the ActionConfig and its children, replacing various properties with the values of the wildcard-matched strings.

  ### Methods inherited from class org.apache.struts2.config.impl.AbstractMatcher

  `addPattern, convertParam, freeze, match, replaceParameters`

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

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

- ## Constructor Details

  - ### ActionConfigMatcher

    public ActionConfigMatcher(PatternMatcher<?> patternMatcher, Map<String,ActionConfig> configs, boolean looseMatch)

    Finds and precompiles the wildcard patterns from the ActionConfig "path" attributes. ActionConfig's will be evaluated in the order they exist in the config file. Only paths that actually contain a wildcard will be compiled.

    Patterns can optionally be matched "loosely". When the end of the pattern matches \*[^*]\*$ (wildcard, no wildcard, wildcard), if the pattern fails, it is also matched as if the last two characters didn't exist. The goal is to support the legacy "*!*" syntax, where the "!*" is optional.

    Parameters:
      `patternMatcher` - pattern matcher
      `configs` - An array of ActionConfig's to process
      `looseMatch` - To loosely match wildcards or not

  - ### ActionConfigMatcher

    public ActionConfigMatcher(PatternMatcher<?> patternMatcher, Map<String,ActionConfig> configs, boolean looseMatch, boolean appendNamedParameters)

    Finds and precompiles the wildcard patterns from the ActionConfig "path" attributes. ActionConfig's will be evaluated in the order they exist in the config file. Only paths that actually contain a wildcard will be compiled.

    Patterns can optionally be matched "loosely". When the end of the pattern matches \*[^*]\*$ (wildcard, no wildcard, wildcard), if the pattern fails, it is also matched as if the last two characters didn't exist. The goal is to support the legacy "*!*" syntax, where the "!*" is optional.

    Parameters:
      `patternMatcher` - pattern matcher
      `configs` - An array of ActionConfig's to process
      `looseMatch` - To loosely match wildcards or not
      `appendNamedParameters` - To append named parameters or not
    Since:
      2.5.23 See WW-5065

- ## Method Details

  - ### convert

    public ActionConfig convert(String path, ActionConfig orig, Map<String,String> vars)

    Clones the ActionConfig and its children, replacing various properties with the values of the wildcard-matched strings.

    Specified by:
      `convert` in class `AbstractMatcher<ActionConfig>`
    Parameters:
      `path` - The requested path
      `orig` - The original ActionConfig
      `vars` - A Map of wildcard-matched strings
    Returns:
      A cloned ActionConfig with appropriate properties replaced with wildcard-matched values