--- a/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java Tue Feb 28 10:25:53 2012 -0800
+++ b/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java Tue Feb 28 10:33:49 2012 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2012, 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
@@ -28,8 +28,8 @@
import java.io.*;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
-import java.util.LinkedHashMap;
import java.util.Map;
import java.util.MissingResourceException;
import java.util.Queue;
@@ -41,13 +41,13 @@
import javax.annotation.processing.Processor;
import javax.lang.model.SourceVersion;
+import javax.tools.DiagnosticListener;
import javax.tools.JavaFileManager;
import javax.tools.JavaFileObject;
-import javax.tools.DiagnosticListener;
+import static javax.tools.StandardLocation.CLASS_OUTPUT;
import com.sun.source.util.TaskEvent;
-import com.sun.source.util.TaskListener;
-
+import com.sun.tools.javac.api.MultiTaskListener;
import com.sun.tools.javac.code.*;
import com.sun.tools.javac.code.Lint.LintCategory;
import com.sun.tools.javac.code.Symbol.*;
@@ -60,8 +60,6 @@
import com.sun.tools.javac.tree.JCTree.*;
import com.sun.tools.javac.util.*;
import com.sun.tools.javac.util.Log.WriterKind;
-
-import static javax.tools.StandardLocation.CLASS_OUTPUT;
import static com.sun.tools.javac.main.Option.*;
import static com.sun.tools.javac.util.JCDiagnostic.DiagnosticFlag.*;
import static com.sun.tools.javac.util.ListBuffer.lb;
@@ -289,9 +287,9 @@
*/
protected ParserFactory parserFactory;
- /** Optional listener for progress events
+ /** Broadcasting listener for progress events
*/
- protected TaskListener taskListener;
+ protected MultiTaskListener taskListener;
/**
* Annotation processing may require and provide a new instance
@@ -356,7 +354,7 @@
lower = Lower.instance(context);
annotate = Annotate.instance(context);
types = Types.instance(context);
- taskListener = context.get(TaskListener.class);
+ taskListener = MultiTaskListener.instance(context);
reader.sourceCompleter = this;
@@ -592,7 +590,7 @@
if (verbose) {
log.printVerbose("parsing.started", filename);
}
- if (taskListener != null) {
+ if (!taskListener.isEmpty()) {
TaskEvent e = new TaskEvent(TaskEvent.Kind.PARSE, filename);
taskListener.started(e);
}
@@ -605,7 +603,7 @@
tree.sourcefile = filename;
- if (content != null && taskListener != null) {
+ if (content != null && !taskListener.isEmpty()) {
TaskEvent e = new TaskEvent(TaskEvent.Kind.PARSE, tree);
taskListener.finished(e);
}
@@ -751,14 +749,14 @@
log.useSource(prev);
}
- if (taskListener != null) {
+ if (!taskListener.isEmpty()) {
TaskEvent e = new TaskEvent(TaskEvent.Kind.ENTER, tree);
taskListener.started(e);
}
enter.complete(List.of(tree), c);
- if (taskListener != null) {
+ if (!taskListener.isEmpty()) {
TaskEvent e = new TaskEvent(TaskEvent.Kind.ENTER, tree);
taskListener.finished(e);
}
@@ -924,7 +922,7 @@
*/
public List<JCCompilationUnit> enterTrees(List<JCCompilationUnit> roots) {
//enter symbols for all files
- if (taskListener != null) {
+ if (!taskListener.isEmpty()) {
for (JCCompilationUnit unit: roots) {
TaskEvent e = new TaskEvent(TaskEvent.Kind.ENTER, unit);
taskListener.started(e);
@@ -933,7 +931,7 @@
enter.main(roots);
- if (taskListener != null) {
+ if (!taskListener.isEmpty()) {
for (JCCompilationUnit unit: roots) {
TaskEvent e = new TaskEvent(TaskEvent.Kind.ENTER, unit);
taskListener.finished(e);
@@ -1002,7 +1000,7 @@
reader.saveParameterNames = true;
keepComments = true;
genEndPos = true;
- if (taskListener != null)
+ if (!taskListener.isEmpty())
taskListener.started(new TaskEvent(TaskEvent.Kind.ANNOTATION_PROCESSING));
log.deferDiagnostics = true;
} else { // free resources
@@ -1017,7 +1015,7 @@
}
/**
- * Process any anotations found in the specifed compilation units.
+ * Process any annotations found in the specified compilation units.
* @param roots a list of compilation units
* @return an instance of the compiler in which to complete the compilation
*/
@@ -1176,7 +1174,7 @@
if (verbose)
log.printVerbose("checking.attribution", env.enclClass.sym);
- if (taskListener != null) {
+ if (!taskListener.isEmpty()) {
TaskEvent e = new TaskEvent(TaskEvent.Kind.ANALYZE, env.toplevel, env.enclClass.sym);
taskListener.started(e);
}
@@ -1259,7 +1257,7 @@
}
}
finally {
- if (taskListener != null) {
+ if (!taskListener.isEmpty()) {
TaskEvent e = new TaskEvent(TaskEvent.Kind.ANALYZE, env.toplevel, env.enclClass.sym);
taskListener.finished(e);
}
@@ -1440,7 +1438,7 @@
+ " " + cdef.sym + "]");
}
- if (taskListener != null) {
+ if (!taskListener.isEmpty()) {
TaskEvent e = new TaskEvent(TaskEvent.Kind.GENERATE, env.toplevel, cdef.sym);
taskListener.started(e);
}
@@ -1464,7 +1462,7 @@
log.useSource(prev);
}
- if (taskListener != null) {
+ if (!taskListener.isEmpty()) {
TaskEvent e = new TaskEvent(TaskEvent.Kind.GENERATE, env.toplevel, cdef.sym);
taskListener.finished(e);
}