Package com.xpn.xwiki.plugin.skinx
Class LinkExtensionPlugin
- java.lang.Object
-
- com.xpn.xwiki.plugin.XWikiDefaultPlugin
-
- com.xpn.xwiki.plugin.skinx.AbstractSkinExtensionPlugin
-
- com.xpn.xwiki.plugin.skinx.LinkExtensionPlugin
-
- All Implemented Interfaces:
com.xpn.xwiki.internal.cache.rendering.RenderingCacheAware
,XWikiPluginInterface
public class LinkExtensionPlugin extends AbstractSkinExtensionPlugin
Skin eXtension that allows inserting generic links in the<head>
section of the resulting XHTML. Unlike JavaScript or StyleSheet extensions, Link extensions don't pull XDocuments as scripting or styling resources for the current document, but register additional related resources. Examples include:- RSS/Atom feeds
- navigation links in a paged collection of pages (prev, next, index, glossary...)
- semantic/metadata links (DCMI, DOAP, FOAF, RDF, OWL...)
- generic links to other related resources or alternate views for the current document
- Since:
- 1.5
- Version:
- $Id: 99447a0a3e0722139f3ab168b4db7c49105562be $
-
-
Field Summary
-
Fields inherited from class com.xpn.xwiki.plugin.skinx.AbstractSkinExtensionPlugin
contextKey, DEFER_DEFAULT_PARAM, parametersContextKey, QUERY_PARAMETER_DELIMITER
-
-
Constructor Summary
Constructors Constructor Description LinkExtensionPlugin(String name, String className, XWikiContext context)
XWiki plugin constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
endParsing(String content, XWikiContext context)
Set<String>
getAlwaysUsedExtensions(XWikiContext context)
Returns the list of always used extensions of this type.String
getLink(String link, XWikiContext context)
Abstract method for obtaining a link that points to the actual pulled resource.boolean
hasPageExtensions(XWikiContext context)
Determines if the requested document contains on page skin extension objects of this type.-
Methods inherited from class com.xpn.xwiki.plugin.skinx.AbstractSkinExtensionPlugin
getCacheResources, getCurrentDocumentReferenceResolver, getDefaultEntityReferenceSerializer, getImportString, getLink, getParameter, getParametersForResource, getParametersMap, getPluginApi, getPulledResources, getSkinExtensionAsync, initializeRequestListIfNeeded, parametersAsQueryString, restoreCacheResources, sanitize, use, use
-
Methods inherited from class com.xpn.xwiki.plugin.XWikiDefaultPlugin
beginParsing, beginRendering, commonTagsHandler, downloadAttachment, endRendering, endRenderingHandler, flushCache, flushCache, getClassName, getLocalization, getName, init, insidePREHandler, localizePlainOrKey, outsidePREHandler, setClassName, setName, startRenderingHandler, virtualInit
-
-
-
-
Constructor Detail
-
LinkExtensionPlugin
public LinkExtensionPlugin(String name, String className, XWikiContext context)
XWiki plugin constructor.- Parameters:
name
- The name of the plugin, which can be used for retrieving the plugin API from velocity. Unused.className
- The canonical classname of the plugin. Unused.context
- The current request context.- See Also:
XWikiDefaultPlugin(String,String,com.xpn.xwiki.XWikiContext)
-
-
Method Detail
-
getLink
public String getLink(String link, XWikiContext context)
Description copied from class:AbstractSkinExtensionPlugin
Abstract method for obtaining a link that points to the actual pulled resource. Each type of resource has its own format for the link, for example Javascript uses<script src="/path/to/Document">
, while CSS uses<link rel="stylesheet" href="/path/to/Document">
(the actual syntax is longer, this is just a simplified example).- Specified by:
getLink
in classAbstractSkinExtensionPlugin
- Parameters:
link
- the name of the wiki document holding the resource.context
- the current request context, needed to access the URLFactory.- Returns:
- A
String
representation of the linking element that should be printed in the generated HTML.
-
getAlwaysUsedExtensions
public Set<String> getAlwaysUsedExtensions(XWikiContext context)
Returns the list of always used extensions of this type. Which resources are always used depends on the type of resource, for example document based StyleSheet extensions have a property in the object,use
, which can have the valuealways
to declare that an extension should always be used.There is no support for always used link extensions yet.
- Specified by:
getAlwaysUsedExtensions
in classAbstractSkinExtensionPlugin
- Parameters:
context
- The current request context.- Returns:
- A set of resource names that should be pulled in the current response. Note that this method is called for each request, as the list might change in time, and it can be different for each wiki in a farm.
- See Also:
AbstractSkinExtensionPlugin.getAlwaysUsedExtensions(XWikiContext)
-
hasPageExtensions
public boolean hasPageExtensions(XWikiContext context)
Determines if the requested document contains on page skin extension objects of this type. True if at least one of the extension objects has thecurrentPage
value for theuse
property.Not supported for link extensions.
- Specified by:
hasPageExtensions
in classAbstractSkinExtensionPlugin
- Parameters:
context
- the current request context- Returns:
- a boolean specifying if the current document contains on page skin extensions
- See Also:
AbstractSkinExtensionPlugin.hasPageExtensions(com.xpn.xwiki.XWikiContext)
-
endParsing
public String endParsing(String content, XWikiContext context)
At the end of the request, insert the links to the pulled resources in the response, in the place marked by an XML comment of the format
<!-- canonical.plugin.classname -->
.We must override this method since the plugin manager only calls it for classes that provide their own implementation, and not an inherited one.
- Specified by:
endParsing
in interfaceXWikiPluginInterface
- Overrides:
endParsing
in classAbstractSkinExtensionPlugin
- See Also:
AbstractSkinExtensionPlugin.endParsing(String, XWikiContext)
-
-