Class JavadocSite
- java.lang.Object
-
- org.apache.maven.tools.plugin.javadoc.JavadocSite
-
class JavadocSite extends java.lang.Object
Allows to create links to a site generated by javadoc (incl. deep-linking). The site may be either accessible (online) or non-accessible (offline) when using this class.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.net.URI
baseUri
(package private) java.util.Map<java.lang.String,java.lang.String>
containedPackageNamesAndModules
static int
DEFAULT_TIMEOUT
The default timeout used when fetching url, i.e.private static java.lang.String
PREFIX_MODULE
(package private) boolean
requireModuleNameInPath
(package private) org.apache.maven.settings.Settings
settings
(package private) JavadocLinkGenerator.JavadocToolVersionRange
version
(package private) static java.util.EnumMap<FullyQualifiedJavadocReference.MemberType,java.util.EnumSet<JavadocLinkGenerator.JavadocToolVersionRange>>
VERSIONS_PER_TYPE
-
Constructor Summary
Constructors Constructor Description JavadocSite(java.net.URI url, org.apache.maven.settings.Settings settings)
Constructor for online sites having an accessiblepackage-list
orelement-list
.JavadocSite(java.net.URI url, JavadocLinkGenerator.JavadocToolVersionRange version, boolean requireModuleNameInPath)
Constructor for offline sites.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) java.net.URI
appendMemberAsFragment(java.net.URI url, java.util.Optional<java.lang.String> optionalMember, java.util.Optional<FullyQualifiedJavadocReference.MemberType> optionalMemberType)
(package private) java.net.URI
appendMemberAsFragment(java.net.URI url, FullyQualifiedJavadocReference reference)
private static org.apache.http.impl.client.CloseableHttpClient
createHttpClient(org.apache.maven.settings.Settings settings, java.net.URL url)
Creates a newHttpClient
instance.java.net.URI
createLink(java.lang.String packageName, java.lang.String className)
Generates a link to a javadoc html page below the javadoc site represented by this object.(package private) static java.net.URI
createLink(java.net.URI baseUri, java.util.Optional<java.lang.String> moduleName, java.util.Optional<java.lang.String> packageName, java.util.Optional<java.lang.String> className)
java.net.URI
createLink(FullyQualifiedJavadocReference javadocReference)
Generates a link to a javadoc html page below the javadoc site represented by this object.(package private) static java.net.URI
createLink(FullyQualifiedJavadocReference javadocReference, java.net.URI baseUri, java.util.function.BiFunction<java.net.URI,FullyQualifiedJavadocReference,java.net.URI> fragmentAppender)
(package private) static java.net.URI
createLink(FullyQualifiedJavadocReference javadocReference, java.net.URI baseUri, java.util.function.BiFunction<java.net.URI,FullyQualifiedJavadocReference,java.net.URI> fragmentAppender, java.util.Optional<java.lang.String> pathPrefix)
(package private) boolean
findAnchor(java.net.URI uri, java.lang.String anchorNameOrId)
(package private) static boolean
findLineContaining(java.net.URI url, org.apache.maven.settings.Settings settings, java.util.regex.Pattern pattern)
(package private) static java.util.regex.Pattern
getAnchorPattern(java.lang.String anchorNameOrId)
java.net.URI
getBaseUri()
(package private) static java.lang.String
getFragmentForMember(JavadocLinkGenerator.JavadocToolVersionRange version, java.lang.String member, boolean isConstructor)
canonical format given by member is using parentheses and comma.(package private) static java.util.Map.Entry<java.lang.String,java.lang.String>
getPackageAndClassName(java.lang.String binaryName)
Splits up a given binary class name into package name and simple class name part.(package private) static java.util.Map<java.lang.String,java.lang.String>
getPackageListWithModules(java.net.URI url, org.apache.maven.settings.Settings settings)
(package private) static java.io.BufferedReader
getReader(java.net.URL url, org.apache.maven.settings.Settings settings)
boolean
hasEntryFor(java.util.Optional<java.lang.String> moduleName, java.util.Optional<java.lang.String> packageName)
static boolean
isNotEmpty(java.util.Collection<?> collection)
Convenience method to determine that a collection is not empty or null.
-
-
-
Field Detail
-
PREFIX_MODULE
private static final java.lang.String PREFIX_MODULE
- See Also:
- Constant Field Values
-
baseUri
final java.net.URI baseUri
-
settings
final org.apache.maven.settings.Settings settings
-
containedPackageNamesAndModules
final java.util.Map<java.lang.String,java.lang.String> containedPackageNamesAndModules
-
requireModuleNameInPath
final boolean requireModuleNameInPath
-
VERSIONS_PER_TYPE
static final java.util.EnumMap<FullyQualifiedJavadocReference.MemberType,java.util.EnumSet<JavadocLinkGenerator.JavadocToolVersionRange>> VERSIONS_PER_TYPE
-
version
JavadocLinkGenerator.JavadocToolVersionRange version
-
DEFAULT_TIMEOUT
public static final int DEFAULT_TIMEOUT
The default timeout used when fetching url, i.e. 2000.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
JavadocSite
JavadocSite(java.net.URI url, org.apache.maven.settings.Settings settings) throws java.io.IOException
Constructor for online sites having an accessiblepackage-list
orelement-list
.- Parameters:
url
-settings
-- Throws:
java.io.IOException
-
JavadocSite
JavadocSite(java.net.URI url, JavadocLinkGenerator.JavadocToolVersionRange version, boolean requireModuleNameInPath)
Constructor for offline sites. This throwsUnsupportedOperationException
forhasEntryFor(Optional, Optional)
.
-
-
Method Detail
-
getPackageListWithModules
static java.util.Map<java.lang.String,java.lang.String> getPackageListWithModules(java.net.URI url, org.apache.maven.settings.Settings settings) throws java.io.IOException
- Throws:
java.io.IOException
-
findLineContaining
static boolean findLineContaining(java.net.URI url, org.apache.maven.settings.Settings settings, java.util.regex.Pattern pattern) throws java.io.IOException
- Throws:
java.io.IOException
-
getBaseUri
public java.net.URI getBaseUri()
-
hasEntryFor
public boolean hasEntryFor(java.util.Optional<java.lang.String> moduleName, java.util.Optional<java.lang.String> packageName)
-
createLink
public java.net.URI createLink(java.lang.String packageName, java.lang.String className)
Generates a link to a javadoc html page below the javadoc site represented by this object. The link is not validated (i.e. might point to a non-existing page)- Returns:
- the (deep-)link towards a javadoc page
- Throws:
java.lang.IllegalArgumentException
- if no link can be created
-
getPackageAndClassName
static java.util.Map.Entry<java.lang.String,java.lang.String> getPackageAndClassName(java.lang.String binaryName)
Splits up a given binary class name into package name and simple class name part.- Parameters:
binaryName
- a binary name according to JLS 13.1- Returns:
- a key value pair where the key is the package name and the value the class name
- Throws:
java.lang.IllegalArgumentException
- if no link can be created
-
createLink
public java.net.URI createLink(FullyQualifiedJavadocReference javadocReference) throws java.lang.IllegalArgumentException
Generates a link to a javadoc html page below the javadoc site represented by this object. The link is not validated (i.e. might point to a non-existing page)- Parameters:
javadocReference
- a code reference from a javadoc tag- Returns:
- the (deep-)link towards a javadoc page
- Throws:
java.lang.IllegalArgumentException
- if no link can be created
-
createLink
static java.net.URI createLink(FullyQualifiedJavadocReference javadocReference, java.net.URI baseUri, java.util.function.BiFunction<java.net.URI,FullyQualifiedJavadocReference,java.net.URI> fragmentAppender)
-
createLink
static java.net.URI createLink(FullyQualifiedJavadocReference javadocReference, java.net.URI baseUri, java.util.function.BiFunction<java.net.URI,FullyQualifiedJavadocReference,java.net.URI> fragmentAppender, java.util.Optional<java.lang.String> pathPrefix) throws java.lang.IllegalArgumentException
- Throws:
java.lang.IllegalArgumentException
-
createLink
static java.net.URI createLink(java.net.URI baseUri, java.util.Optional<java.lang.String> moduleName, java.util.Optional<java.lang.String> packageName, java.util.Optional<java.lang.String> className) throws java.net.URISyntaxException
- Throws:
java.net.URISyntaxException
-
appendMemberAsFragment
java.net.URI appendMemberAsFragment(java.net.URI url, FullyQualifiedJavadocReference reference)
-
appendMemberAsFragment
java.net.URI appendMemberAsFragment(java.net.URI url, java.util.Optional<java.lang.String> optionalMember, java.util.Optional<FullyQualifiedJavadocReference.MemberType> optionalMemberType) throws java.net.URISyntaxException, java.io.IOException
- Parameters:
url
-optionalMember
-optionalMemberType
-- Returns:
- Throws:
java.net.URISyntaxException
java.io.IOException
- See Also:
- Name generation in Javadoc8, Javadoc Tools Source since JDK10, Javadoc Tools Source JDK9, Javadoc Tools Source JDK8
-
getFragmentForMember
static java.lang.String getFragmentForMember(JavadocLinkGenerator.JavadocToolVersionRange version, java.lang.String member, boolean isConstructor)
canonical format given by member is using parentheses and comma.- Parameters:
version
-member
-isConstructor
-- Returns:
- the anchor
-
findAnchor
boolean findAnchor(java.net.URI uri, java.lang.String anchorNameOrId) throws java.net.MalformedURLException, java.io.IOException
- Throws:
java.net.MalformedURLException
java.io.IOException
-
getAnchorPattern
static java.util.regex.Pattern getAnchorPattern(java.lang.String anchorNameOrId)
-
createHttpClient
private static org.apache.http.impl.client.CloseableHttpClient createHttpClient(org.apache.maven.settings.Settings settings, java.net.URL url)
Creates a newHttpClient
instance.- Parameters:
settings
- The settings to use for setting up the client ornull
.url
- TheURL
to use for setting up the client ornull
.- Returns:
- A new
HttpClient
instance. - Since:
- 2.8
- See Also:
DEFAULT_TIMEOUT
-
getReader
static java.io.BufferedReader getReader(java.net.URL url, org.apache.maven.settings.Settings settings) throws java.io.IOException
- Throws:
java.io.IOException
-
isNotEmpty
public static boolean isNotEmpty(java.util.Collection<?> collection)
Convenience method to determine that a collection is not empty or null.- Parameters:
collection
- the collection to verify- Returns:
true
if notnull
and not empty, otherwisefalse
-
-