Interface HstLink


public interface HstLink

HstLink is the object representing a link. The getPath() return you the value of the link, and getPathElements() returns you the path splitted on "/"'s. The String[] version is more practical because the HttpServletResponse.encodeURL(String) also encodes slashes.

Furthermore, the HstSite that the link is meant for is accessible through this HstLink, because it is needed if the link is out of the scope of the current HstSite. The HstSite can access the VirtualHost through which in turn even links to different hosts can be created.

Note do *not* use HstLink objects in caches and do *not* store them on http sessions (for example last visited URLs). HstLink objects hold references to the backing hst model, which should be by accident held from garbage collection due to objects retaining it (by accident)

  • Method Details

    • getPath

      String getPath()
      Note: This is *not* a url!
      Returns:
      the path of this HstLink. Note: This is *not* a url! The value never starts or ends with a slash /
    • setPath

      void setPath(String path)
      (re)-sets the path of the HstLink
      Parameters:
      path -
    • getSubPath

      String getSubPath()
      Returns the subPath of this HstLink object. This part will be appended to the getPath() and delimited by ./. It will be before the queryString. Note that an empty String subPath will result in a URL having a ./ appended: An empty subPath is thus something different then a null subPath.
      Returns:
      the subPath of this HstLink object.
    • setSubPath

      void setSubPath(String subPath)
      sets the subPath of this HstLink. Note that setting the subPath to an empty String will result in a URL having a ./ appended: An empty subPath is thus something different then a null subPath.
      Parameters:
      subPath -
    • isContainerResource

      boolean isContainerResource()

      When isContainerResource() returns true, the resulting URL will be webapp relative and not relative to Mount.getMountPath()

      When isContainerResource() returns false, the resulting URL WILL include the Mount.getMountPath() after the webapp relative part (context path).

      Returns:
      true when the HstLink represents a container resource, like a repository binary, a web file or a static css file served by the container.
    • setContainerResource

      void setContainerResource(boolean containerResource)
      Parameters:
      containerResource - sets whether this HstLink is a containerResource or not.
      See Also:
    • toUrlForm

      String toUrlForm(HstRequestContext requestContext, boolean fullyQualified)
      Parameters:
      requestContext -
      fullyQualified - if true, the returned link is a fully qualified URL, in other words including http/https etc
      Returns:
      the url form of this HstLink, which is a url
    • getPathElements

      String[] getPathElements()
      Returns:
      the path elements of this HstLink, which is the getPath() splitted on slashes
    • getMount

      Mount getMount()
      Returns:
      the Mount that can represent this link. This might be an Mount which is a different one then the Mount the link was created in. This could result in a cross-domain (different hostname) link being created, depending on the backing Mount.getVirtualHost(). If no Mount is set, null can be returned
    • getHstSiteMapItem

      HstSiteMapItem getHstSiteMapItem()
      Returns:
      the HstSiteMapItem that matches this HstLink or null if this HstLink cannot be matched to any HstSiteMapItem
    • isNotFound

      boolean isNotFound()
      When for example for some bean the (real) link cannot be created through the HstLinkCreator, a HstLink can be returned with a path that is for example from some configured property like '/pagenotfound'. If this method returns true it indicates that the link is some hardcoded path for beans that cannot be linked to
      Returns:
      true when this HstLink indicates to be a link that is actually a notFound link
    • setNotFound

      void setNotFound(boolean notFound)
      Parameters:
      notFound - true whether this HstLink is actually a notFound link
    • representsIndex

      boolean representsIndex()
      Returns:
      true if this HstLink was the result of a document/folder being matched to an HstNodeTypes.INDEX sitemap item