net.sourceforge.pmd.rules.design
Class UseCollectionIsEmpty

java.lang.Object
  extended bynet.sourceforge.pmd.ast.JavaParserVisitorAdapter
      extended bynet.sourceforge.pmd.AbstractRule
          extended bynet.sourceforge.pmd.rules.AbstractInefficientZeroCheck
              extended bynet.sourceforge.pmd.rules.design.UseCollectionIsEmpty
All Implemented Interfaces:
JavaParserVisitor, Rule

public class UseCollectionIsEmpty
extends AbstractInefficientZeroCheck

Detect structures like "foo.size() == 0" and suggest replacing them with foo.isEmpty(). Will also find != 0 (replacable with !isEmpty()).

Author:
Jason Bennett

Field Summary
 
Fields inherited from class net.sourceforge.pmd.AbstractRule
description, example, externalInfoUrl, include, message, name, priority, properties, ruleSetName, usesDFA, usesTypeResolution
 
Fields inherited from interface net.sourceforge.pmd.Rule
LOWEST_PRIORITY, PRIORITIES
 
Constructor Summary
UseCollectionIsEmpty()
           
 
Method Summary
 boolean appliesToClassName(java.lang.String name)
           
 boolean isTargetMethod(NameOccurrence occ)
          Determine if we're dealing with .size method
 
Methods inherited from class net.sourceforge.pmd.rules.AbstractInefficientZeroCheck
visit
 
Methods inherited from class net.sourceforge.pmd.AbstractRule
addProperties, addProperty, addViolation, addViolation, addViolation, addViolationWithMessage, apply, asFixedMap, asFixedMap, equals, getBooleanProperties, getBooleanProperty, getBooleanProperty, getDeclaringType, getDescription, getDoubleProperties, getDoubleProperty, getDoubleProperty, getExample, getExternalInfoUrl, getIntProperties, getIntProperty, getIntProperty, getMessage, getName, getPriority, getPriorityName, getProperties, getRuleSetName, getStringProperties, getStringProperty, getStringProperty, getTypeProperties, getTypeProperty, hashCode, hasProperty, importsPackage, include, isQualifiedName, propertiesByName, propertyDescriptorFor, setBooleanProperty, setDescription, setExample, setExternalInfoUrl, setInclude, setMessage, setName, setPriority, setProperties, setProperty, setRuleSetName, setUsesDFA, setUsesTypeResolution, usesDFA, usesTypeResolution, visitAll
 
Methods inherited from class net.sourceforge.pmd.ast.JavaParserVisitorAdapter
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UseCollectionIsEmpty

public UseCollectionIsEmpty()
Method Detail

appliesToClassName

public boolean appliesToClassName(java.lang.String name)
Specified by:
appliesToClassName in class AbstractInefficientZeroCheck

isTargetMethod

public boolean isTargetMethod(NameOccurrence occ)
Determine if we're dealing with .size method

Specified by:
isTargetMethod in class AbstractInefficientZeroCheck
Parameters:
occ - The name occurance
Returns:
true if it's .length, else false


Copyright © 2002-2006 InfoEther. All Rights Reserved.