Groovy Documentation

org.codehaus.groovy.grails.web.mapping
[Java] Class RegexUrlMapping

java.lang.Object
  org.codehaus.groovy.grails.web.mapping.AbstractUrlMapping
      org.codehaus.groovy.grails.web.mapping.RegexUrlMapping
All Implemented Interfaces:
UrlMapping

@SuppressWarnings("rawtypes")
public class RegexUrlMapping
extends AbstractUrlMapping

A UrlMapping implementation that takes a Grails URL pattern and turns it into a regex matcher so that URLs can be matched and information captured from the match.

A Grails URL pattern is not a regex, but is an extension to the form defined by Apache Ant and used by Spring AntPathMatcher. Unlike regular Ant paths Grails URL patterns allow for capturing groups in the form:

/blog/(*)/**

The parenthesis define a capturing group. This implementation transforms regular Ant paths into regular expressions that are able to use capturing groups

Authors:
Graeme Rocher
See Also:
org.springframework.util.AntPathMatcher
Since:
0.5


Field Summary
 
Fields inherited from class AbstractUrlMapping
actionName, constraints, controllerName, forwardURI, mappingName, parameterValues, parseRequest, restful, servletContext, viewName
 
Constructor Summary
RegexUrlMapping(UrlMappingData data, java.lang.Object controllerName, java.lang.Object actionName, java.lang.Object viewName, ConstrainedProperty[] constraints, ServletContext servletContext)

Constructs a new RegexUrlMapping for the given pattern, controller name, action name and constraints.

RegexUrlMapping(UrlMappingData data, java.net.URI uri, ConstrainedProperty[] constraints, ServletContext servletContext)

Constructs a new RegexUrlMapipng for the given pattern that maps to the specified URI

 
Method Summary
int compareTo(java.lang.Object o)

Compares this UrlMapping instance with the specified UrlMapping instance and deals with URL mapping precedence rules.

protected java.util.regex.Pattern convertToRegex(java.lang.String url)

Converts a Grails URL provides via the UrlMappingData interface to a regular expression.

java.lang.String createRelativeURL(java.lang.String controller, java.lang.String action, java.util.Map paramValues, java.lang.String encoding)

java.lang.String createRelativeURL(java.lang.String controller, java.lang.String action, java.util.Map paramValues, java.lang.String encoding, java.lang.String fragment)

java.lang.String createURL(java.util.Map paramValues, java.lang.String encoding)

@see org.codehaus.groovy.grails.web.mapping.UrlMapping

java.lang.String createURL(java.util.Map paramValues, java.lang.String encoding, java.lang.String fragment)

java.lang.String createURL(java.lang.String controller, java.lang.String action, java.util.Map paramValues, java.lang.String encoding)

java.lang.String createURL(java.lang.String controller, java.lang.String action, java.util.Map paramValues, java.lang.String encoding, java.lang.String fragment)

String[] getLogicalMappings()

UrlMappingData getUrlData()

UrlMappingInfo match(java.lang.String uri)

Matches the given URI and returns a DefaultUrlMappingInfo instance or null

java.lang.String toString()

 
Methods inherited from class AbstractUrlMapping
getActionName, getConstraints, getControllerName, getMappingName, getViewName, hasRuntimeVariable, isRestfulMapping, setMappingName, setParameterValues, setParseRequest, setRestfulMapping
 

Constructor Detail

RegexUrlMapping

public RegexUrlMapping(UrlMappingData data, java.lang.Object controllerName, java.lang.Object actionName, java.lang.Object viewName, ConstrainedProperty[] constraints, ServletContext servletContext)
Constructs a new RegexUrlMapping for the given pattern, controller name, action name and constraints.
Parameters:
data - An instance of the UrlMappingData class that holds necessary information of the URL mapping
controllerName - The name of the controller the URL maps to (required)
actionName - The name of the action the URL maps to
viewName - The name of the view as an alternative to the name of the action. If the action is specified it takes precedence over the view name during mapping
constraints - A list of ConstrainedProperty instances that relate to tokens in the URL
servletContext
See Also:
ConstrainedProperty


RegexUrlMapping

public RegexUrlMapping(UrlMappingData data, java.net.URI uri, ConstrainedProperty[] constraints, ServletContext servletContext)
Constructs a new RegexUrlMapipng for the given pattern that maps to the specified URI
Parameters:
data - The pattern
uri - The URI
constraints - Any constraints etc.
servletContext - The servlet context


 
Method Detail

compareTo

public int compareTo(java.lang.Object o)
Compares this UrlMapping instance with the specified UrlMapping instance and deals with URL mapping precedence rules. URL Mapping Precedence Order 1. Less wildcard tokens. /foo <- match /foo/(*) /foo/(*)/bar/ <- match /foo/(*)/(*) 2. More static tokens. /foo/(*)/bar <- match /foo/(*)
Parameters:
o - An instance of the UrlMapping interface
Returns:
greater than 0 if this UrlMapping should match before the specified UrlMapping. 0 if they are equal or less than 0 if this UrlMapping should match after the given UrlMapping


convertToRegex

protected java.util.regex.Pattern convertToRegex(java.lang.String url)
Converts a Grails URL provides via the UrlMappingData interface to a regular expression.
Parameters:
url - The URL to convert
Returns:
A regex Pattern objet


createRelativeURL

public java.lang.String createRelativeURL(java.lang.String controller, java.lang.String action, java.util.Map paramValues, java.lang.String encoding)


createRelativeURL

public java.lang.String createRelativeURL(java.lang.String controller, java.lang.String action, java.util.Map paramValues, java.lang.String encoding, java.lang.String fragment)


createURL

public java.lang.String createURL(java.util.Map paramValues, java.lang.String encoding)
See Also:
UrlMapping


createURL

public java.lang.String createURL(java.util.Map paramValues, java.lang.String encoding, java.lang.String fragment)


createURL

public java.lang.String createURL(java.lang.String controller, java.lang.String action, java.util.Map paramValues, java.lang.String encoding)


createURL

public java.lang.String createURL(java.lang.String controller, java.lang.String action, java.util.Map paramValues, java.lang.String encoding, java.lang.String fragment)


getLogicalMappings

public String[] getLogicalMappings()


getUrlData

public UrlMappingData getUrlData()


match

public UrlMappingInfo match(java.lang.String uri)
Matches the given URI and returns a DefaultUrlMappingInfo instance or null
Parameters:
uri - The URI to match
Returns:
A UrlMappingInfo instance or null
See Also:
UrlMappingInfo


toString

@Override
public java.lang.String toString()


 

Groovy Documentation