github.phpd.cn/thought-machine/please@v12.2.0+incompatible/tools/javac_worker/src/build/please/compile/DiagnosticReporter.java (about)

     1  package build.please.compile;
     2  
     3  import java.util.Locale;
     4  
     5  import javax.tools.Diagnostic;
     6  import javax.tools.DiagnosticListener;
     7  import javax.tools.JavaFileObject;
     8  
     9  import build.please.worker.WorkerProto;
    10  
    11  class DiagnosticReporter implements DiagnosticListener<JavaFileObject> {
    12  
    13    private final WorkerProto.BuildResponse.Builder responseBuilder;
    14  
    15    DiagnosticReporter(WorkerProto.BuildResponse.Builder responseBuilder) {
    16      this.responseBuilder = responseBuilder;
    17    }
    18  
    19    @Override
    20    public void report(Diagnostic<? extends JavaFileObject> diagnostic) {
    21      // No i18n here obviously...
    22      if (diagnostic.getSource() != null) {
    23        responseBuilder.addMessages(diagnostic.getSource().getName() + ":" + diagnostic.getLineNumber() + ":" +
    24            diagnostic.getColumnNumber() + ": " + diagnostic.getMessage(Locale.ENGLISH));
    25      } else {
    26        responseBuilder.addMessages(diagnostic.getMessage(Locale.ENGLISH));
    27      }
    28    }
    29  }