public interface HstLinkCreator
HstLink
'sModifier and Type | Method and Description |
---|---|
void |
clear()
Clears possibly available caches
|
HstLink |
create(HippoBean bean,
HstRequestContext requestContext) |
HstLink |
create(HstSiteMapItem toHstSiteMapItem,
Mount mount)
Regardless the current context, create a HstLink to the HstSiteMapItem that you use as argument.
|
HstLink |
create(javax.jcr.Node node,
HstRequestContext requestContext)
Rewrite a jcr Node to a HstLink wrt its current ResolvedSiteMapItem
|
HstLink |
create(javax.jcr.Node node,
HstRequestContext requestContext,
HstSiteMapItem preferredItem,
boolean fallback)
Rewrite a jcr Node to a HstLink wrt its current HstRequestContext and preferredItem.
|
HstLink |
create(javax.jcr.Node node,
HstRequestContext requestContext,
HstSiteMapItem preferredItem,
boolean fallback,
boolean navigationStateful)
This method creates the same
HstLink as create(Node, HstRequestContext, HstSiteMapItem, boolean) when navigationStateful = false . |
HstLink |
create(javax.jcr.Node node,
HstRequestContext requestContext,
String mountAlias)
|
HstLink |
create(javax.jcr.Node node,
HstRequestContext requestContext,
String mountAlias,
String type)
|
HstLink |
create(javax.jcr.Node node,
Mount mount)
|
HstLink |
create(String path,
Mount mount)
Regardless the current context, create a HstLink for the
path and mount |
HstLink |
create(String path,
Mount mount,
boolean containerResource)
Regardless the current context, create a HstLink to the path that you use as argument.
|
HstLink |
create(String uuid,
javax.jcr.Session session,
HstRequestContext requestContext)
Rewrite a jcr uuid to a HstLink wrt its current ResolvedSiteMapItem.
|
List<HstLink> |
createAllAvailableCanonicals(javax.jcr.Node node,
HstRequestContext requestContext)
Expert: Creates a
List of all available canonical links for node within the hostgroup ( VirtualHost.getHostGroupName() ) of the Mount for
the HstRequestContext . |
List<HstLink> |
createAllAvailableCanonicals(javax.jcr.Node node,
HstRequestContext requestContext,
String type)
Expert: Creates a
List of all available canonical links for node , within the hostgroup ( VirtualHost.getHostGroupName() ) of the Mount for
the HstRequestContext and where where the backing Mount of the HstLink has at least one Mount.getTypes() equal to type |
List<HstLink> |
createAllAvailableCanonicals(javax.jcr.Node node,
HstRequestContext requestContext,
String type,
String hostGroupName)
Expert: Creates a
List of all available canonical links for node , within the hostgroup hostGroupName and where where the backing Mount of the HstLink has at least one Mount.getTypes() equal to type |
HstLink |
createByRefId(String siteMapItemRefId,
Mount mount)
Regardless the current context, create a HstLink to the
HstSiteMapItem for Mount mount that has HstSiteMapItem.getRefId() equal to siteMapItemRefId . |
HstLink |
createCanonical(javax.jcr.Node node,
HstRequestContext requestContext)
This creates a canonical HstLink: regardless the current requestContext, one and the same jcr Node is garantueed to return the same HstLink.
|
HstLink |
createCanonical(javax.jcr.Node node,
HstRequestContext requestContext,
HstSiteMapItem preferredItem) |
String |
getBinariesPrefix() |
List<LocationResolver> |
getLocationResolvers() |
boolean |
isBinaryLocation(String path)
Binaries frequently have a different linkrewriting mechanism.
|
HstLink create(String uuid, javax.jcr.Session session, HstRequestContext requestContext)
uuid
- the uuid of the node that must be used to link tosession
- jcr sessionrequestContext
- the HstRequestContextHstLink
instance or null
HstLink create(javax.jcr.Node node, HstRequestContext requestContext)
node
- requestContext
- the HstRequestContextnull
HstLink create(javax.jcr.Node node, HstRequestContext requestContext, HstSiteMapItem preferredItem, boolean fallback)
preferredItem
is not null
, the link is tried to be rewritten to
one of the descendants (including itself) of the preferred HstSiteMapItem
. When preferredItem
is null
, a link is created against the entire sitemap item tree. When there cannot be created an HstLink to a descendant HstSiteMapItem
or self, then:
fallback = true
, a fallback to create(Node, HstRequestContext)
is donefallback = false
, dependent on the implementation some error HstLink or null
can be returned
This method returns an HstLink
that takes the current URL into account, but does compute the link with respect to the physical (canonical) location
of the jcr Node. If you need a HstLink
within the context of the possible virtual jcr Node (for example in case of in context showing documents in faceted navigation), use
create(Node, HstRequestContext, HstSiteMapItem, boolean, boolean)
with navigationStateful = true
node
- the jcr noderequestContext
- the HstRequestContextpreferredItem
- if not null (null means no preferred sitemap item), first a link is trying to be created for this itemfallback
- value true or falsenull
create(Node, HstRequestContext, HstSiteMapItem, boolean, boolean)
HstLink create(javax.jcr.Node node, HstRequestContext requestContext, HstSiteMapItem preferredItem, boolean fallback, boolean navigationStateful)
This method creates the same HstLink
as create(Node, HstRequestContext, HstSiteMapItem, boolean)
when navigationStateful = false
. When navigationStateful = true
,
the link that is created is with respect to the jcr Node node
, even if this node is a virtual location. This is different then create(Node, HstRequestContext, HstSiteMapItem, boolean)
: that
method always first tries to find the canonical location of the jcr Node before it is creating a link for the node.
Expert: Note there is a difference between context relative with respect to the current URL and with respect to the current jcr Node. Default, links in the HST are
created always taking into account the current URL (thus context aware linking) unless you call createCanonical(Node, HstRequestContext)
or createCanonical(Node, HstRequestContext, HstSiteMapItem)
. Also,
default, it always (unless there is no) takes the canonical location of the jcr Node. Thus, multiple virtual versions of the same physical Node, result in the same HstLink. Only when having navigationStateful = true
,
also the jcr Node is context relative, and thus multiple virtual versions of the same jcr Node can result in multiple links. This is interesting for example in
faceted navigation views, where you want 'in context' documents to be shown.
node
- the jcr noderequestContext
- the HstRequestContextpreferredItem
- if not null (null means no preferred sitemap item), first a link is trying to be created for this itemfallback
- value true or falsenavigationStateful
- value true or falsenull
create(Node, HstRequestContext, HstSiteMapItem, boolean)
HstLink createCanonical(javax.jcr.Node node, HstRequestContext requestContext)
node
- requestContext
- the HstRequestContextnull
HstLink createCanonical(javax.jcr.Node node, HstRequestContext requestContext, HstSiteMapItem preferredItem)
node
- requestContext
- the HstRequestContextpreferredItem
- if null
, a fallback to createCanonical(Node, HstRequestContext)
is donenull
#createCanonical(Node, HstRequestContext)}.
When specifying a preferredItem, we try to create a canonical link wrt this preferredItem. If the link cannot be created for this preferredItem,
a fallback to {@link #createCanonical(Node, HstRequestContext)} without preferredItem is done.
List<HstLink> createAllAvailableCanonicals(javax.jcr.Node node, HstRequestContext requestContext)
List
of all available canonical links for node
within the hostgroup ( VirtualHost.getHostGroupName()
) of the Mount
for
the HstRequestContext
. All available links have a Mount
that has at least one of its Mount.getTypes()
equal to the Mount.getTypes()
belonging to the Mount
of the
requestContext
. If the Mount
of the requestContext
has no type in common at all, for example because
it is Mount
from a REST mount used by the template composer, you can use createAllAvailableCanonicals(Node, HstRequestContext, String)
and specify
the type
the Mount
's for the available canonical links should be of.node
- requestContext
- the HstRequestContextList
of all available canonical links where at least one of the Mount.getTypes()
are equal to Mount.getTypes()
belonging to the Mount
of the requestContext
createCanonical(Node, HstRequestContext)
List<HstLink> createAllAvailableCanonicals(javax.jcr.Node node, HstRequestContext requestContext, String type)
List
of all available canonical links for node
, within the hostgroup ( VirtualHost.getHostGroupName()
) of the Mount
for
the HstRequestContext
and where where the backing Mount
of the HstLink
has at least one Mount.getTypes()
equal to type
node
- requestContext
- the HstRequestContexttype
- the type
that the Mount
's belonging to the available canonical links should be ofList
of all available canonical links where at least one of the Mount.getTypes()
are equal to type
createCanonical(Node, HstRequestContext)
List<HstLink> createAllAvailableCanonicals(javax.jcr.Node node, HstRequestContext requestContext, String type, String hostGroupName)
List
of all available canonical links for node
, within the hostgroup hostGroupName
and where where the backing Mount
of the HstLink
has at least one Mount.getTypes()
equal to type
node
- requestContext
- the HstRequestContexttype
- the type
that the Mount
's belonging to the available canonical links should be ofhostGroupName
- The hostGroupName that the HstLink
s their Mount
s should belong toList
of all available canonical links where at least one of the Mount.getTypes()
are equal to type
createCanonical(Node, HstRequestContext)
HstLink create(javax.jcr.Node node, Mount mount)
Expert: Rewrite a jcr node
to a HstLink
with respect to the mount
. Note that this HstLink creation does only take into account the
mount
and not the current context.
The mount
can be a different one then the one of the current request context.
If the mount
cannot be used to create a HstLink for the jcr node
, because the node
belongs
to a different (sub)site, a page not found link is returned.
note: if a link is returned, this is always the canonical link, also see createCanonical(Node, HstRequestContext)
node
- the jcr node for that should be translated into a HstLinkmount
- the (sub)site for which the hstLink should be created forHstLink
for the jcr node
and the mount
or null
when no link for the node can be made in the mount
HstLink create(javax.jcr.Node node, HstRequestContext requestContext, String mountAlias)
Expert: Rewrite a jcr node
to a HstLink
for the mountAlias
. First, the Mount
belonging to the
mountAlias
is searched for. When the Mount
belonging to the alias cannot rewrite the node
,
there is no fallback to whether other Mount
's can rewrite the node
to a HstLink
.
Note that the found Mount
must
Mount.getAlias()
equal to mountAlias
Mount.getTypes()
the same as the Mount
belonging to the current requestContext
.
VirtualHost.getHostGroupName()
as the Mount
belonging to the current requestContext
.
Mount
complying to the above rules, null
is returned. If a Mount
does comply, we return create(Node, Mount)
HstLink create(javax.jcr.Node node, HstRequestContext requestContext, String mountAlias, String type)
Expert: Rewrite a jcr node
to a HstLink
for the mountAlias
and for type
. When the Mount
belonging to the alias cannot rewrite the node
, there is no fallback to whether other Mount
's can rewrite the node
to a HstLink
Note that the found Mount
must
Mount.getAlias()
equal to mountAlias
type
in its Mount.getTypes()
VirtualHost.getHostGroupName()
as the Mount
belonging to the current requestContext
.
Mount
complying to the above rules, null
is returned. If a Mount
does comply, we return create(Node, Mount)
.
The difference with #create(Node, HstRequestContext, String))
is that this method does not look for a Mount
with a common type
as for the Mount
from the current request. It does
look for a Mount
which at least has type
as its Mount.getTypes()
node
- the jcr noderequestContext
- the current request contextmountAlias
- the alias of the Mount
for which the link should be created fortype
- the type tha should be contained in the Mount.getTypes()
where the Mount
is the mount belonging to the returned HstLink
HstLink
for the jcr node
and the mountAlias
or null
when no link for the node can be made in the Mount
belonging to the alias or when there belongs no Mount
to the alias#create(Node, Mount)}
HstLink create(HippoBean bean, HstRequestContext requestContext)
bean
- requestContext
- the HstRequestContextbean
and the hstRequestContext
or null
when no link for the node can be madeHstLink create(HstSiteMapItem toHstSiteMapItem, Mount mount)
null
, though this is up to the implementationtoHstSiteMapItem
- the HstSiteMapItem
to link toHstLink
instance or null
HstLink createByRefId(String siteMapItemRefId, Mount mount)
HstSiteMapItem
for Mount
mount
that has HstSiteMapItem.getRefId()
equal to siteMapItemRefId
.
If there cannot be found a HstSiteMapItem
for siteMapItemRefId
in the Mount
mount
, then null
is returned.
If the HstSiteMapItem
is found for siteMapItemRefId
, then it can be only used when it does not
contain any ancestor including itself with a wildcard, because the link is ambiguous in that case.
If a wildcard is encountered, this method can return null
, though this is up to the implementationsiteMapItemRefId
- the HstSiteMapItem.getRefId()
of the HstSiteMapItem
to link tomount
- the Mount
the siteMapItemRefId
should be inHstLink
instance or null
HstLink create(String path, Mount mount)
path
and mount
path
- the path to the sitemap itemmount
- the Mount
the path should be inHstLink
instance or null
HstLink create(String path, Mount mount, boolean containerResource)
path
- the path to the sitemap itemmount
- the Mount
for which the link should be createdcontainerResource
- whether it is a static link, for example for css/jsHstLink
instance or null
boolean isBinaryLocation(String path)
true
the location is a
binary location.path
- true
when the path points to a binary locationString getBinariesPrefix()
/
and
does not include the /
itself. If no binaries prefix is configured, ""
will be returnedList<LocationResolver> getLocationResolvers()
void clear()
Copyright © 2008-2013 Hippo B.V. (http://www.onehippo.com). All Rights Reserved.