Interface FileAnalysisListener

All Superinterfaces:
AutoCloseable
All Known Implementing Classes:
CloseHookFileListener, Report.ReportBuilderListener

public interface FileAnalysisListener extends AutoCloseable
A handler for events occurring during analysis of a single file. Instances are only used on a single thread for their entire lifetime, so don't need to be synchronized to access state they own. File listeners are spawned by a GlobalAnalysisListener.

Listeners are assumed to be ready to receive events as soon as they are constructed.

See Also:
  • Method Details

    • onRuleViolation

      void onRuleViolation(RuleViolation violation)
      Handle a new violation (not suppressed).
    • onSuppressedRuleViolation

      default void onSuppressedRuleViolation(Report.SuppressedViolation violation)
      Handle a new suppressed violation.
    • onError

      default void onError(Report.ProcessingError error)
      Handle an error that occurred while processing a file.
    • close

      default void close() throws Exception
      Signals the end of the analysis: no further calls will be made to this listener. This is run in the thread the listener has been used in. This means, if this routine merges some state into some global state of the GlobalAnalysisListener, then that must be synchronized.
      Specified by:
      close in interface AutoCloseable
      Throws:
      Exception - If an exception occurs, e.g. IOException when writing to a renderer
    • noop

      static FileAnalysisListener noop()
      A listener that does nothing.
    • tee

      static FileAnalysisListener tee(Collection<? extends FileAnalysisListener> listeners)
      Produce an analysis listener that forwards all events to the given listeners.
      Parameters:
      listeners - Listeners
      Returns:
      A new listener
      Throws:
      IllegalArgumentException - If the parameter is empty
      NullPointerException - If the parameter or any of its elements is null