Class JavadocLinkGenerator

java.lang.Object
org.apache.maven.tools.plugin.javadoc.JavadocLinkGenerator

public class JavadocLinkGenerator extends Object
Generates links for elements (packages, classes, fields, constructors, methods) in external and/or an internal (potentially not yet existing) javadoc site. The external site must be accessible for it to be considered due to the different fragment formats.
  • Constructor Details

    • JavadocLinkGenerator

      public JavadocLinkGenerator(URI internalJavadocSiteUrl, String internalJavadocVersion)
      Constructor for an offline internal site only.
      Parameters:
      internalJavadocSiteUrl - the url of the javadoc generated website
      internalJavadocVersion - the version of javadoc with which the internal site from internalJavadocSiteUrl has been generated
    • JavadocLinkGenerator

      public JavadocLinkGenerator(List<URI> externalJavadocSiteUrls, org.apache.maven.settings.Settings settings)
      Constructor for online external sites only.
      Parameters:
      externalJavadocSiteUrls -
      settings -
    • JavadocLinkGenerator

      public JavadocLinkGenerator(URI internalJavadocSiteUrl, String internalJavadocVersion, List<URI> externalJavadocSiteUrls, org.apache.maven.settings.Settings settings)
      Constructor for both an internal (offline) and external (online) sites.
      Parameters:
      internalJavadocSiteUrl -
      internalJavadocVersion -
      externalJavadocSiteUrls -
      settings -
  • Method Details

    • createLink

      public URI createLink(FullyQualifiedJavadocReference javadocReference)
      Generates a (deep-)link to a HTML page in any of the sites given to the constructor. The link is not validated (i.e. might point to a non-existing page). Only uses the offline site for references returning false for FullyQualifiedJavadocReference.isExternal().
      Parameters:
      javadocReference -
      Returns:
      the (deep-) link towards a javadoc page
      Throws:
      IllegalArgumentException - in case no javadoc link could be generated for the given reference
      IllegalStateException - in case no javadoc source sites have been configured
    • createLink

      public URI createLink(String binaryName)
      Generates a (deep-)link to a HTML page in any of the sites given to the constructor. The link is not validated (i.e. might point to a non-existing page). Preferably resolves from the online sites if they provide the given package.
      Parameters:
      binaryName - a binary name according to JLS 13.1
      Returns:
      the (deep-) link towards a javadoc page
      Throws:
      IllegalArgumentException - in case no javadoc link could be generated for the given name
    • getInternalJavadocSiteBaseUrl

    • isLinkValid

      public static boolean isLinkValid(URI url, Path baseDirectory)
      Checks if a given link is valid. For absolute links uses the underling HttpURLConnection, otherwise checks for existence of the file on the filesystem.
      Parameters:
      url - the url to check
      baseDirectory - the base directory to which relative file URLs refer
      Returns:
      true in case the given link is valid otherwise false