Class AutoLinkResolver
java.lang.Object
org.apache.wicket.markup.resolver.AutoLinkResolver
- All Implemented Interfaces:
Serializable
,IComponentResolver
,IClusterable
The AutoLinkResolver is responsible to handle automatic link resolution. Tags are marked
"autolink" by the MarkupParser for all tags with href attribute, such as anchor and link tags
with no explicit wicket id. E.g. <a href="Home.html">
If href points to a *.html file, a BookmarkablePageLink will automatically be created, except for absolute paths, where an ExternalLink is created.
If href points to a *.html file, it resolves the given URL by searching for a page class, either relative or absolute, specified by the href attribute of the tag. If relative the href URL must be relative to the package containing the associated page. An exception is thrown if no Page class was found.
If href is no *.html file a static reference to the resource is created.
- Author:
- Juergen Donnerstag, Eelco Hillenius
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Abstract implementation that has a helper method for creating a resource reference.static final class
Autolink components delegate component resolution to their parent components.static interface
Interface to delegate the actual resolving of auto components to.static final class
Encapsulates different aspects of a path. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal void
addTagReferenceResolver
(String tagName, String attributeName, AutoLinkResolver.IAutolinkResolverDelegate resolver) Register (add or replace) a new resolver with the tagName and attributeName.getAutolinkResolverDelegate
(String tagName) Get the resolver registered for 'tagName'final Component
resolve
(MarkupContainer container, MarkupStream markupStream, ComponentTag tag) Try to resolve a component.
-
Constructor Details
-
AutoLinkResolver
public AutoLinkResolver()Construct.
-
-
Method Details
-
addTagReferenceResolver
public final void addTagReferenceResolver(String tagName, String attributeName, AutoLinkResolver.IAutolinkResolverDelegate resolver) Register (add or replace) a new resolver with the tagName and attributeName. The resolver will be invoked each time an appropriate tag and attribute is found.- Parameters:
tagName
- The tag nameattributeName
- The attribute nameresolver
- Implements what to do based on the tag and the attribute
-
getAutolinkResolverDelegate
Get the resolver registered for 'tagName'- Parameters:
tagName
- The tag's name- Returns:
- The resolver found. Null, if none registered
-
resolve
public final Component resolve(MarkupContainer container, MarkupStream markupStream, ComponentTag tag) Description copied from interface:IComponentResolver
Try to resolve a component.- Specified by:
resolve
in interfaceIComponentResolver
- Parameters:
container
- The container parsing its markupmarkupStream
- The current markupStreamtag
- The current component tag while parsing the markup- Returns:
- component or
null
if not found - See Also:
-