Class InternalCrossContextLinkType

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

  • Field Details

  • Constructor Details

    • InternalCrossContextLinkType

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