Package com.puppycrawl.tools.checkstyle
Class Checker
- java.lang.Object
-
- com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
-
- com.puppycrawl.tools.checkstyle.Checker
-
- All Implemented Interfaces:
Configurable
,Contextualizable
,MessageDispatcher
,RootModule
public class Checker extends AbstractAutomaticBean implements MessageDispatcher, RootModule
This class provides the functionality to check a set of files.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
AbstractAutomaticBean.OutputStreamOptions
-
-
Field Summary
Fields Modifier and Type Field Description private String
basedir
The basedir to strip off in file names.private BeforeExecutionFileFilterSet
beforeExecutionFileFilters
The audit event before execution file filters.private PropertyCacheFile
cacheFile
Cache file.private String
charset
Name of a charset.private Context
childContext
The context of all child components.private SeverityLevelCounter
counter
Maintains error count.static String
EXCEPTION_MSG
Message to use when an exception occurs and should be printed as a violation.private static String
EXTENSION_SEPARATOR
The extension separator.private String[]
fileExtensions
The file extensions that are accepted.private List<FileSetCheck>
fileSetChecks
Vector of fileset checks.private FilterSet
filters
The audit event filters.private boolean
haltOnException
Controls whether exceptions should halt execution or not.private List<AuditListener>
listeners
Vector of listeners.private String
localeCountry
Locale country to report messages .private String
localeLanguage
Locale language to report messages .private org.apache.commons.logging.Log
log
Logger for Checker.private ClassLoader
moduleClassLoader
The classloader used for loading Checkstyle module classes.private ModuleFactory
moduleFactory
The factory for instantiating submodules.private SeverityLevel
severity
The severity level of any violations found by submodules.private int
tabWidth
The tab width for column reporting.
-
Constructor Summary
Constructors Constructor Description Checker()
Creates a newChecker
instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
acceptFileStarted(String fileName)
Check if all before execution file filters accept starting the file.void
addBeforeExecutionFileFilter(BeforeExecutionFileFilter filter)
Adds a before execution file filter to the end of the event chain.void
addFileSetCheck(FileSetCheck fileSetCheck)
Adds a FileSetCheck to the list of FileSetChecks that is executed in process().void
addFilter(Filter filter)
Adds a filter to the end of the audit event filter chain.void
addListener(AuditListener listener)
Add the listener that will be used to receive events from the audit.void
clearCache()
Clears the cache.void
destroy()
Cleans up the object.protected void
finishLocalSetup()
Provides a hook to finish the part of this component's setup that was not handled by the bean introspection.private void
fireAuditFinished()
Notify all listeners about the audit end.private void
fireAuditStarted()
Notify all listeners about the audit start.void
fireErrors(String fileName, SortedSet<Violation> errors)
Notify all listeners about the errors in a file.void
fireFileFinished(String fileName)
Notify all listeners about the end of a file audit.void
fireFileStarted(String fileName)
Notify all listeners about the beginning of a file audit.private Set<String>
getExternalResourceLocations()
Returns a set of external configuration resource locations which are used by all file set checks and filters.private String
getLocalizedMessage(String messageKey, Object... args)
Extracts localized messages from properties files.int
process(List<File> files)
Processes a set of files.private SortedSet<Violation>
processFile(File file)
Processes a file with all FileSetChecks.private void
processFiles(List<File> files)
Processes a list of files with all FileSetChecks.void
removeBeforeExecutionFileFilter(BeforeExecutionFileFilter filter)
Removes before execution file filter.void
removeFilter(Filter filter)
Removes filter.void
removeListener(AuditListener listener)
Removes a given listener.void
setBasedir(String basedir)
Sets base directory.void
setCacheFile(String fileName)
Sets cache file.void
setCharset(String charset)
Sets a named charset.void
setFileExtensions(String... extensions)
Sets the file extensions that identify the files that pass the filter of this FileSetCheck.void
setHaltOnException(boolean haltOnException)
Sets the field haltOnException.void
setLocaleCountry(String localeCountry)
Sets locale country.void
setLocaleLanguage(String localeLanguage)
Sets locale language.void
setModuleClassLoader(ClassLoader moduleClassLoader)
Sets the classloader used to load Checkstyle core and custom module classes when the module tree is being built up.void
setModuleFactory(ModuleFactory moduleFactory)
Sets the factory for creating submodules.void
setSeverity(String severity)
Sets the severity level.void
setTabWidth(int tabWidth)
Set the tab width to report audit events with.protected void
setupChild(Configuration childConf)
Called by configure() for every child of this component's Configuration.-
Methods inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
configure, contextualize, getConfiguration
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.puppycrawl.tools.checkstyle.api.Configurable
configure
-
-
-
-
Field Detail
-
EXCEPTION_MSG
public static final String EXCEPTION_MSG
Message to use when an exception occurs and should be printed as a violation.- See Also:
- Constant Field Values
-
EXTENSION_SEPARATOR
private static final String EXTENSION_SEPARATOR
The extension separator.- See Also:
- Constant Field Values
-
log
private final org.apache.commons.logging.Log log
Logger for Checker.
-
counter
private final SeverityLevelCounter counter
Maintains error count.
-
listeners
private final List<AuditListener> listeners
Vector of listeners.
-
fileSetChecks
private final List<FileSetCheck> fileSetChecks
Vector of fileset checks.
-
beforeExecutionFileFilters
private final BeforeExecutionFileFilterSet beforeExecutionFileFilters
The audit event before execution file filters.
-
localeCountry
private String localeCountry
Locale country to report messages .
-
localeLanguage
private String localeLanguage
Locale language to report messages .
-
moduleFactory
private ModuleFactory moduleFactory
The factory for instantiating submodules.
-
moduleClassLoader
private ClassLoader moduleClassLoader
The classloader used for loading Checkstyle module classes.
-
childContext
private Context childContext
The context of all child components.
-
fileExtensions
private String[] fileExtensions
The file extensions that are accepted.
-
severity
private SeverityLevel severity
The severity level of any violations found by submodules. The value of this property is passed to submodules via contextualize().Note: Since the Checker is merely a container for modules it does not make sense to implement logging functionality here. Consequently, Checker does not extend AbstractViolationReporter, leading to a bit of duplicated code for severity level setting.
-
cacheFile
private PropertyCacheFile cacheFile
Cache file.
-
haltOnException
private boolean haltOnException
Controls whether exceptions should halt execution or not.
-
tabWidth
private int tabWidth
The tab width for column reporting.
-
-
Constructor Detail
-
Checker
public Checker()
Creates a newChecker
instance. The instance needs to be contextualized and configured.
-
-
Method Detail
-
setCacheFile
public void setCacheFile(String fileName) throws IOException
Sets cache file.- Parameters:
fileName
- the cache file.- Throws:
IOException
- if there are some problems with file loading.
-
removeBeforeExecutionFileFilter
public void removeBeforeExecutionFileFilter(BeforeExecutionFileFilter filter)
Removes before execution file filter.- Parameters:
filter
- before execution file filter to remove.
-
removeFilter
public void removeFilter(Filter filter)
Removes filter.- Parameters:
filter
- filter to remove.
-
destroy
public void destroy()
Description copied from interface:RootModule
Cleans up the object.- Specified by:
destroy
in interfaceRootModule
-
removeListener
public void removeListener(AuditListener listener)
Removes a given listener.- Parameters:
listener
- a listener to remove
-
setBasedir
public void setBasedir(String basedir)
Sets base directory.- Parameters:
basedir
- the base directory to strip off in file names
-
process
public int process(List<File> files) throws CheckstyleException
Description copied from interface:RootModule
Processes a set of files. Once this is done, it is highly recommended to call for the destroy method to close and remove the listeners.- Specified by:
process
in interfaceRootModule
- Parameters:
files
- the list of files to be audited.- Returns:
- the total number of audit events with error severity found
- Throws:
CheckstyleException
- if error condition within Checkstyle occurs- See Also:
RootModule.destroy()
-
getExternalResourceLocations
private Set<String> getExternalResourceLocations()
Returns a set of external configuration resource locations which are used by all file set checks and filters.- Returns:
- a set of external configuration resource locations which are used by all file set checks and filters.
-
fireAuditStarted
private void fireAuditStarted()
Notify all listeners about the audit start.
-
fireAuditFinished
private void fireAuditFinished()
Notify all listeners about the audit end.
-
processFiles
private void processFiles(List<File> files) throws CheckstyleException
Processes a list of files with all FileSetChecks.- Parameters:
files
- a list of files to process.- Throws:
CheckstyleException
- if error condition within Checkstyle occurs.Error
- wraps any java.lang.Error happened during execution
-
processFile
private SortedSet<Violation> processFile(File file) throws CheckstyleException
Processes a file with all FileSetChecks.- Parameters:
file
- a file to process.- Returns:
- a sorted set of violations to be logged.
- Throws:
CheckstyleException
- if error condition within Checkstyle occurs.
-
acceptFileStarted
private boolean acceptFileStarted(String fileName)
Check if all before execution file filters accept starting the file.- Parameters:
fileName
- the file to be audited- Returns:
true
if the file is accepted.
-
fireFileStarted
public void fireFileStarted(String fileName)
Notify all listeners about the beginning of a file audit.- Specified by:
fireFileStarted
in interfaceMessageDispatcher
- Parameters:
fileName
- the file to be audited
-
fireErrors
public void fireErrors(String fileName, SortedSet<Violation> errors)
Notify all listeners about the errors in a file.- Specified by:
fireErrors
in interfaceMessageDispatcher
- Parameters:
fileName
- the audited fileerrors
- the audit errors from the file
-
fireFileFinished
public void fireFileFinished(String fileName)
Notify all listeners about the end of a file audit.- Specified by:
fireFileFinished
in interfaceMessageDispatcher
- Parameters:
fileName
- the audited file
-
finishLocalSetup
protected void finishLocalSetup() throws CheckstyleException
Description copied from class:AbstractAutomaticBean
Provides a hook to finish the part of this component's setup that was not handled by the bean introspection.The default implementation does nothing.
- Specified by:
finishLocalSetup
in classAbstractAutomaticBean
- Throws:
CheckstyleException
- if there is a configuration error.
-
setupChild
protected void setupChild(Configuration childConf) throws CheckstyleException
Called by configure() for every child of this component's Configuration.The default implementation throws
Creates child module.CheckstyleException
ifchildConf
isnull
because it doesn't support children. It must be overridden to validate and support children that are wanted.- Overrides:
setupChild
in classAbstractAutomaticBean
- Parameters:
childConf
- a child of this component's Configuration- Throws:
CheckstyleException
- if there is a configuration error.- See Also:
Configuration.getChildren()
-
addFileSetCheck
public void addFileSetCheck(FileSetCheck fileSetCheck)
Adds a FileSetCheck to the list of FileSetChecks that is executed in process().- Parameters:
fileSetCheck
- the additional FileSetCheck
-
addBeforeExecutionFileFilter
public void addBeforeExecutionFileFilter(BeforeExecutionFileFilter filter)
Adds a before execution file filter to the end of the event chain.- Parameters:
filter
- the additional filter
-
addFilter
public void addFilter(Filter filter)
Adds a filter to the end of the audit event filter chain.- Parameters:
filter
- the additional filter
-
addListener
public final void addListener(AuditListener listener)
Description copied from interface:RootModule
Add the listener that will be used to receive events from the audit.- Specified by:
addListener
in interfaceRootModule
- Parameters:
listener
- the nosy thing
-
setFileExtensions
public final void setFileExtensions(String... extensions)
Sets the file extensions that identify the files that pass the filter of this FileSetCheck.- Parameters:
extensions
- the set of file extensions. A missing initial '.' character of an extension is automatically added.
-
setModuleFactory
public void setModuleFactory(ModuleFactory moduleFactory)
Sets the factory for creating submodules.- Parameters:
moduleFactory
- the factory for creating FileSetChecks
-
setLocaleCountry
public void setLocaleCountry(String localeCountry)
Sets locale country.- Parameters:
localeCountry
- the country to report messages
-
setLocaleLanguage
public void setLocaleLanguage(String localeLanguage)
Sets locale language.- Parameters:
localeLanguage
- the language to report messages
-
setSeverity
public final void setSeverity(String severity)
Sets the severity level. The string should be one of the names defined in theSeverityLevel
class.- Parameters:
severity
- The new severity level- See Also:
SeverityLevel
-
setModuleClassLoader
public final void setModuleClassLoader(ClassLoader moduleClassLoader)
Description copied from interface:RootModule
Sets the classloader used to load Checkstyle core and custom module classes when the module tree is being built up. If no custom ModuleFactory is being set for the root module then this module classloader must be specified.- Specified by:
setModuleClassLoader
in interfaceRootModule
- Parameters:
moduleClassLoader
- the classloader used to load module classes
-
setCharset
public void setCharset(String charset) throws UnsupportedEncodingException
Sets a named charset.- Parameters:
charset
- the name of a charset- Throws:
UnsupportedEncodingException
- if charset is unsupported.
-
setHaltOnException
public void setHaltOnException(boolean haltOnException)
Sets the field haltOnException.- Parameters:
haltOnException
- the new value.
-
setTabWidth
public final void setTabWidth(int tabWidth)
Set the tab width to report audit events with.- Parameters:
tabWidth
- anint
value
-
clearCache
public void clearCache()
Clears the cache.
-
getLocalizedMessage
private String getLocalizedMessage(String messageKey, Object... args)
Extracts localized messages from properties files.- Parameters:
messageKey
- the key pointing to localized message in respective properties file.args
- the arguments of message in respective properties file.- Returns:
- a string containing extracted localized message
-
-