KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sourceforge > pmd > rules > design > UseCollectionIsEmpty


1 /**
2  * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3  */

4 package net.sourceforge.pmd.rules.design;
5
6 import net.sourceforge.pmd.ast.SimpleNode;
7 import net.sourceforge.pmd.rules.AbstractInefficientZeroCheck;
8 import net.sourceforge.pmd.symboltable.NameOccurrence;
9 import net.sourceforge.pmd.util.CollectionUtil;
10
11 /**
12  * Detect structures like "foo.size() == 0" and suggest replacing them with
13  * foo.isEmpty(). Will also find != 0 (replacable with !isEmpty()).
14  *
15  * @author Jason Bennett
16  */

17 public class UseCollectionIsEmpty extends AbstractInefficientZeroCheck {
18     
19     public boolean appliesToClassName(String JavaDoc name){
20         return CollectionUtil.isCollectionType(name, true);
21     }
22     
23     /**
24      * Determine if we're dealing with .size method
25      *
26      * @param occ
27      * The name occurance
28      * @return true if it's .length, else false
29      */

30     public boolean isTargetMethod(NameOccurrence occ) {
31         if (occ.getNameForWhichThisIsAQualifier() != null) {
32             if (((SimpleNode) occ.getLocation()).getImage().endsWith(".size")) {
33                 return true;
34             }
35         }
36         return false;
37     }
38 }
39
Popular Tags