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.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static @NotNull java.lang.String ID
      Link type ID
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean accepts​(@NotNull LinkRequest linkRequest)
      Checks whether a link reference can be handled by this link type
      boolean accepts​(@NotNull java.lang.String linkRef)
      Checks whether a link reference string can be handled by this link type
      @Nullable java.lang.String getEditComponentResourceType()
      Granite UI component resource type to be used for editing this link type's properties in edit dialog.
      @NotNull java.lang.String getId()  
      @NotNull java.lang.String getLabel()  
      java.lang.String getPrimaryLinkRefProperty()  
      static @NotNull org.apache.sling.api.resource.Resource getSyntheticLinkResource​(@NotNull org.apache.sling.api.resource.ResourceResolver resourceResolver, @NotNull java.lang.String path, @NotNull java.lang.String pageRef)
      Get synthetic link resource for this link type.
      boolean hasRichTextPlugin()
      Returns true if a RTE plugin is available for this link type.
      @NotNull Link resolveLink​(@NotNull Link link)
      Resolves a link
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • ID

        @NotNull
        public static final @NotNull java.lang.String ID
        Link type ID
        See Also:
        Constant Field Values
    • Constructor Detail

      • InternalLinkType

        public InternalLinkType()
    • Method Detail

      • getId

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

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

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

        @Nullable
        public @Nullable java.lang.String getEditComponentResourceType()
        Description copied from class: LinkType
        Granite UI component resource type to be used for editing this link type's properties in edit dialog.
        Overrides:
        getEditComponentResourceType in class LinkType
        Returns:
        Granite UI component resource type or null, if none is available
      • hasRichTextPlugin

        public boolean hasRichTextPlugin()
        Description copied from class: LinkType
        Returns true if a RTE plugin is available for this link type. If not, it is not possible to select this link type in the rich text editor.
        Overrides:
        hasRichTextPlugin in class LinkType
        Returns:
        true if a RTE plugin is available.
      • accepts

        public boolean accepts​(@NotNull
                               @NotNull java.lang.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 java.lang.String path,
                                                                                               @NotNull
                                                                                               @NotNull java.lang.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
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object