Package org.grails.web.mapping
Class CachingLinkGenerator
- java.lang.Object
-
- org.grails.web.mapping.DefaultLinkGenerator
-
- org.grails.web.mapping.CachingLinkGenerator
-
- All Implemented Interfaces:
grails.plugins.PluginManagerAware,LinkGenerator,groovy.lang.GroovyObject,org.springframework.beans.factory.Aware
public class CachingLinkGenerator extends org.grails.web.mapping.DefaultLinkGeneratorA link generator that uses a LRU cache to cache generated links.- Since:
- 2.0
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringEMPTY_MAP_STRINGstatic java.lang.StringLINK_PREFIXstatic java.lang.StringRESOURCE_PREFIXstatic java.lang.StringUSED_ATTRIBUTES_SUFFIX-
Fields inherited from interface grails.web.mapping.LinkGenerator
ATTRIBUTE_ABSOLUTE, ATTRIBUTE_ACTION, ATTRIBUTE_BASE, ATTRIBUTE_CONTEXT_PATH, ATTRIBUTE_CONTROLLER, ATTRIBUTE_ELEMENT_ID, ATTRIBUTE_EVENT, ATTRIBUTE_FRAGMENT, ATTRIBUTE_ID, ATTRIBUTE_INCLUDE_CONTEXT, ATTRIBUTE_MAPPING, ATTRIBUTE_METHOD, ATTRIBUTE_NAMESPACE, ATTRIBUTE_PARAMS, ATTRIBUTE_PLUGIN, ATTRIBUTE_RELATIVE_URI, ATTRIBUTE_RESOURCE, ATTRIBUTE_URI, ATTRIBUTE_URL, LINK_ATTRIBUTES, REST_RESOURCE_ACTION_TO_HTTP_METHOD_MAP, REST_RESOURCE_HTTP_METHOD_TO_ACTION_MAP
-
-
Constructor Summary
Constructors Constructor Description CachingLinkGenerator(java.lang.String serverBaseURL)CachingLinkGenerator(java.lang.String serverBaseURL, java.lang.String contextPath)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidappendKeyValue(java.lang.StringBuilder buffer, java.util.Map map, java.lang.Object key, java.lang.Object value)protected voidappendMapKey(java.lang.StringBuilder buffer, java.util.Map<java.lang.String,java.lang.Object> params)voidclearCache()protected java.lang.StringgetCacheKeyValueForResource(java.lang.Object o)protected booleanisCacheable(java.util.Map attrs)java.lang.Stringlink(java.util.Map attrs, java.lang.String encoding)Generates a link to a controller, action or URI for the given named parameters.protected java.lang.StringmakeKey(java.lang.String prefix, java.util.Map attrs)java.lang.Stringresource(java.util.Map attrs)Generates a link to a static resource for the given named parameters.-
Methods inherited from class org.grails.web.mapping.DefaultLinkGenerator
getConfiguredServerBaseURL, getContextPath, getGrailsUrlConverter, getMappingContext, getMetaClass, getPluginManager, getRequestStateLookupStrategy, getResourceId, getResourcePath, getResourcePattern, getServerBaseURL, getUrlMappingsHolder, initializeResourcePath, isAbsolute, link, makeServerURL, setConfiguredServerBaseURL, setContextPath, setGrailsUrlConverter, setMappingContext, setMetaClass, setPluginManager, setRequestStateLookupStrategy, setResourcePath, setResourcePattern, setUrlMappingsHolder
-
-
-
-
Field Detail
-
LINK_PREFIX
public static final java.lang.String LINK_PREFIX
- See Also:
- Constant Field Values
-
RESOURCE_PREFIX
public static final java.lang.String RESOURCE_PREFIX
- See Also:
- Constant Field Values
-
USED_ATTRIBUTES_SUFFIX
public static final java.lang.String USED_ATTRIBUTES_SUFFIX
- See Also:
- Constant Field Values
-
EMPTY_MAP_STRING
public static final java.lang.String EMPTY_MAP_STRING
- See Also:
- Constant Field Values
-
-
Method Detail
-
link
public java.lang.String link(java.util.Map attrs, java.lang.String encoding)Description copied from interface:LinkGeneratorGenerates a link to a controller, action or URI for the given named parameters. Possible named parameters include:- resource - If linking to a REST resource, the name of the resource or resource path to link to. Either 'resource' or 'controller' should be specified, but not both
- controller - The name of the controller to use in the link, if not specified the current controller will be linked
- action - The name of the action to use in the link, if not specified the default action will be linked
- uri - relative URI
- url - A map containing the action,controller,id etc.
- base - Sets the prefix to be added to the link target address, typically an absolute server URL. This overrides the behaviour of the absolute property, if both are specified.
- absolute - If set to "true" will prefix the link target address with the value of the grails.serverURL property from Config, or http://localhost:<port> if no value in Config and not running in production.
- id - The id to use in the link
- fragment - The link fragment (often called anchor tag) to use
- params - A map containing URL query parameters
- mapping - The named URL mapping to use to rewrite the link
- event - Webflow _eventId parameter
- Specified by:
linkin interfaceLinkGenerator- Overrides:
linkin classorg.grails.web.mapping.DefaultLinkGenerator- Parameters:
attrs- The named parametersencoding- The character encoding to use- Returns:
- The generator link
-
isCacheable
protected boolean isCacheable(java.util.Map attrs)
-
appendMapKey
protected void appendMapKey(java.lang.StringBuilder buffer, java.util.Map<java.lang.String,java.lang.Object> params)
-
getCacheKeyValueForResource
protected java.lang.String getCacheKeyValueForResource(java.lang.Object o)
-
appendKeyValue
protected void appendKeyValue(java.lang.StringBuilder buffer, java.util.Map map, java.lang.Object key, java.lang.Object value)
-
resource
public java.lang.String resource(java.util.Map attrs)
Description copied from interface:LinkGeneratorGenerates a link to a static resource for the given named parameters. Possible named parameters include:- base - The base path of the URL, typically an absolute server path
- contextPath - The context path to link to, defaults to the servlet context path
- dir - The directory to link to
- file - The file to link to (relative to the directory if specified)
- plugin - The plugin that provides the resource
- absolute - Whether the link should be absolute or not
- Specified by:
resourcein interfaceLinkGenerator- Overrides:
resourcein classorg.grails.web.mapping.DefaultLinkGenerator- Parameters:
attrs- The named parameters- Returns:
- The link to the static resource
-
makeKey
protected java.lang.String makeKey(java.lang.String prefix, java.util.Map attrs)
-
clearCache
public void clearCache()
-
-