Class AbstractInefficientZeroCheck
- java.lang.Object
-
- net.sourceforge.pmd.properties.AbstractPropertySource
-
- net.sourceforge.pmd.lang.rule.AbstractRule
-
- net.sourceforge.pmd.lang.java.rule.AbstractJavaRule
-
- net.sourceforge.pmd.lang.java.rule.AbstractInefficientZeroCheck
-
- All Implemented Interfaces:
JavaParserVisitor,net.sourceforge.pmd.lang.rule.ImmutableLanguage,net.sourceforge.pmd.properties.PropertySource,net.sourceforge.pmd.Rule
- Direct Known Subclasses:
InefficientEmptyStringCheckRule,UseCollectionIsEmptyRule
public abstract class AbstractInefficientZeroCheck extends AbstractJavaRule
This is an abstract rule for patterns which compare a method invocation to 0. It could be further abstracted to find code that compares something to another definable pattern- Author:
- acaplan
-
-
Constructor Summary
Constructors Constructor Description AbstractInefficientZeroCheck()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract booleanappliesToClassName(String name)protected voidcheckNodeAndReport(Object data, net.sourceforge.pmd.lang.ast.Node location, net.sourceforge.pmd.lang.ast.Node expr)Checks whether the given expression is a equality/relation expression that compares with a size() call.Map<String,List<String>>getComparisonTargets()For each relation/equality operator, comparison targets need to define.abstract booleanisTargetMethod(JavaNameOccurrence occ)Objectvisit(ASTVariableDeclaratorId node, Object data)-
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, 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, deepCopy, deepCopyValuesTo, end, equals, getDescription, getExamples, getExternalInfoUrl, getLanguage, getMaximumLanguageVersion, getMessage, getMinimumLanguageVersion, getName, getParserOptions, getPriority, getPropertySourceType, getRuleChainVisits, getRuleClass, getRuleSetName, getSince, hashCode, isDeprecated, isDfa, isMultifile, isRuleChain, isTypeResolution, setDeprecated, setDescription, setDfa, setExternalInfoUrl, setLanguage, setMaximumLanguageVersion, setMessage, setMinimumLanguageVersion, setMultifile, setName, setPriority, setRuleClass, setRuleSetName, setSince, setTypeResolution, setUsesDFA, setUsesMultifile, setUsesTypeResolution, start, usesDFA, usesMultifile, usesRuleChain, usesTypeResolution
-
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, finalize, getClass, 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
-
-
-
-
Method Detail
-
appliesToClassName
public abstract boolean appliesToClassName(String name)
-
isTargetMethod
public abstract boolean isTargetMethod(JavaNameOccurrence occ)
-
getComparisonTargets
public Map<String,List<String>> getComparisonTargets()
For each relation/equality operator, comparison targets need to define.- Returns:
- map
-
visit
public Object visit(ASTVariableDeclaratorId node, Object data)
- Specified by:
visitin interfaceJavaParserVisitor- Overrides:
visitin classAbstractJavaRule
-
checkNodeAndReport
protected void checkNodeAndReport(Object data, net.sourceforge.pmd.lang.ast.Node location, net.sourceforge.pmd.lang.ast.Node expr)
Checks whether the given expression is a equality/relation expression that compares with a size() call.- Parameters:
data- the rule contextlocation- the node location to reportexpr- the ==, <, > expression
-
-