AntPathMatcher (Grails 2.3.8)
Date: 2014-04-24

Overview | Package | Class | Deprecated | Index | Help
| Groovy Documentation
| FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.codehaus.groovy.grails.io.support
[Java] Class AntPathMatcher

    java.lang.Object
      org.codehaus.groovy.grails.io.support.AntPathMatcher

    public class AntPathMatcher
    extends java.lang.Object

PathMatcher implementation for Ant-style path patterns. Examples are provided below.

Part of this mapping code has been kindly borrowed from Apache Ant.

The mapping matches URLs using the following rules:

- ? matches one character
- * matches zero or more characters
- ** matches zero or more 'directories' in a path

Some examples:

- `com/t?st.jsp` - matches `com/test.jsp` but also `com/tast.jsp` or `com/txst.jsp`
- `com/*.jsp` - matches all `.jsp` files in the `com` directory
- `com/**/test.jsp` - matches all `test.jsp` files underneath the `com` path
- `org/springframework/**/*.jsp` - matches all `.jsp` files underneath the `org/springframework` path
- `org/**/servlet/bla.jsp` - matches `org/springframework/servlet/bla.jsp` but also `org/springframework/testing/servlet/bla.jsp` and `org/servlet/bla.jsp`

Authors:
  Alef Arendsen
  Juergen Hoeller
  Rob Harrop
  Arjen Poutsma

Since:
  16.07.2003

Field Summary
`static java.lang.String` | `DEFAULT_PATH_SEPARATOR` Default path separator: "/"

Method Summary
`java.lang.String` | `combine(java.lang.String pattern1, java.lang.String pattern2)`
`static int` | `countOccurrencesOf(java.lang.String str, java.lang.String sub)` Count the occurrences of the substring in string s.
`protected boolean` | `doMatch(java.lang.String pattern, java.lang.String path, boolean fullMatch, java.util.Map uriTemplateVariables)` Actually match the given `path` against the given `pattern`.
`java.lang.String` | `extractPathWithinPattern(java.lang.String pattern, java.lang.String path)` ' and '`/docs/cvs/commit` -> '`cvs/commit`' '`/docs/**\/*.html`' and '`/docs/cvs/commit.html` -> '`cvs/commit.html`' '`/*.html`' and '`/docs/cvs/commit.html` -> '`docs/cvs/commit.html`' '`*.html`' and '`/docs/cvs/commit.html` -> '`/docs/cvs/commit.html`' '`*`' and '`/docs/cvs/commit.html` -> '`/docs/cvs/commit.html`'
`java.util.Map` | `extractUriTemplateVariables(java.lang.String pattern, java.lang.String path)`
`java.util.Comparator` | `getPatternComparator(java.lang.String path)`
`boolean` | `isPattern(java.lang.String path)`
`boolean` | `match(java.lang.String pattern, java.lang.String path)`
`boolean` | `matchStart(java.lang.String pattern, java.lang.String path)`
`void` | `setPathSeparator(java.lang.String pathSeparator)` Set the path separator to use for pattern parsing.

Methods inherited from class java.lang.Object
java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()

Field Detail

### DEFAULT_PATH_SEPARATOR

    public static final java.lang.String DEFAULT_PATH_SEPARATOR

  Default path separator: "/"

Method Detail

### combine

    public java.lang.String combine(java.lang.String pattern1, java.lang.String pattern2)

### countOccurrencesOf

    public static int countOccurrencesOf(java.lang.String str, java.lang.String sub)

  Count the occurrences of the substring in string s.
  Parameters:
    `str` - string to search in. Return 0 if this is null.
    `sub` - string to search for. Return 0 if this is null.

### doMatch

    protected boolean doMatch(java.lang.String pattern, java.lang.String path, boolean fullMatch, java.util.Map uriTemplateVariables)

  Actually match the given `path` against the given `pattern`.
  Parameters:
    `pattern` - the pattern to match against
    `path` - the path String to test
    `fullMatch` - whether a full pattern match is required (else a pattern match as far as the given base path goes is sufficient)
  Returns:
    `true` if the supplied `path` matched, `false` if it didn't

### extractPathWithinPattern

    public java.lang.String extractPathWithinPattern(java.lang.String pattern, java.lang.String path)

  ' and '`/docs/cvs/commit` -> '`cvs/commit`'
  - '`/docs/**\/*.html`' and '`/docs/cvs/commit.html` -> '`cvs/commit.html`'
  - '`/*.html`' and '`/docs/cvs/commit.html` -> '`docs/cvs/commit.html`'
  - '`*.html`' and '`/docs/cvs/commit.html` -> '`/docs/cvs/commit.html`'
  - '`*`' and '`/docs/cvs/commit.html` -> '`/docs/cvs/commit.html`'

  Assumes that match returns `true` for '`pattern`' and '`path`', but does not enforce this.

### extractUriTemplateVariables

    public java.util.Map extractUriTemplateVariables(java.lang.String pattern, java.lang.String path)

### getPatternComparator

    public java.util.Comparator getPatternComparator(java.lang.String path)

### isPattern

    public boolean isPattern(java.lang.String path)

### match

    public boolean match(java.lang.String pattern, java.lang.String path)

### matchStart

    public boolean matchStart(java.lang.String pattern, java.lang.String path)

### setPathSeparator

    public void setPathSeparator(java.lang.String pathSeparator)

  Set the path separator to use for pattern parsing. Default is "/", as in Ant.

Groovy Documentation