net.sourceforge.pmd.lang.java.rule
Class AbstractInefficientZeroCheck

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.AbstractInefficientZeroCheck
All Implemented Interfaces:
JavaParserVisitor, ImmutableLanguage, PropertySource, 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

Field Summary
 
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
AbstractInefficientZeroCheck()
           
 
Method Summary
abstract  boolean appliesToClassName(String name)
           
protected  void checkNodeAndReport(Object data, Node location, 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  boolean isTargetMethod(JavaNameOccurrence occ)
           
 Object visit(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, 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.PropertySource
definePropertyDescriptor, dysfunctionReason, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, setProperty, useDefaultValueFor, usesDefaultValues
 

Constructor Detail

AbstractInefficientZeroCheck

public AbstractInefficientZeroCheck()
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:
visit in interface JavaParserVisitor
Overrides:
visit in class AbstractJavaRule

checkNodeAndReport

protected void checkNodeAndReport(Object data,
                                  Node location,
                                  Node expr)
Checks whether the given expression is a equality/relation expression that compares with a size() call.

Parameters:
data - the rule context
location - the node location to report
expr - the ==, <, > expression


Copyright © 2002-2015 InfoEther. All Rights Reserved.