Interface DiagnosticReporter

All Known Implementing Classes:
AbstractDiagnosticReporter, CodeQualityReporter, ConsoleReporter, GenericIssueReporter, JsonReporter, JUnitReporter, SarifReporter, TSLintReporter

public interface DiagnosticReporter
Репортёр результатов анализа: формирует отчёт в своём формате (JSON, JUnit XML, SARIF и т.д.).

Отчёт формируется потоково. Результат каждого файла поступает отдельным вызовом accept(FileInfo) сразу после его разбора и должен быть записан немедленно: накапливать FileInfo нельзя, иначе на большой конфигурации отчёт не поместится в память. Если формату нужны сводные данные, копить следует агрегаты, а не сами результаты.

Порядок файлов — порядок завершения их разбора, он недетерминирован.

Потоки. Все методы вызываются последовательно и из одного потока, поэтому состояние репортёра (открытый файл, генератор) не требует синхронизации.

Жизненный цикл. beginReport(ReportContext, Path) вызывается один раз, затем произвольное число раз accept(FileInfo), затем ровно один из endReport() (успех) или abortReport() (прерывание).

  • Method Summary

    Modifier and Type
    Method
    Description
    default void
    Прервать отчёт: освободить ресурсы и не оставлять недописанный файл.
    void
    accept(FileInfo fileInfo)
    Записать результат одного файла.
    void
    beginReport(ReportContext context, Path outputDir)
    Начать отчёт: открыть файл, записать заголовок.
    void
    Завершить отчёт: дописать концовку и зафиксировать файл.
    default boolean
    Признак того, что репортеру для формирования отчета необходимы метрики документов.
    key()
    Получить ключ (идентификатор) репортера.
  • Method Details

    • key

      String key()
      Получить ключ (идентификатор) репортера.
      Returns:
      Уникальный ключ репортера
    • beginReport

      void beginReport(ReportContext context, Path outputDir)
      Начать отчёт: открыть файл, записать заголовок.
      Parameters:
      context - сведения об анализе
      outputDir - каталог для сохранения отчёта
    • accept

      void accept(FileInfo fileInfo)
      Записать результат одного файла.
      Parameters:
      fileInfo - результаты анализа файла; после возврата из метода не сохраняется
    • endReport

      void endReport()
      Завершить отчёт: дописать концовку и зафиксировать файл.
    • abortReport

      default void abortReport()
      Прервать отчёт: освободить ресурсы и не оставлять недописанный файл.

      Вызывается на пути обработки ошибки, поэтому исключений не бросает. Реализация по умолчанию ничего не делает — она подходит репортёрам, которым нечего откатывать.

    • isMetricCalculationRequired

      default boolean isMetricCalculationRequired()
      Признак того, что репортеру для формирования отчета необходимы метрики документов.

      Значение по умолчанию — false. Переопределяется в true только теми репортерами, которые действительно включают метрики в отчет (в файл или иной вывод). Это позволяет пропустить вычисление метрик, если ни один из активных репортеров их не использует.

      Returns:
      true, если репортеру нужны метрики документов, иначе false