Class URIPathDescriptor
java.lang.Object
org.apache.maven.doxia.site.inheritance.URIPathDescriptor
Describes a link that may be absolute or relative, and that is anchored to an absolute URI.
- Since:
- 1.2
- Author:
- ltheussl
-
Constructor Summary
ConstructorsConstructorDescriptionURIPathDescriptor
(String baseURI, String link) A URIPathDescriptor consists of a base URI and a link. -
Method Summary
Modifier and TypeMethodDescriptionReturn the base of this URIPathDescriptor as a URI.getLink()
Return the link of this URIPathDescriptor as a URI.rebaseLink
(String newBase) Calculate the link as viewed from a different base.Calculate the relative link with respect to the base.Resolve the link to the base.boolean
Check if this URIPathDescriptor lives on the same site as the given URI.toString()
Construct a string representation of this URIPathDescriptor.
-
Constructor Details
-
URIPathDescriptor
A URIPathDescriptor consists of a base URI and a link. Both arguments to this constructor have to be parsable to URIs. The baseURI parameter has to be absolute in the sense ofURI.isAbsolute()
. Before being parsed toURI
s, the arguments are modified to catch some common bad practices: first all Windows-style backslashes '\' are replaced by forward slashes '/'. If the baseURI does not end with '/', a slash is appended. If the link starts with a '/', the first character is stripped.- Parameters:
baseURI
- The base URI. Has to be a valid absolute URI. In addition, the path of the URI should not have any file part, iehttp://maven.apache.org/
is valid,http://maven.apache.org/index.html
is not. Even though the latter form is accepted without warning, the methods in this class will not return what is probably expected, because a slash is appended during construction, as noted above.link
- the link. This may be a relative link or an absolute link. Note that URIs that start with a "/", ie don't specify a scheme, are considered relative.- Throws:
IllegalArgumentException
- if either argument is not parsable as a URI, or if baseURI is not absolute.
-
-
Method Details
-
getBaseURI
Return the base of this URIPathDescriptor as a URI. This is alwaysnormalized
.- Returns:
- the normalized base URI.
-
getLink
Return the link of this URIPathDescriptor as a URI. This is alwaysnormalized
.- Returns:
- the normalized link URI.
-
resolveLink
Resolve the link to the base. This always returns an absolute URI. If link is absolute, link is returned.- Returns:
- the resolved link. This is equivalent to calling
getBaseURI()
.resolve
(getLink()
).
-
relativizeLink
Calculate the relative link with respect to the base. The original link is returned if either link is relative; or link and base do not share thesame site
.- Returns:
- the link as a relative URI.
-
rebaseLink
Calculate the link as viewed from a different base. This returns the original link if link is absolute. This returnsresolveLink()
if either newBase == null, or newBase is not parsable as a URI, or newBase and thisgetBaseURI()
do not share thesame site
.- Parameters:
newBase
- the new base URI. Has to be parsable as a URI. .- Returns:
- a new relative link or the original link
resolved
, i.e. as an absolute link, if the link cannot be re-based.
-
sameSite
Check if this URIPathDescriptor lives on the same site as the given URI.- Parameters:
uri
- a URI to compare with. May be null, in which case false is returned.- Returns:
- true if
getBaseURI()
shares the same scheme, host and port with the given URI where null values are allowed.
-
toString
Construct a string representation of this URIPathDescriptor. This is equivalent to callingresolveLink()
.toString().
-