Package org.apache.sling.api.uri
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:
orjavascript:
. Useadjust(Consumer)
orSlingUriBuilder
to create new or modified Sling URIs.Opposed to
URI
, the regular getters ofSlingUri
will not return decoded values, rather the values for user info, path, query and fragment are returned exactly as set before.- Since:
- 1.0.0 (Sling API Bundle 2.23.0)
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default @NotNull SlingUri
adjust(@NotNull java.util.function.Consumer<SlingUriBuilder> builderConsumer)
Shortcut to adjust Sling URIs, e.g.@Nullable java.lang.String
getExtension()
Returns the extension.@Nullable java.lang.String
getFragment()
Returns the fragment.@Nullable java.lang.String
getHost()
Returns the host.@Nullable java.lang.String
getPath()
Returns the joint path of resource path, selectors, extension and suffix.@NotNull java.util.Map<java.lang.String,java.lang.String>
getPathParameters()
Returns the path parameters.int
getPort()
Returns the port.@Nullable java.lang.String
getQuery()
Returns the query.@Nullable java.lang.String
getResourcePath()
Returns the resource path.@Nullable java.lang.String
getScheme()
Returns the scheme.@Nullable java.lang.String
getSchemeSpecificPart()
Returns the scheme-specific part of the URI, compare with Javadoc ofURI
.@NotNull java.lang.String[]
getSelectors()
Returns the selectors array.@Nullable java.lang.String
getSelectorString()
Returns the selector string.@Nullable java.lang.String
getSuffix()
Returns the suffix part of the URI@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@Nullable java.lang.String
getUserInfo()
Returns the user info.boolean
isAbsolute()
Returns true the URI is an absolute URI.boolean
isAbsolutePath()
Returns true if the URI has an absolute path starting with a slash ('/').boolean
isOpaque()
Returns true for opaque URIs like e.g.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)boolean
isRelativePath()
Returns true if the URI is a relative path (no scheme and path does not start with '/').@NotNull java.lang.String
toString()
Returns the URI as String.@NotNull java.net.URI
toUri()
Returns theURI
.
-
-
-
Method Detail
-
toUri
@NotNull @NotNull java.net.URI toUri()
Returns theURI
.- Returns:
- the URI
-
toString
@NotNull @NotNull java.lang.String toString()
Returns the URI as String.- Overrides:
toString
in classjava.lang.Object
- Returns:
- the URI string
-
getScheme
@Nullable @Nullable java.lang.String getScheme()
Returns the scheme.- Returns:
- the scheme or null if not set
-
getUserInfo
@Nullable @Nullable java.lang.String getUserInfo()
Returns the user info.- Returns:
- the user info of the SlingUri or null if not set
-
getHost
@Nullable @Nullable java.lang.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 java.lang.String getResourcePath()
Returns the resource path.- Specified by:
getResourcePath
in interfaceRequestPathInfo
- Returns:
- returns the resource path or null if the URI does not contain a path.
-
getSelectorString
@Nullable @Nullable java.lang.String getSelectorString()
Returns the selector string.- Specified by:
getSelectorString
in interfaceRequestPathInfo
- Returns:
- returns the selector string or null if the URI does not contain selector(s) (in line with
RequestPathInfo
) - See Also:
RequestPathInfo.getSelectors()
-
getSelectors
@NotNull @NotNull java.lang.String[] getSelectors()
Returns the selectors array.- Specified by:
getSelectors
in interfaceRequestPathInfo
- Returns:
- the selectors array (empty if the URI does not contain selector(s), never null)
- See Also:
RequestPathInfo.getSelectorString()
-
getExtension
@Nullable @Nullable java.lang.String getExtension()
Returns the extension.- Specified by:
getExtension
in interfaceRequestPathInfo
- Returns:
- the extension or null if the URI does not contain an extension
-
getPathParameters
@NotNull @NotNull java.util.Map<java.lang.String,java.lang.String> getPathParameters()
Returns the path parameters.- Returns:
- the path parameters or an empty Map if the URI does not contain any
-
getSuffix
@Nullable @Nullable java.lang.String getSuffix()
Returns the suffix part of the URI- Specified by:
getSuffix
in interfaceRequestPathInfo
- Returns:
- the suffix string or null if the URI does not contain a suffix
-
getPath
@Nullable @Nullable java.lang.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 java.lang.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 java.lang.String getFragment()
Returns the fragment.- Returns:
- the fragment or null if the URI does not contain a fragment
-
getSchemeSpecificPart
@Nullable @Nullable java.lang.String getSchemeSpecificPart()
Returns the scheme-specific part of the URI, compare with Javadoc ofURI
.- 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 interfaceRequestPathInfo
- 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:jon@example.com.- Returns:
- true if the URI is an opaque URI
-
adjust
@NotNull default @NotNull SlingUri adjust(@NotNull @NotNull java.util.function.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)
-
-