52 import com.sun.tools.javac.api.JavacTaskImpl; |
52 import com.sun.tools.javac.api.JavacTaskImpl; |
53 import com.sun.tools.javac.api.JavacTool; |
53 import com.sun.tools.javac.api.JavacTool; |
54 import com.sun.tools.javac.file.JavacFileManager; |
54 import com.sun.tools.javac.file.JavacFileManager; |
55 import com.sun.tools.javac.main.JavaCompiler; |
55 import com.sun.tools.javac.main.JavaCompiler; |
56 import com.sun.tools.javac.util.Context; |
56 import com.sun.tools.javac.util.Context; |
|
57 import com.sun.tools.javac.util.DefinedBy; |
|
58 import com.sun.tools.javac.util.DefinedBy.Api; |
57 |
59 |
58 /** |
60 /** |
59 * Multi-function entry point for the doc check utility. |
61 * Multi-function entry point for the doc check utility. |
60 * |
62 * |
61 * This class can be invoked in the following ways: |
63 * This class can be invoked in the following ways: |
242 |
244 |
243 // </editor-fold> |
245 // </editor-fold> |
244 |
246 |
245 // <editor-fold defaultstate="collapsed" desc="javac Plugin"> |
247 // <editor-fold defaultstate="collapsed" desc="javac Plugin"> |
246 |
248 |
247 @Override |
249 @Override @DefinedBy(Api.COMPILER_TREE) |
248 public String getName() { |
250 public String getName() { |
249 return "doclint"; |
251 return "doclint"; |
250 } |
252 } |
251 |
253 |
252 @Override |
254 @Override @DefinedBy(Api.COMPILER_TREE) |
253 public void init(JavacTask task, String... args) { |
255 public void init(JavacTask task, String... args) { |
254 init(task, args, true); |
256 init(task, args, true); |
255 } |
257 } |
256 |
258 |
257 // </editor-fold> |
259 // </editor-fold> |
287 checker.scan(dc, p); |
289 checker.scan(dc, p); |
288 } |
290 } |
289 }; |
291 }; |
290 |
292 |
291 TaskListener tl = new TaskListener() { |
293 TaskListener tl = new TaskListener() { |
292 @Override |
294 @Override @DefinedBy(Api.COMPILER_TREE) |
293 public void started(TaskEvent e) { |
295 public void started(TaskEvent e) { |
294 switch (e.getKind()) { |
296 switch (e.getKind()) { |
295 case ANALYZE: |
297 case ANALYZE: |
296 CompilationUnitTree tree; |
298 CompilationUnitTree tree; |
297 while ((tree = todo.poll()) != null) |
299 while ((tree = todo.poll()) != null) |
298 ds.scan(tree, null); |
300 ds.scan(tree, null); |
299 break; |
301 break; |
300 } |
302 } |
301 } |
303 } |
302 |
304 |
303 @Override |
305 @Override @DefinedBy(Api.COMPILER_TREE) |
304 public void finished(TaskEvent e) { |
306 public void finished(TaskEvent e) { |
305 switch (e.getKind()) { |
307 switch (e.getKind()) { |
306 case PARSE: |
308 case PARSE: |
307 todo.add(e.getCompilationUnit()); |
309 todo.add(e.getCompilationUnit()); |
308 break; |
310 break; |
346 // <editor-fold defaultstate="collapsed" desc="DeclScanner"> |
348 // <editor-fold defaultstate="collapsed" desc="DeclScanner"> |
347 |
349 |
348 static abstract class DeclScanner extends TreePathScanner<Void, Void> { |
350 static abstract class DeclScanner extends TreePathScanner<Void, Void> { |
349 abstract void visitDecl(Tree tree, Name name); |
351 abstract void visitDecl(Tree tree, Name name); |
350 |
352 |
351 @Override |
353 @Override @DefinedBy(Api.COMPILER_TREE) |
352 public Void visitPackage(PackageTree tree, Void ignore) { |
354 public Void visitPackage(PackageTree tree, Void ignore) { |
353 visitDecl(tree, null); |
355 visitDecl(tree, null); |
354 return super.visitPackage(tree, ignore); |
356 return super.visitPackage(tree, ignore); |
355 } |
357 } |
356 @Override |
358 @Override @DefinedBy(Api.COMPILER_TREE) |
357 public Void visitClass(ClassTree tree, Void ignore) { |
359 public Void visitClass(ClassTree tree, Void ignore) { |
358 visitDecl(tree, tree.getSimpleName()); |
360 visitDecl(tree, tree.getSimpleName()); |
359 return super.visitClass(tree, ignore); |
361 return super.visitClass(tree, ignore); |
360 } |
362 } |
361 |
363 |
362 @Override |
364 @Override @DefinedBy(Api.COMPILER_TREE) |
363 public Void visitMethod(MethodTree tree, Void ignore) { |
365 public Void visitMethod(MethodTree tree, Void ignore) { |
364 visitDecl(tree, tree.getName()); |
366 visitDecl(tree, tree.getName()); |
365 //return super.visitMethod(tree, ignore); |
367 //return super.visitMethod(tree, ignore); |
366 return null; |
368 return null; |
367 } |
369 } |
368 |
370 |
369 @Override |
371 @Override @DefinedBy(Api.COMPILER_TREE) |
370 public Void visitVariable(VariableTree tree, Void ignore) { |
372 public Void visitVariable(VariableTree tree, Void ignore) { |
371 visitDecl(tree, tree.getName()); |
373 visitDecl(tree, tree.getName()); |
372 return super.visitVariable(tree, ignore); |
374 return super.visitVariable(tree, ignore); |
373 } |
375 } |
374 } |
376 } |