net.sourceforge.pmd.lang.java.rule.logging
Class GuardLogStatementRule

java.lang.Object
  extended by net.sourceforge.pmd.AbstractPropertySource
      extended by net.sourceforge.pmd.lang.rule.AbstractRule
          extended by net.sourceforge.pmd.lang.java.rule.AbstractJavaRule
              extended by net.sourceforge.pmd.lang.java.rule.optimizations.AbstractOptimizationRule
                  extended by net.sourceforge.pmd.lang.java.rule.logging.GuardLogStatementRule
All Implemented Interfaces:
JavaParserVisitor, ImmutableLanguage, PropertySource, Rule
Direct Known Subclasses:
GuardDebugLoggingRule, GuardLogStatementJavaUtilRule

public class GuardLogStatementRule
extends AbstractOptimizationRule
implements Rule

Check that log.debug, log.trace, log.error, etc... statements are guarded by some test expression on log.isDebugEnabled() or log.isTraceEnabled().

Author:
Romain Pelisse - , Heiko Rupp - , Tammo van Lessen - provided original XPath expression

Field Summary
static StringMultiProperty GUARD_METHODS
           
protected  Map<String,String> guardStmtByLogLevel
           
static StringMultiProperty LOG_LEVELS
           
 
Fields inherited from class net.sourceforge.pmd.AbstractPropertySource
propertyDescriptors, propertyValuesByDescriptor
 
Fields inherited from interface net.sourceforge.pmd.Rule
VIOLATION_SUPPRESS_REGEX_DESCRIPTOR, VIOLATION_SUPPRESS_XPATH_DESCRIPTOR
 
Constructor Summary
GuardLogStatementRule()
           
 
Method Summary
protected  void buildGuardStatementMap(List<String> logLevels, List<String> guardMethods)
           
protected  void extractProperties()
           
protected  void findViolationForEachLogStatement(ASTCompilationUnit unit, Object data, String xpathExpression)
           
 Object visit(ASTCompilationUnit unit, Object data)
           
 
Methods inherited from class net.sourceforge.pmd.lang.java.rule.optimizations.AbstractOptimizationRule
assigned, visit
 
Methods inherited from class net.sourceforge.pmd.lang.java.rule.AbstractJavaRule
apply, getDeclaringType, importsPackage, isQualifiedName, isSuppressed, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitAll
 
Methods inherited from class net.sourceforge.pmd.lang.rule.AbstractRule
addExample, addRuleChainVisit, addRuleChainVisit, addViolation, addViolation, addViolation, addViolationWithMessage, addViolationWithMessage, addViolationWithMessage, deepCopyValuesTo, end, equals, getDescription, getExamples, getExternalInfoUrl, getLanguage, getMaximumLanguageVersion, getMessage, getMinimumLanguageVersion, getName, getParserOptions, getPriority, getRuleChainVisits, getRuleClass, getRuleSetName, getSince, hashCode, isDeprecated, setDeprecated, setDescription, setExternalInfoUrl, setLanguage, setMaximumLanguageVersion, setMessage, setMinimumLanguageVersion, setName, setPriority, setRuleClass, setRuleSetName, setSince, setUsesDFA, setUsesTypeResolution, start, usesDFA, usesRuleChain, usesTypeResolution
 
Methods inherited from class net.sourceforge.pmd.AbstractPropertySource
copyPropertyDescriptors, copyPropertyValues, definePropertyDescriptor, dysfunctionReason, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, setProperty, useDefaultValueFor, usesDefaultValues
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.sourceforge.pmd.Rule
addExample, addRuleChainVisit, addRuleChainVisit, apply, end, getDescription, getExamples, getExternalInfoUrl, getLanguage, getMaximumLanguageVersion, getMessage, getMinimumLanguageVersion, getName, getParserOptions, getPriority, getRuleChainVisits, getRuleClass, getRuleSetName, getSince, isDeprecated, setDeprecated, setDescription, setExternalInfoUrl, setLanguage, setMaximumLanguageVersion, setMessage, setMinimumLanguageVersion, setName, setPriority, setRuleClass, setRuleSetName, setSince, setUsesDFA, setUsesTypeResolution, start, usesDFA, usesRuleChain, usesTypeResolution
 
Methods inherited from interface net.sourceforge.pmd.PropertySource
definePropertyDescriptor, dysfunctionReason, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, setProperty, useDefaultValueFor, usesDefaultValues
 

Field Detail

LOG_LEVELS

public static final StringMultiProperty LOG_LEVELS

GUARD_METHODS

public static final StringMultiProperty GUARD_METHODS

guardStmtByLogLevel

protected Map<String,String> guardStmtByLogLevel
Constructor Detail

GuardLogStatementRule

public GuardLogStatementRule()
Method Detail

visit

public Object visit(ASTCompilationUnit unit,
                    Object data)
Specified by:
visit in interface JavaParserVisitor
Overrides:
visit in class AbstractJavaRule

findViolationForEachLogStatement

protected void findViolationForEachLogStatement(ASTCompilationUnit unit,
                                                Object data,
                                                String xpathExpression)

extractProperties

protected void extractProperties()

buildGuardStatementMap

protected void buildGuardStatementMap(List<String> logLevels,
                                      List<String> guardMethods)


Copyright © 2002-2015 InfoEther. All Rights Reserved.