31 import java.util.EnumSet; |
31 import java.util.EnumSet; |
32 import java.util.HashMap; |
32 import java.util.HashMap; |
33 import java.util.HashSet; |
33 import java.util.HashSet; |
34 import java.util.Map; |
34 import java.util.Map; |
35 import java.util.Set; |
35 import java.util.Set; |
|
36 |
36 import javax.tools.JavaFileManager.Location; |
37 import javax.tools.JavaFileManager.Location; |
37 import javax.tools.JavaFileObject; |
38 import javax.tools.JavaFileObject; |
38 import javax.tools.StandardJavaFileManager; |
39 import javax.tools.StandardJavaFileManager; |
39 import javax.tools.StandardLocation; |
40 import javax.tools.StandardLocation; |
40 |
41 |
|
42 import com.sun.tools.javac.code.ClassFinder; |
41 import com.sun.tools.javac.code.Symbol.CompletionFailure; |
43 import com.sun.tools.javac.code.Symbol.CompletionFailure; |
|
44 import com.sun.tools.javac.comp.Enter; |
42 import com.sun.tools.javac.tree.JCTree; |
45 import com.sun.tools.javac.tree.JCTree; |
43 import com.sun.tools.javac.tree.JCTree.JCClassDecl; |
46 import com.sun.tools.javac.tree.JCTree.JCClassDecl; |
44 import com.sun.tools.javac.tree.JCTree.JCCompilationUnit; |
47 import com.sun.tools.javac.tree.JCTree.JCCompilationUnit; |
45 import com.sun.tools.javac.util.Abort; |
48 import com.sun.tools.javac.util.Abort; |
46 import com.sun.tools.javac.util.Context; |
49 import com.sun.tools.javac.util.Context; |
64 */ |
67 */ |
65 public class JavadocTool extends com.sun.tools.javac.main.JavaCompiler { |
68 public class JavadocTool extends com.sun.tools.javac.main.JavaCompiler { |
66 DocEnv docenv; |
69 DocEnv docenv; |
67 |
70 |
68 final Messager messager; |
71 final Messager messager; |
69 final JavadocClassReader javadocReader; |
72 final ClassFinder javadocFinder; |
70 final JavadocEnter javadocEnter; |
73 final Enter javadocEnter; |
71 final Set<JavaFileObject> uniquefiles; |
74 final Set<JavaFileObject> uniquefiles; |
72 |
75 |
73 /** |
76 /** |
74 * Construct a new JavaCompiler processor, using appropriately |
77 * Construct a new JavaCompiler processor, using appropriately |
75 * extended phases of the underlying compiler. |
78 * extended phases of the underlying compiler. |
76 */ |
79 */ |
77 protected JavadocTool(Context context) { |
80 protected JavadocTool(Context context) { |
78 super(context); |
81 super(context); |
79 messager = Messager.instance0(context); |
82 messager = Messager.instance0(context); |
80 javadocReader = JavadocClassReader.instance0(context); |
83 javadocFinder = JavadocClassFinder.instance(context); |
81 javadocEnter = JavadocEnter.instance0(context); |
84 javadocEnter = JavadocEnter.instance(context); |
82 uniquefiles = new HashSet<>(); |
85 uniquefiles = new HashSet<>(); |
83 } |
86 } |
84 |
87 |
85 /** |
88 /** |
86 * For javadoc, the parser needs to keep comments. Overrides method from JavaCompiler. |
89 * For javadoc, the parser needs to keep comments. Overrides method from JavaCompiler. |
93 * Construct a new javadoc tool. |
96 * Construct a new javadoc tool. |
94 */ |
97 */ |
95 public static JavadocTool make0(Context context) { |
98 public static JavadocTool make0(Context context) { |
96 Messager messager = null; |
99 Messager messager = null; |
97 try { |
100 try { |
98 // force the use of Javadoc's class reader |
101 // force the use of Javadoc's class finder |
99 JavadocClassReader.preRegister(context); |
102 JavadocClassFinder.preRegister(context); |
100 |
103 |
101 // force the use of Javadoc's own enter phase |
104 // force the use of Javadoc's own enter phase |
102 JavadocEnter.preRegister(context); |
105 JavadocEnter.preRegister(context); |
103 |
106 |
104 // force the use of Javadoc's own member enter phase |
107 // force the use of Javadoc's own member enter phase |
135 docenv.breakiterator = breakiterator; |
138 docenv.breakiterator = breakiterator; |
136 docenv.setLocale(doclocale); |
139 docenv.setLocale(doclocale); |
137 docenv.setEncoding(encoding); |
140 docenv.setEncoding(encoding); |
138 docenv.docClasses = docClasses; |
141 docenv.docClasses = docClasses; |
139 docenv.legacyDoclet = legacyDoclet; |
142 docenv.legacyDoclet = legacyDoclet; |
140 javadocReader.sourceCompleter = docClasses ? null : thisCompleter; |
143 |
|
144 javadocFinder.sourceCompleter = docClasses ? null : sourceCompleter; |
141 |
145 |
142 ListBuffer<String> names = new ListBuffer<>(); |
146 ListBuffer<String> names = new ListBuffer<>(); |
143 ListBuffer<JCCompilationUnit> classTrees = new ListBuffer<>(); |
147 ListBuffer<JCCompilationUnit> classTrees = new ListBuffer<>(); |
144 ListBuffer<JCCompilationUnit> packTrees = new ListBuffer<>(); |
148 ListBuffer<JCCompilationUnit> packTrees = new ListBuffer<>(); |
145 |
149 |