Class InternalLinkType


  • @Model(adaptables={org.apache.sling.api.SlingHttpServletRequest.class,org.apache.sling.api.resource.Resource.class})
    @ProviderType
    public final class InternalLinkType
    extends LinkType
    Default implementation of LinkType for internal links. Internal links are links to content pages inside the CMS.

    This link type ensures all links target only pages inside the same inner-most configuration scope, which is usually the same site/language. All link paths referencing pages outside this content subtree are rewritten via UrlHandler.rewritePathToContext(Resource) with the root path of the inner-most configuration scope/site and then resolved.

    • Constructor Detail

      • InternalLinkType

        public InternalLinkType()
    • Method Detail

      • getId

        @NotNull
        public @NotNull String getId()
        Specified by:
        getId in class LinkType
        Returns:
        Link type ID (is stored as identifier in repository)
      • getLabel

        @NotNull
        public @NotNull String getLabel()
        Overrides:
        getLabel in class LinkType
        Returns:
        Link type label (displayed in link dialogs)
      • getPrimaryLinkRefProperty

        public String getPrimaryLinkRefProperty()
        Specified by:
        getPrimaryLinkRefProperty in class LinkType
        Returns:
        Name of the property in which the primary link reference is stored
      • accepts

        public boolean accepts​(@NotNull
                               @NotNull String linkRef)
        Description copied from class: LinkType
        Checks whether a link reference string can be handled by this link type
        Specified by:
        accepts in class LinkType
        Parameters:
        linkRef - Link reference string
        Returns:
        true if this link type can handle the given link reference
      • accepts

        public boolean accepts​(@NotNull
                               @NotNull LinkRequest linkRequest)
        Description copied from class: LinkType
        Checks whether a link reference can be handled by this link type
        Overrides:
        accepts in class LinkType
        Parameters:
        linkRequest - Link reference
        Returns:
        true if this link type can handle the given link reference
      • resolveLink

        @NotNull
        public @NotNull Link resolveLink​(@NotNull
                                         @NotNull Link link)
        Description copied from class: LinkType
        Resolves a link
        Specified by:
        resolveLink in class LinkType
        Parameters:
        link - Link metadata
        Returns:
        Resolved link metadata. Never null.
      • getSyntheticLinkResource

        @NotNull
        public static @NotNull org.apache.sling.api.resource.Resource getSyntheticLinkResource​(@NotNull
                                                                                               @NotNull org.apache.sling.api.resource.ResourceResolver resourceResolver,
                                                                                               @NotNull
                                                                                               @NotNull String path,
                                                                                               @NotNull
                                                                                               @NotNull String pageRef)
        Get synthetic link resource for this link type.
        Parameters:
        resourceResolver - Resource resolver
        path - Resource path. Can be a non-existing path, but the path should be located somewhere within the applications content paths to make sure the handler configuration looked up via context-aware services is the expected one.
        pageRef - Path to target page
        Returns:
        Synthetic link resource
      • getSyntheticLinkResource

        @Deprecated
        @NotNull
        public static @NotNull org.apache.sling.api.resource.Resource getSyntheticLinkResource​(@NotNull
                                                                                               @NotNull org.apache.sling.api.resource.ResourceResolver resourceResolver,
                                                                                               @NotNull
                                                                                               @NotNull String pageRef)
        Get synthetic link resource for this link type.
        Parameters:
        resourceResolver - Resource resolver
        pageRef - Path to target page
        Returns:
        Synthetic link resource