Class ReportSession

java.lang.Object
com.github._1c_syntax.bsl.languageserver.reporters.ReportSession
All Implemented Interfaces:
AutoCloseable

public final class ReportSession extends Object implements AutoCloseable
Формирование отчётов активными репортёрами от начала анализа до его завершения.

Результаты передаются по одному через accept(FileInfo) и раздаются всем репортёрам. Запись выполняется в отдельном потоке: вызывающий не ждёт ввода-вывода, а FileInfo освобождается сразу после того, как его записали все репортёры.

Отчёты считаются полными только после commit(). Закрытие без фиксации — как и сбой записи — прерывает отчёты: недописанные файлы не остаются на диске.

  • Method Summary

    Modifier and Type
    Method
    Description
    void
    accept(FileInfo fileInfo)
    Передать результаты анализа файла всем репортёрам.
    void
    Дождаться записи всех переданных результатов и завершить отчёты.
    void
    Пометить анализ успешно завершённым.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • accept

      public void accept(FileInfo fileInfo)
      Передать результаты анализа файла всем репортёрам.

      Возврат из метода не означает, что данные записаны: вызов лишь ставит запись в очередь и не ждёт ни её выполнения, ни ввода-вывода.

      Parameters:
      fileInfo - результаты анализа одного файла
    • commit

      public void commit()
      Пометить анализ успешно завершённым. Без этого отчёты будут прерваны при закрытии.
    • close

      public void close()
      Дождаться записи всех переданных результатов и завершить отчёты.
      Specified by:
      close in interface AutoCloseable
      Throws:
      RuntimeException - если запись или завершение отчёта не удались