src/share/classes/com/sun/tools/javadoc/JavadocTool.java

changeset 1411
467f4f754368
parent 1359
25e14ad23cef
child 1413
bdcef2ef52d2
equal deleted inserted replaced
1410:bfec2a1cc869 1411:467f4f754368
36 import javax.tools.JavaFileObject; 36 import javax.tools.JavaFileObject;
37 import javax.tools.StandardJavaFileManager; 37 import javax.tools.StandardJavaFileManager;
38 import javax.tools.StandardLocation; 38 import javax.tools.StandardLocation;
39 39
40 import com.sun.tools.javac.code.Symbol.CompletionFailure; 40 import com.sun.tools.javac.code.Symbol.CompletionFailure;
41 import com.sun.tools.javac.comp.Annotate;
42 import com.sun.tools.javac.tree.JCTree; 41 import com.sun.tools.javac.tree.JCTree;
43 import com.sun.tools.javac.tree.JCTree.JCClassDecl; 42 import com.sun.tools.javac.tree.JCTree.JCClassDecl;
44 import com.sun.tools.javac.tree.JCTree.JCCompilationUnit; 43 import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
45 import com.sun.tools.javac.util.Abort; 44 import com.sun.tools.javac.util.Abort;
46 import com.sun.tools.javac.util.Context; 45 import com.sun.tools.javac.util.Context;
63 * @author Neal Gafter 62 * @author Neal Gafter
64 */ 63 */
65 public class JavadocTool extends com.sun.tools.javac.main.JavaCompiler { 64 public class JavadocTool extends com.sun.tools.javac.main.JavaCompiler {
66 DocEnv docenv; 65 DocEnv docenv;
67 66
68 final Context context;
69 final Messager messager; 67 final Messager messager;
70 final JavadocClassReader reader; 68 final JavadocClassReader javadocReader;
71 final JavadocEnter enter; 69 final JavadocEnter javadocEnter;
72 final Annotate annotate;
73 70
74 /** 71 /**
75 * Construct a new JavaCompiler processor, using appropriately 72 * Construct a new JavaCompiler processor, using appropriately
76 * extended phases of the underlying compiler. 73 * extended phases of the underlying compiler.
77 */ 74 */
78 protected JavadocTool(Context context) { 75 protected JavadocTool(Context context) {
79 super(context); 76 super(context);
80 this.context = context;
81 messager = Messager.instance0(context); 77 messager = Messager.instance0(context);
82 reader = JavadocClassReader.instance0(context); 78 javadocReader = JavadocClassReader.instance0(context);
83 enter = JavadocEnter.instance0(context); 79 javadocEnter = JavadocEnter.instance0(context);
84 annotate = Annotate.instance(context);
85 } 80 }
86 81
87 /** 82 /**
88 * For javadoc, the parser needs to keep comments. Overrides method from JavaCompiler. 83 * For javadoc, the parser needs to keep comments. Overrides method from JavaCompiler.
89 */ 84 */
136 docenv.breakiterator = breakiterator; 131 docenv.breakiterator = breakiterator;
137 docenv.setLocale(doclocale); 132 docenv.setLocale(doclocale);
138 docenv.setEncoding(encoding); 133 docenv.setEncoding(encoding);
139 docenv.docClasses = docClasses; 134 docenv.docClasses = docClasses;
140 docenv.legacyDoclet = legacyDoclet; 135 docenv.legacyDoclet = legacyDoclet;
141 reader.sourceCompleter = docClasses ? null : this; 136 javadocReader.sourceCompleter = docClasses ? null : this;
142 137
143 ListBuffer<String> names = new ListBuffer<String>(); 138 ListBuffer<String> names = new ListBuffer<String>();
144 ListBuffer<JCCompilationUnit> classTrees = new ListBuffer<JCCompilationUnit>(); 139 ListBuffer<JCCompilationUnit> classTrees = new ListBuffer<JCCompilationUnit>();
145 ListBuffer<JCCompilationUnit> packTrees = new ListBuffer<JCCompilationUnit>(); 140 ListBuffer<JCCompilationUnit> packTrees = new ListBuffer<JCCompilationUnit>();
146 141
154 JCCompilationUnit tree = parse(fo); 149 JCCompilationUnit tree = parse(fo);
155 classTrees.append(tree); 150 classTrees.append(tree);
156 } else if (isValidPackageName(name)) { 151 } else if (isValidPackageName(name)) {
157 names = names.append(name); 152 names = names.append(name);
158 } else if (name.endsWith(".java")) { 153 } else if (name.endsWith(".java")) {
159 docenv.error(null, "main.file_not_found", name); 154 docenv.error(null, "main.file_not_found", name);
160 } else { 155 } else {
161 docenv.error(null, "main.illegal_package_name", name); 156 docenv.error(null, "main.illegal_package_name", name);
162 } 157 }
163 } 158 }
164 159
177 172
178 if (messager.nerrors() != 0) return null; 173 if (messager.nerrors() != 0) return null;
179 174
180 // Enter symbols for all files 175 // Enter symbols for all files
181 docenv.notice("main.Building_tree"); 176 docenv.notice("main.Building_tree");
182 enter.main(classTrees.toList().appendList(packTrees.toList())); 177 javadocEnter.main(classTrees.toList().appendList(packTrees.toList()));
183 } 178 }
184 } catch (Abort ex) {} 179 } catch (Abort ex) {}
185 180
186 if (messager.nerrors() != 0) 181 if (messager.nerrors() != 0)
187 return null; 182 return null;
238 trees.append(parse(fo)); 233 trees.append(parse(fo));
239 hasFiles = true; 234 hasFiles = true;
240 } 235 }
241 236
242 if (!hasFiles) { 237 if (!hasFiles) {
243 messager.warning(null, "main.no_source_files_for_package", 238 messager.warning(Messager.NOPOS, "main.no_source_files_for_package",
244 name.replace(File.separatorChar, '.')); 239 name.replace(File.separatorChar, '.'));
245 } 240 }
246 } 241 }
247 242
248 /** 243 /**

mercurial