public void run() {
   Context ctx = new Context();
   Options options = Options.instance(ctx);
   outputKind.init(options);
   multiPolicy.init(options);
   xdiagsSource.init(options);
   xdiagsCompact.init(options);
   caretKind.init(options);
   sourceLineKind.init(options);
   String indentString = "";
   indentString = (summaryIndent == IndentKind.CUSTOM) ? "3" : "0";
   indentString += (detailsIndent == IndentKind.CUSTOM) ? "|3" : "|0";
   indentString += (sourceIndent == IndentKind.CUSTOM) ? "|3" : "|0";
   indentString += (subdiagsIndent == IndentKind.CUSTOM) ? "|3" : "|0";
   options.put("diagsIndentation", indentString);
   MyLog log = new MyLog(ctx);
   JavacMessages messages = JavacMessages.instance(ctx);
   messages.add("tester");
   JCDiagnostic.Factory diags = JCDiagnostic.Factory.instance(ctx);
   log.useSource(new MyFileObject("This is a source line"));
   JCDiagnostic d =
       diags.error(null, log.currentSource(), posKind.pos(), errorKind.key(), "Hello!");
   if (multiKind != MultilineKind.NONE) {
     JCDiagnostic sub = diags.fragment(errorKind.key(), "Hello!");
     if (multiKind.isNested()) sub = new JCDiagnostic.MultilineDiagnostic(sub, List.of(sub));
     List<JCDiagnostic> subdiags = multiKind.isDouble() ? List.of(sub, sub) : List.of(sub);
     d = new JCDiagnostic.MultilineDiagnostic(d, subdiags);
   }
   String diag = log.getDiagnosticFormatter().format(d, messages.getCurrentLocale());
   checkOutput(diag);
 }
 public static void main(String[] args) throws Exception {
   for (OutputKind outputKind : OutputKind.values()) {
     for (ErrorKind errKind : ErrorKind.values()) {
       for (MultilineKind multiKind : MultilineKind.values()) {
         for (MultilinePolicy multiPolicy : MultilinePolicy.values()) {
           for (PositionKind posKind : PositionKind.values()) {
             for (XDiagsSource xdiagsSource : XDiagsSource.values()) {
               for (XDiagsCompact xdiagsCompact : XDiagsCompact.values()) {
                 for (CaretKind caretKind : CaretKind.values()) {
                   for (SourceLineKind sourceLineKind : SourceLineKind.values()) {
                     for (IndentKind summaryIndent : IndentKind.values()) {
                       for (IndentKind detailsIndent : IndentKind.values()) {
                         for (IndentKind sourceIndent : IndentKind.values()) {
                           for (IndentKind subdiagsIndent : IndentKind.values()) {
                             new T6769027(
                                     outputKind,
                                     errKind,
                                     multiKind,
                                     multiPolicy,
                                     posKind,
                                     xdiagsSource,
                                     xdiagsCompact,
                                     caretKind,
                                     sourceLineKind,
                                     summaryIndent,
                                     detailsIndent,
                                     sourceIndent,
                                     subdiagsIndent)
                                 .run();
                           }
                         }
                       }
                     }
                   }
                 }
               }
             }
           }
         }
       }
     }
   }
 }