langtools/src/share/classes/com/sun/tools/javadoc/PackageDocImpl.java
changeset 1869 0e193a8f3520
parent 10 06bc494ca11e
child 2212 1d3dc0e0ba0c
--- a/langtools/src/share/classes/com/sun/tools/javadoc/PackageDocImpl.java	Tue Jan 20 17:49:49 2009 +0000
+++ b/langtools/src/share/classes/com/sun/tools/javadoc/PackageDocImpl.java	Tue Jan 20 15:17:45 2009 -0800
@@ -25,30 +25,23 @@
 
 package com.sun.tools.javadoc;
 
-import com.sun.javadoc.*;
+import java.io.InputStream;
+import java.io.IOException;
+import javax.tools.FileObject;
 
-import java.io.File;
-import java.io.InputStream;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.zip.ZipFile;
-import java.util.zip.ZipEntry;
+import com.sun.javadoc.*;
 
 import com.sun.tools.javac.code.Attribute;
 import com.sun.tools.javac.code.Scope;
 import com.sun.tools.javac.code.Symbol.ClassSymbol;
 import com.sun.tools.javac.code.Symbol.PackageSymbol;
-import com.sun.tools.javac.comp.AttrContext;
-import com.sun.tools.javac.comp.Env;
 import com.sun.tools.javac.tree.JCTree;
+import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
 import com.sun.tools.javac.util.List;
 import com.sun.tools.javac.util.ListBuffer;
 import com.sun.tools.javac.util.Name;
 import com.sun.tools.javac.util.Position;
 
-import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
-
-
 /**
  * Represents a java package.  Provides access to information
  * about the package, the package's comment and tags, and the
@@ -63,14 +56,10 @@
 
 public class PackageDocImpl extends DocImpl implements PackageDoc {
 
-    private static final String PACKAGE_HTML_FILE_NAME = "package.html";
-
     protected PackageSymbol sym;
     private JCCompilationUnit tree = null;    // for source position
 
-    public String docPath = null;
-    public String zipDocPath = null;
-    public String zipDocEntry = null;
+    public FileObject docPath = null;
     private boolean foundDoc;   // found a doc comment in either
                                 // package.html or package-info.java
 
@@ -108,30 +97,16 @@
      * Do lazy initialization of "documentation" string.
      */
     String documentation() {
-        if (documentation != null) return documentation;
-        if (zipDocPath != null) {
-            try {
-                ZipFile f = new ZipFile(zipDocPath);
-                ZipEntry entry = f.getEntry(zipDocEntry);
-                if (entry != null) {
-                    InputStream s = f.getInputStream(entry);
-                    return (documentation = readHTMLDocumentation(s,
-                        zipDocPath + File.separatorChar + zipDocEntry));
-                }
-            } catch (IOException exc) {
-                documentation = "";
-                env.error(null, "javadoc.File_Read_Error",
-                          zipDocPath + File.separatorChar + zipDocEntry);
-            }
-        }
+        if (documentation != null)
+            return documentation;
         if (docPath != null) {
             // read from file
             try {
-                InputStream s = new FileInputStream(docPath);
+                InputStream s = docPath.openInputStream();
                 documentation = readHTMLDocumentation(s, docPath);
             } catch (IOException exc) {
                 documentation = "";
-                env.error(null, "javadoc.File_Read_Error", docPath);
+                env.error(null, "javadoc.File_Read_Error", docPath.getName());
             }
         } else {
             // no doc file to be had
@@ -363,24 +338,12 @@
     /**
      * set doc path for an unzipped directory
      */
-    public void setDocPath(String path) {
+    public void setDocPath(FileObject path) {
         setDocPath = true;
         if (path == null)
             return;
-        String newDocPath = path + File.separatorChar + PACKAGE_HTML_FILE_NAME;
-        if (!newDocPath.equals(docPath)) {
-            docPath = newDocPath;
-            checkDoc();
-        }
-    }
-
-    /**
-     * set the doc path for zipped directory
-     */
-    public void setDocPath(String path, String entry) {
-        if (!path.equals(zipDocPath)) {
-            zipDocPath = path;
-            zipDocEntry = entry + PACKAGE_HTML_FILE_NAME;
+        if (!path.equals(docPath)) {
+            docPath = path;
             checkDoc();
         }
     }
@@ -409,7 +372,7 @@
      */
     public SourcePosition position() {
         return (tree != null)
-                ? SourcePositionImpl.make(tree.sourcefile + "", tree.pos, tree.lineMap)
+                ? SourcePositionImpl.make(tree.sourcefile, tree.pos, tree.lineMap)
                 : SourcePositionImpl.make(docPath, Position.NOPOS, null);
     }
 }