src/share/classes/com/sun/tools/javac/main/JavaCompiler.java

changeset 1210
62e611704863
parent 1197
237198ef45f5
child 1230
b14d9583ce92
     1.1 --- a/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Tue Feb 28 10:25:53 2012 -0800
     1.2 +++ b/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Tue Feb 28 10:33:49 2012 -0800
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -28,8 +28,8 @@
    1.11  import java.io.*;
    1.12  import java.util.HashMap;
    1.13  import java.util.HashSet;
    1.14 +import java.util.LinkedHashMap;
    1.15  import java.util.LinkedHashSet;
    1.16 -import java.util.LinkedHashMap;
    1.17  import java.util.Map;
    1.18  import java.util.MissingResourceException;
    1.19  import java.util.Queue;
    1.20 @@ -41,13 +41,13 @@
    1.21  
    1.22  import javax.annotation.processing.Processor;
    1.23  import javax.lang.model.SourceVersion;
    1.24 +import javax.tools.DiagnosticListener;
    1.25  import javax.tools.JavaFileManager;
    1.26  import javax.tools.JavaFileObject;
    1.27 -import javax.tools.DiagnosticListener;
    1.28 +import static javax.tools.StandardLocation.CLASS_OUTPUT;
    1.29  
    1.30  import com.sun.source.util.TaskEvent;
    1.31 -import com.sun.source.util.TaskListener;
    1.32 -
    1.33 +import com.sun.tools.javac.api.MultiTaskListener;
    1.34  import com.sun.tools.javac.code.*;
    1.35  import com.sun.tools.javac.code.Lint.LintCategory;
    1.36  import com.sun.tools.javac.code.Symbol.*;
    1.37 @@ -60,8 +60,6 @@
    1.38  import com.sun.tools.javac.tree.JCTree.*;
    1.39  import com.sun.tools.javac.util.*;
    1.40  import com.sun.tools.javac.util.Log.WriterKind;
    1.41 -
    1.42 -import static javax.tools.StandardLocation.CLASS_OUTPUT;
    1.43  import static com.sun.tools.javac.main.Option.*;
    1.44  import static com.sun.tools.javac.util.JCDiagnostic.DiagnosticFlag.*;
    1.45  import static com.sun.tools.javac.util.ListBuffer.lb;
    1.46 @@ -289,9 +287,9 @@
    1.47       */
    1.48      protected ParserFactory parserFactory;
    1.49  
    1.50 -    /** Optional listener for progress events
    1.51 +    /** Broadcasting listener for progress events
    1.52       */
    1.53 -    protected TaskListener taskListener;
    1.54 +    protected MultiTaskListener taskListener;
    1.55  
    1.56      /**
    1.57       * Annotation processing may require and provide a new instance
    1.58 @@ -356,7 +354,7 @@
    1.59          lower = Lower.instance(context);
    1.60          annotate = Annotate.instance(context);
    1.61          types = Types.instance(context);
    1.62 -        taskListener = context.get(TaskListener.class);
    1.63 +        taskListener = MultiTaskListener.instance(context);
    1.64  
    1.65          reader.sourceCompleter = this;
    1.66  
    1.67 @@ -592,7 +590,7 @@
    1.68              if (verbose) {
    1.69                  log.printVerbose("parsing.started", filename);
    1.70              }
    1.71 -            if (taskListener != null) {
    1.72 +            if (!taskListener.isEmpty()) {
    1.73                  TaskEvent e = new TaskEvent(TaskEvent.Kind.PARSE, filename);
    1.74                  taskListener.started(e);
    1.75              }
    1.76 @@ -605,7 +603,7 @@
    1.77  
    1.78          tree.sourcefile = filename;
    1.79  
    1.80 -        if (content != null && taskListener != null) {
    1.81 +        if (content != null && !taskListener.isEmpty()) {
    1.82              TaskEvent e = new TaskEvent(TaskEvent.Kind.PARSE, tree);
    1.83              taskListener.finished(e);
    1.84          }
    1.85 @@ -751,14 +749,14 @@
    1.86              log.useSource(prev);
    1.87          }
    1.88  
    1.89 -        if (taskListener != null) {
    1.90 +        if (!taskListener.isEmpty()) {
    1.91              TaskEvent e = new TaskEvent(TaskEvent.Kind.ENTER, tree);
    1.92              taskListener.started(e);
    1.93          }
    1.94  
    1.95          enter.complete(List.of(tree), c);
    1.96  
    1.97 -        if (taskListener != null) {
    1.98 +        if (!taskListener.isEmpty()) {
    1.99              TaskEvent e = new TaskEvent(TaskEvent.Kind.ENTER, tree);
   1.100              taskListener.finished(e);
   1.101          }
   1.102 @@ -924,7 +922,7 @@
   1.103       */
   1.104      public List<JCCompilationUnit> enterTrees(List<JCCompilationUnit> roots) {
   1.105          //enter symbols for all files
   1.106 -        if (taskListener != null) {
   1.107 +        if (!taskListener.isEmpty()) {
   1.108              for (JCCompilationUnit unit: roots) {
   1.109                  TaskEvent e = new TaskEvent(TaskEvent.Kind.ENTER, unit);
   1.110                  taskListener.started(e);
   1.111 @@ -933,7 +931,7 @@
   1.112  
   1.113          enter.main(roots);
   1.114  
   1.115 -        if (taskListener != null) {
   1.116 +        if (!taskListener.isEmpty()) {
   1.117              for (JCCompilationUnit unit: roots) {
   1.118                  TaskEvent e = new TaskEvent(TaskEvent.Kind.ENTER, unit);
   1.119                  taskListener.finished(e);
   1.120 @@ -1002,7 +1000,7 @@
   1.121                  reader.saveParameterNames = true;
   1.122                  keepComments = true;
   1.123                  genEndPos = true;
   1.124 -                if (taskListener != null)
   1.125 +                if (!taskListener.isEmpty())
   1.126                      taskListener.started(new TaskEvent(TaskEvent.Kind.ANNOTATION_PROCESSING));
   1.127                  log.deferDiagnostics = true;
   1.128              } else { // free resources
   1.129 @@ -1017,7 +1015,7 @@
   1.130      }
   1.131  
   1.132      /**
   1.133 -     * Process any anotations found in the specifed compilation units.
   1.134 +     * Process any annotations found in the specified compilation units.
   1.135       * @param roots a list of compilation units
   1.136       * @return an instance of the compiler in which to complete the compilation
   1.137       */
   1.138 @@ -1176,7 +1174,7 @@
   1.139          if (verbose)
   1.140              log.printVerbose("checking.attribution", env.enclClass.sym);
   1.141  
   1.142 -        if (taskListener != null) {
   1.143 +        if (!taskListener.isEmpty()) {
   1.144              TaskEvent e = new TaskEvent(TaskEvent.Kind.ANALYZE, env.toplevel, env.enclClass.sym);
   1.145              taskListener.started(e);
   1.146          }
   1.147 @@ -1259,7 +1257,7 @@
   1.148              }
   1.149          }
   1.150          finally {
   1.151 -            if (taskListener != null) {
   1.152 +            if (!taskListener.isEmpty()) {
   1.153                  TaskEvent e = new TaskEvent(TaskEvent.Kind.ANALYZE, env.toplevel, env.enclClass.sym);
   1.154                  taskListener.finished(e);
   1.155              }
   1.156 @@ -1440,7 +1438,7 @@
   1.157                                 + " " + cdef.sym + "]");
   1.158              }
   1.159  
   1.160 -            if (taskListener != null) {
   1.161 +            if (!taskListener.isEmpty()) {
   1.162                  TaskEvent e = new TaskEvent(TaskEvent.Kind.GENERATE, env.toplevel, cdef.sym);
   1.163                  taskListener.started(e);
   1.164              }
   1.165 @@ -1464,7 +1462,7 @@
   1.166                  log.useSource(prev);
   1.167              }
   1.168  
   1.169 -            if (taskListener != null) {
   1.170 +            if (!taskListener.isEmpty()) {
   1.171                  TaskEvent e = new TaskEvent(TaskEvent.Kind.GENERATE, env.toplevel, cdef.sym);
   1.172                  taskListener.finished(e);
   1.173              }

mercurial