Interface SlingUri

  • All Superinterfaces:
    RequestPathInfo

    @ProviderType
    public interface SlingUri
    extends RequestPathInfo
    Represents an immutable URI in the same way as java.net.URI but is extended with Sling-specific URI parts (e.g. selectors). A SlingUri usually points to a resource but alternatively, can also contain an opaque URI like mailto: or javascript:. Use adjust(Consumer) or SlingUriBuilder to create new or modified Sling URIs.
    Since:
    1.0.0 (Sling API Bundle 2.23.0)
    • Method Detail

      • toUri

        @NotNull
        @NotNull URI toUri()
        Returns the URI.
        Returns:
        the URI
      • toString

        @NotNull
        @NotNull String toString()
        Returns the URI as String.
        Overrides:
        toString in class Object
        Returns:
        the URI string
      • getScheme

        @Nullable
        @Nullable String getScheme()
        Returns the scheme.
        Returns:
        the scheme or null if not set
      • getUserInfo

        @Nullable
        @Nullable String getUserInfo()
        Returns the user info.
        Returns:
        the user info of the SlingUri or null if not set
      • getHost

        @Nullable
        @Nullable String getHost()
        Returns the host.
        Returns:
        returns the host of the SlingUri or null if not set
      • getPort

        int getPort()
        Returns the port.
        Returns:
        returns the port of the SlingUri or -1 if not set
      • getResourcePath

        @Nullable
        @Nullable String getResourcePath()
        Returns the resource path.
        Specified by:
        getResourcePath in interface RequestPathInfo
        Returns:
        returns the resource path or null if the URI does not contain a path.
      • getExtension

        @Nullable
        @Nullable String getExtension()
        Returns the extension.
        Specified by:
        getExtension in interface RequestPathInfo
        Returns:
        the extension or null if the URI does not contain an extension
      • getPathParameters

        @NotNull
        @NotNull Map<String,​String> getPathParameters()
        Returns the path parameters.
        Returns:
        the path parameters or an empty Map if the URI does not contain any
      • getSuffix

        @Nullable
        @Nullable String getSuffix()
        Returns the suffix part of the URI
        Specified by:
        getSuffix in interface RequestPathInfo
        Returns:
        the suffix string or null if the URI does not contain a suffix
      • getPath

        @Nullable
        @Nullable String getPath()
        Returns the joint path of resource path, selectors, extension and suffix.
        Returns:
        the path or null if no path is set
      • getQuery

        @Nullable
        @Nullable String getQuery()
        Returns the query.
        Returns:
        the query part of the URI or null if the URI does not contain a query
      • getFragment

        @Nullable
        @Nullable String getFragment()
        Returns the fragment.
        Returns:
        the fragment or null if the URI does not contain a fragment
      • getSchemeSpecificPart

        @Nullable
        @Nullable String getSchemeSpecificPart()
        Returns the scheme-specific part of the URI, compare with Javadoc of URI.
        Returns:
        scheme specific part of the URI
      • getSuffixResource

        @Nullable
        @Nullable Resource getSuffixResource()
        Returns the corresponding suffix resource or null if
        • no resource resolver is available (depends on the create method used in SlingUriBuilder)
        • the URI does not contain a suffix
        • if the suffix resource could not be found
        Specified by:
        getSuffixResource in interface RequestPathInfo
        Returns:
        the suffix resource if available or null
      • isPath

        boolean isPath()
        Returns true the URI is either a relative or absolute path (this is the case if scheme and host is empty and the URI path is set)
        Returns:
        returns true for path URIs
      • isAbsolutePath

        boolean isAbsolutePath()
        Returns true if the URI has an absolute path starting with a slash ('/').
        Returns:
        true if the URI is an absolute path
      • isRelativePath

        boolean isRelativePath()
        Returns true if the URI is a relative path (no scheme and path does not start with '/').
        Returns:
        true if URI is a relative path
      • isAbsolute

        boolean isAbsolute()
        Returns true the URI is an absolute URI.
        Returns:
        true if the URI is an absolute URI containing a scheme.
      • isOpaque

        boolean isOpaque()
        Returns true for opaque URIs like e.g. mailto:[email protected].
        Returns:
        true if the URI is an opaque URI
      • adjust

        @NotNull
        default @NotNull SlingUri adjust​(@NotNull
                                         @NotNull Consumer<SlingUriBuilder> builderConsumer)
        Shortcut to adjust Sling URIs, e.g. slingUri = slingUri.adjust(b -> b.setExtension("html")); .
        Parameters:
        builderConsumer - the consumer (e.g. b -> b.setExtension("html"))
        Returns:
        the adjusted SlingUri (new instance)