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 Detail

      • 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:
        isContainerResource()
      • 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
      • 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