Package net.sourceforge.pmd.renderers
Class AbstractAccumulatingRenderer
- java.lang.Object
-
- net.sourceforge.pmd.properties.AbstractPropertySource
-
- net.sourceforge.pmd.renderers.AbstractRenderer
-
- net.sourceforge.pmd.renderers.AbstractAccumulatingRenderer
-
- All Implemented Interfaces:
PropertySource
,Renderer
- Direct Known Subclasses:
SummaryHTMLRenderer
,TextColorRenderer
,YAHTMLRenderer
public abstract class AbstractAccumulatingRenderer extends AbstractRenderer
Abstract base class forRenderer
implementations which only produce output once all source files are processed. SuchRenderer
s use working memory proportional to the number of violations found, which can be quite large in some scenarios. Consider usingAbstractIncrementingRenderer
which can use significantly less memory. Subclasses should implement theend()
method to output thereport
.- See Also:
AbstractIncrementingRenderer
-
-
Field Summary
Fields Modifier and Type Field Description protected Report
report
The accumulated Report.-
Fields inherited from class net.sourceforge.pmd.renderers.AbstractRenderer
description, inputPathPrefixes, name, showSuppressedViolations, writer
-
Fields inherited from class net.sourceforge.pmd.properties.AbstractPropertySource
propertyDescriptors, propertyValuesByDescriptor
-
-
Constructor Summary
Constructors Constructor Description AbstractAccumulatingRenderer(String name, String description)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract void
end()
Subclasses should output thereport
.void
renderFileReport(Report report)
Render the given file Report.void
start()
This method is called before any source files are processed.void
startFileAnalysis(DataSource dataSource)
This method is called each time a source file is processed.-
Methods inherited from class net.sourceforge.pmd.renderers.AbstractRenderer
determineFileName, flush, getDescription, getName, getPropertySourceType, getWriter, isShowSuppressedViolations, setDescription, setName, setReportFile, setShowSuppressedViolations, setUseShortNames, setWriter
-
Methods inherited from class net.sourceforge.pmd.properties.AbstractPropertySource
copyPropertyDescriptors, copyPropertyValues, definePropertyDescriptor, dysfunctionReason, getOverriddenPropertiesByPropertyDescriptor, getOverriddenPropertyDescriptors, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, isPropertyOverridden, setProperty, setProperty, useDefaultValueFor, usesDefaultValues
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.sourceforge.pmd.properties.PropertySource
definePropertyDescriptor, dysfunctionReason, getOverriddenPropertiesByPropertyDescriptor, getOverriddenPropertyDescriptors, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, isPropertyOverridden, setProperty, setProperty, useDefaultValueFor, usesDefaultValues
-
Methods inherited from interface net.sourceforge.pmd.renderers.Renderer
defaultFileExtension
-
-
-
-
Field Detail
-
report
protected Report report
The accumulated Report.
-
-
Method Detail
-
start
public void start() throws IOException
Description copied from interface:Renderer
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
public void startFileAnalysis(DataSource dataSource)
Description copied from interface:Renderer
This method is called each time a source file is processed. It is called afterRenderer.start()
, but beforeRenderer.renderFileReport(Report)
andRenderer.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
public void renderFileReport(Report report) throws IOException
Description copied from interface:Renderer
Render the given file Report. There may be multiple Report instances which need to be rendered if produced by different threads. It is called afterRenderer.start()
andRenderer.startFileAnalysis(DataSource)
, but beforeRenderer.end()
.- Parameters:
report
- A file Report.- Throws:
IOException
- See Also:
Report
-
end
public abstract void end() throws IOException
Subclasses should output thereport
. This method is at the very end of the Rendering process, afterRenderer.renderFileReport(Report)
.- Throws:
IOException
-
-