Interface Renderer

All Superinterfaces:
PropertySource
All Known Implementing Classes:
AbstractAccumulatingRenderer, AbstractIncrementingRenderer, AbstractRenderer, CodeClimateRenderer, CSVRenderer, EmacsRenderer, EmptyRenderer, HTMLRenderer, IDEAJRenderer, JsonRenderer, SarifRenderer, SummaryHTMLRenderer, TextColorRenderer, TextPadRenderer, TextRenderer, VBHTMLRenderer, XMLRenderer, XSLTRenderer, YAHTMLRenderer

public interface Renderer extends PropertySource
This is an interface for rendering a Report. When a Renderer is being invoked, the sequence of method calls is something like the following:
  1. Renderer construction/initialization
  2. setShowSuppressedViolations(boolean)
  3. setWriter(Writer)
  4. start()
  5. startFileAnalysis(TextFile) for each source file processed
  6. renderFileReport(Report) for each Report instance
  7. end()

An implementation of the Renderer interface is expected to have a default constructor. Properties should be defined using the PropertySource.definePropertyDescriptor(PropertyDescriptor) method. After the instance is created, the property values are set. This means, you won't have access to property values in your constructor.

  • Method Details

    • getName

      String getName()
      Get the name of the Renderer.
      Specified by:
      getName in interface PropertySource
      Returns:
      The name of the Renderer.
    • setName

      void setName(String name)
      Set the name of the Renderer.
      Parameters:
      name - The name of the Renderer.
    • getDescription

      String getDescription()
      Get the description of the Renderer.
      Returns:
      The description of the Renderer.
    • defaultFileExtension

      String defaultFileExtension()
      Return the default filename extension to use.
      Returns:
      String
    • setDescription

      void setDescription(String description)
      Set the description of the Renderer.
      Parameters:
      description - The description of the Renderer.
    • isShowSuppressedViolations

      boolean isShowSuppressedViolations()
      Get the indicator for whether to show suppressed violations.
      Returns:
      true if suppressed violations should show, false otherwise.
    • setShowSuppressedViolations

      void setShowSuppressedViolations(boolean showSuppressedViolations)
      Set the indicator for whether to show suppressed violations.
      Parameters:
      showSuppressedViolations - Whether to show suppressed violations.
    • getWriter

      Writer getWriter()
      Get the Writer for the Renderer.
      Returns:
      The Writer.
    • setFileNameRenderer

      void setFileNameRenderer(FileNameRenderer fileNameRenderer)
      Set the FileNameRenderer used to render file paths to the report. Note that this renderer does not have to use the parameter to output paths. Some report formats require a specific format for paths (eg a URI), and are allowed to circumvent the provided strategy.
      Parameters:
      fileNameRenderer - a non-null file name renderer
    • setWriter

      void setWriter(Writer writer)
      Set the Writer for the Renderer.
      Parameters:
      writer - The Writer.
    • start

      void start() throws IOException
      This method is called before any source files are processed. The Renderer will have been fully initialized by the time this method is called, so the Writer and other state will be available.
      Throws:
      IOException
    • startFileAnalysis

      void startFileAnalysis(TextFile dataSource)
      This method is called each time a source file is processed. It is called after start(), but before renderFileReport(Report) and end(). This method may be invoked by different threads which are processing files independently. Therefore, any non-trivial implementation of this method needs to be thread-safe.
      Parameters:
      dataSource - The source file.
    • renderFileReport

      void renderFileReport(Report report) throws IOException
      Render the given file Report. There may be multiple Report instances which need to be rendered if produced by different threads. It is called after start() and startFileAnalysis(TextFile), but before end().
      Parameters:
      report - A file Report.
      Throws:
      IOException
      See Also:
    • end

      void end() throws IOException
      This method is at the very end of the Rendering process, after renderFileReport(Report).
      Throws:
      IOException
    • flush

      void flush() throws IOException
      Throws:
      IOException
    • setReportFile

      void setReportFile(String reportFilename)
      Sets the filename where the report should be written to. If no filename is provided, the renderer should write to stdout.

      Implementations must initialize the writer of the renderer.

      See AbstractRenderer.setReportFile(String) for the default impl.

      Parameters:
      reportFilename - the filename (optional).
    • newListener

      default GlobalAnalysisListener newListener() throws IOException
      Returns a new analysis listener, that handles violations by rendering them in an implementation-defined way.
      Throws:
      IOException