src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Extern.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -21,21 +21,24 @@
  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
 
-package com.sun.tools.doclets.internal.toolkit.util;
+package jdk.javadoc.internal.doclets.toolkit.util;
 
 import java.io.*;
 import java.net.*;
 import java.util.HashMap;
 import java.util.Map;
 
+import javax.lang.model.element.Element;
+import javax.lang.model.element.PackageElement;
+import javax.tools.Diagnostic;
 import javax.tools.DocumentationTool;
 
-import com.sun.javadoc.*;
-import com.sun.tools.doclets.internal.toolkit.*;
+import jdk.javadoc.doclet.Reporter;
+import jdk.javadoc.internal.doclets.toolkit.Configuration;
 
 /**
  * Process and manage "-link" and "-linkoffline" to external packages. The
  * options "-link" and "-linkoffline" both depend on the fact that Javadoc now
  * generates "package-list"(lists all the packages which are getting

@@ -54,11 +57,11 @@
 
     /**
      * Map package names onto Extern Item objects.
      * Lazily initialized.
      */
-    private Map<String,Item> packageToItemMap;
+    private Map<String, Item> packageToItemMap;
 
     /**
      * The global configuration information for this run.
      */
     private final Configuration configuration;

@@ -122,36 +125,39 @@
     public Extern(Configuration configuration) {
         this.configuration = configuration;
     }
 
     /**
-     * Determine if a doc item is externally documented.
+     * Determine if a element item is externally documented.
      *
-     * @param doc A ProgramElementDoc.
+     * @param element an Element.
      */
-    public boolean isExternal(ProgramElementDoc doc) {
+    public boolean isExternal(Element element) {
         if (packageToItemMap == null) {
             return false;
         }
-        return packageToItemMap.get(doc.containingPackage().name()) != null;
+        PackageElement pe = configuration.utils.containingPackage(element);
+        if (pe.isUnnamed()) {
+            return false;
     }
+        return packageToItemMap.get(configuration.utils.getPackageName(pe)) != null;
+    }
 
     /**
      * Convert a link to be an external link if appropriate.
      *
      * @param pkgName The package name.
      * @param relativepath    The relative path.
      * @param filename    The link to convert.
      * @return if external return converted link else return null
      */
-    public DocLink getExternalLink(String pkgName,
-                                  DocPath relativepath, String filename) {
+    public DocLink getExternalLink(String pkgName, DocPath relativepath, String filename) {
         return getExternalLink(pkgName, relativepath, filename, null);
     }
 
-    public DocLink getExternalLink(String pkgName,
-                                  DocPath relativepath, String filename, String memberName) {
+    public DocLink getExternalLink(String pkgName, DocPath relativepath, String filename,
+            String memberName) {
         Item fnd = findPackageItem(pkgName);
         if (fnd == null)
             return null;
 
         DocPath p = fnd.relative ?

@@ -169,12 +175,11 @@
      * @param pkglisturl This can be another URL for "package-list" or ordinary
      *                   file.
      * @param reporter   The <code>DocErrorReporter</code> used to report errors.
      * @param linkoffline True if -linkoffline is used and false if -link is used.
      */
-    public boolean link(String url, String pkglisturl,
-                              DocErrorReporter reporter, boolean linkoffline) {
+    public boolean link(String url, String pkglisturl, Reporter reporter, boolean linkoffline) {
         this.linkoffline = linkoffline;
         try {
             url = adjustEndFileSeparator(url);
             if (isUrl(pkglisturl)) {
                 readPackageListFromURL(url, toURL(adjustEndFileSeparator(pkglisturl)));

@@ -181,11 +186,11 @@
             } else {
                 readPackageListFromFile(url, DocFile.createFileForInput(configuration, pkglisturl));
             }
             return true;
         } catch (Fault f) {
-            reporter.printWarning(f.getMessage());
+            reporter.print(Diagnostic.Kind.WARNING, f.getMessage());
             return false;
         }
     }
 
     private URL toURL(String url) throws Fault {

@@ -227,12 +232,11 @@
      * Fetch the URL and read the "package-list" file.
      *
      * @param urlpath        Path to the packages.
      * @param pkglisturlpath URL or the path to the "package-list" file.
      */
-    private void readPackageListFromURL(String urlpath, URL pkglisturlpath)
-            throws Fault {
+    private void readPackageListFromURL(String urlpath, URL pkglisturlpath) throws Fault {
         try {
             URL link = pkglisturlpath.toURI().resolve(DocPaths.PACKAGE_LIST.getPath()).toURL();
             readPackageList(link.openStream(), urlpath, false);
         } catch (URISyntaxException | MalformedURLException exc) {
             throw new Fault(configuration.getText("doclet.MalformedURL", pkglisturlpath.toString()), exc);

@@ -274,12 +278,11 @@
      *
      * @param input    InputStream from the "package-list" file.
      * @param path     URL or the directory path to the packages.
      * @param relative Is path relative?
      */
-    private void readPackageList(InputStream input, String path,
-                                boolean relative)
+    private void readPackageList(InputStream input, String path, boolean relative)
                          throws IOException {
         BufferedReader in = new BufferedReader(new InputStreamReader(input));
         StringBuilder strbuf = new StringBuilder();
         try {
             int c;