net.sourceforge.pmd.rules
Class ExcessivePublicCountRule

java.lang.Object
  extended bynet.sourceforge.pmd.ast.JavaParserVisitorAdapter
      extended bynet.sourceforge.pmd.AbstractRule
          extended bynet.sourceforge.pmd.stat.StatisticalRule
              extended bynet.sourceforge.pmd.rules.design.ExcessiveNodeCountRule
                  extended bynet.sourceforge.pmd.rules.ExcessivePublicCountRule
All Implemented Interfaces:
JavaParserVisitor, Rule

public class ExcessivePublicCountRule
extends ExcessiveNodeCountRule

Author:
aglover Class Name: ExcessivePublicCountRule Rule attempts to count all public methods and public attributes defined in a class. If a class has a high number of public operations, it might be wise to consider whether it would be appropriate to divide it into subclasses. A large proportion of public members and operations means the class has high potential to be affected by external classes. Futhermore, increased effort will be required to thoroughly test the class.

Field Summary
 
Fields inherited from class net.sourceforge.pmd.rules.design.ExcessiveNodeCountRule
 
Fields inherited from class net.sourceforge.pmd.stat.StatisticalRule
DELTA
 
Fields inherited from class net.sourceforge.pmd.AbstractRule
 
Fields inherited from interface net.sourceforge.pmd.Rule
LOWEST_PRIORITY, PRIORITIES
 
Constructor Summary
ExcessivePublicCountRule()
           
 
Method Summary
private  java.lang.Integer getTallyOnAccessType(AccessNode node)
          Method counts a node if it is public
 java.lang.Object visit(ASTFieldDeclaration node, java.lang.Object data)
          Method counts ONLY public class attributes which are not PUBLIC and static- these usually represent constants....
 java.lang.Object visit(ASTMethodDeclarator node, java.lang.Object data)
          Method counts ONLY public methods.
 
Methods inherited from class net.sourceforge.pmd.rules.design.ExcessiveNodeCountRule
visit
 
Methods inherited from class net.sourceforge.pmd.stat.StatisticalRule
addDataPoint, apply, applyMinimumValue, applyTopScore, getMean, getStdDev, makeViolations
 
Methods inherited from class net.sourceforge.pmd.AbstractRule
addProperty, createRuleViolation, createRuleViolation, equals, getBooleanProperty, getDescription, getDoubleProperty, getExample, getIntProperty, getMessage, getName, getPriority, getPriorityName, getProperties, getStringProperty, hashCode, hasProperty, include, setDescription, setExample, setInclude, setMessage, setName, setPriority, 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
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExcessivePublicCountRule

public ExcessivePublicCountRule()
Method Detail

visit

public java.lang.Object visit(ASTMethodDeclarator node,
                              java.lang.Object data)
Method counts ONLY public methods.

Specified by:
visit in interface JavaParserVisitor
Overrides:
visit in class JavaParserVisitorAdapter

visit

public java.lang.Object visit(ASTFieldDeclaration node,
                              java.lang.Object data)
Method counts ONLY public class attributes which are not PUBLIC and static- these usually represent constants....

Specified by:
visit in interface JavaParserVisitor
Overrides:
visit in class JavaParserVisitorAdapter

getTallyOnAccessType

private java.lang.Integer getTallyOnAccessType(AccessNode node)
Method counts a node if it is public

Returns:
Integer 1 if node is public 0 otherwise