Package org.apache.sling.api.uri
Interface SlingUri
- All Superinterfaces:
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.
Opposed to URI, the regular getters of SlingUri 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
Modifier and TypeMethodDescriptiondefault @NotNull SlingUriadjust(@NotNull Consumer<SlingUriBuilder> builderConsumer) Shortcut to adjust Sling URIs, e.g.@Nullable StringReturns the extension.@Nullable StringReturns the fragment.@Nullable StringgetHost()Returns the host.@Nullable StringgetPath()Returns the joint path of resource path, selectors, extension and suffix.Returns the path parameters.intgetPort()Returns the port.@Nullable StringgetQuery()Returns the query.@Nullable StringReturns the resource path.@Nullable StringReturns the scheme.@Nullable StringReturns the scheme-specific part of the URI, compare with Javadoc ofURI.@NotNull String[]Returns the selectors array.@Nullable StringReturns the selector string.@Nullable StringReturns the suffix part of the URI@Nullable ResourceReturns 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 StringReturns the user info.booleanReturns true the URI is an absolute URI.booleanReturns true if the URI has an absolute path starting with a slash ('/').booleanisOpaque()Returns true for opaque URIs like e.g. mailto:jon@example.com.booleanisPath()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)booleanReturns true if the URI is a relative path (no scheme and path does not start with '/').@NotNull StringtoString()Returns the URI as String.@NotNull URItoUri()Returns theURI.
-
Method Details
-
toUri
Returns theURI.- Returns:
- the URI
-
toString
Returns the URI as String. -
getScheme
Returns the scheme.- Returns:
- the scheme or null if not set
-
getUserInfo
Returns the user info.- Returns:
- the user info of the SlingUri or null if not set
-
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
Returns the resource path.- Specified by:
getResourcePathin interfaceRequestPathInfo- Returns:
- returns the resource path or null if the URI does not contain a path.
-
getSelectorString
Returns the selector string.- Specified by:
getSelectorStringin interfaceRequestPathInfo- Returns:
- returns the selector string or null if the URI does not contain selector(s) (in line with
RequestPathInfo) - See Also:
-
getSelectors
Returns the selectors array.- Specified by:
getSelectorsin interfaceRequestPathInfo- Returns:
- the selectors array (empty if the URI does not contain selector(s), never null)
- See Also:
-
getExtension
Returns the extension.- Specified by:
getExtensionin interfaceRequestPathInfo- Returns:
- the extension or null if the URI does not contain an extension
-
getPathParameters
Returns the path parameters.- Returns:
- the path parameters or an empty Map if the URI does not contain any
-
getSuffix
Returns the suffix part of the URI- Specified by:
getSuffixin interfaceRequestPathInfo- Returns:
- the suffix string or null if the URI does not contain a suffix
-
getPath
Returns the joint path of resource path, selectors, extension and suffix.- Returns:
- the path or null if no path is set
-
getQuery
Returns the query.- Returns:
- the query part of the URI or null if the URI does not contain a query
-
getFragment
Returns the fragment.- Returns:
- the fragment or null if the URI does not contain a fragment
-
getSchemeSpecificPart
Returns the scheme-specific part of the URI, compare with Javadoc ofURI.- Returns:
- scheme specific part of the URI
-
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:
getSuffixResourcein 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 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)
-