Class InternalLinkType

java.lang.Object
io.wcm.handler.link.spi.LinkType
io.wcm.handler.link.type.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 Details

  • Constructor Details

    • InternalLinkType

      public InternalLinkType()
  • Method Details

    • getId

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

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

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

      @Nullable public @Nullable 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 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
    • toString

      public String toString()
      Overrides:
      toString in class Object