Class InternalCrossContextLinkType


  • @Model(adaptables={org.apache.sling.api.SlingHttpServletRequest.class,org.apache.sling.api.resource.Resource.class})
    @ProviderType
    public final class InternalCrossContextLinkType
    extends LinkType
    Implementation of LinkType for internal links with supports links between different sites or configuration context paths. Internal links are links to content pages inside the CMS.

    This link type ensures that links that are referenced from other sites/configuration contexts are resolved using the URL handler configuration of the target context, e.g. with the Site URL from the other site.

    • Constructor Detail

      • InternalCrossContextLinkType

        public InternalCrossContextLinkType()
    • 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