Interface DiagnosticReporter
- All Known Implementing Classes:
AbstractDiagnosticReporter, CodeQualityReporter, ConsoleReporter, GenericIssueReporter, JsonReporter, JUnitReporter, SarifReporter, TSLintReporter
Отчёт формируется потоково. Результат каждого файла поступает отдельным вызовом
accept(FileInfo) сразу после его разбора и должен быть записан немедленно:
накапливать FileInfo нельзя, иначе на большой конфигурации отчёт не поместится в память.
Если формату нужны сводные данные, копить следует агрегаты, а не сами результаты.
Порядок файлов — порядок завершения их разбора, он недетерминирован.
Потоки. Все методы вызываются последовательно и из одного потока, поэтому состояние репортёра (открытый файл, генератор) не требует синхронизации.
Жизненный цикл. beginReport(ReportContext, Path) вызывается один раз, затем произвольное число раз
accept(FileInfo), затем ровно один из endReport() (успех) или abortReport()
(прерывание).
-
Method Summary
Modifier and TypeMethodDescriptiondefault voidПрервать отчёт: освободить ресурсы и не оставлять недописанный файл.voidЗаписать результат одного файла.voidbeginReport(ReportContext context, Path outputDir) Начать отчёт: открыть файл, записать заголовок.voidЗавершить отчёт: дописать концовку и зафиксировать файл.default booleanПризнак того, что репортеру для формирования отчета необходимы метрики документов.key()Получить ключ (идентификатор) репортера.
-
Method Details
-
key
-
beginReport
Начать отчёт: открыть файл, записать заголовок.- Parameters:
context- сведения об анализеoutputDir- каталог для сохранения отчёта
-
accept
Записать результат одного файла.- Parameters:
fileInfo- результаты анализа файла; после возврата из метода не сохраняется
-
endReport
void endReport()Завершить отчёт: дописать концовку и зафиксировать файл. -
abortReport
default void abortReport()Прервать отчёт: освободить ресурсы и не оставлять недописанный файл.Вызывается на пути обработки ошибки, поэтому исключений не бросает. Реализация по умолчанию ничего не делает — она подходит репортёрам, которым нечего откатывать.
-
isMetricCalculationRequired
default boolean isMetricCalculationRequired()Признак того, что репортеру для формирования отчета необходимы метрики документов.Значение по умолчанию —
false. Переопределяется вtrueтолько теми репортерами, которые действительно включают метрики в отчет (в файл или иной вывод). Это позволяет пропустить вычисление метрик, если ни один из активных репортеров их не использует.- Returns:
true, если репортеру нужны метрики документов, иначеfalse
-