org.acm.seguin.pmd.rules.design
Class SwitchDensityRule

java.lang.Object
  extended by net.sourceforge.jrefactory.parser.JavaParserVisitorAdapter
      extended by org.acm.seguin.pmd.AbstractRule
          extended by org.acm.seguin.pmd.stat.StatisticalRule
              extended by org.acm.seguin.pmd.rules.design.SwitchDensityRule
All Implemented Interfaces:
net.sourceforge.jrefactory.parser.JavaParserVisitor, Rule

public class SwitchDensityRule
extends StatisticalRule

Author:
dpeugh Switch Density - This is the number of statements over the number of cases within a switch. The higher the value, the more work each case is doing. Its my theory, that when the Switch Density is high, you should start looking at Subclasses or State Pattern to alleviate the problem.

Field Summary
 
Fields inherited from class org.acm.seguin.pmd.stat.StatisticalRule
DELTA
 
Fields inherited from interface org.acm.seguin.pmd.Rule
LOWEST_PRIORITY, PRIORITIES
 
Constructor Summary
SwitchDensityRule()
           
 
Method Summary
 java.lang.Object visit(net.sourceforge.jrefactory.ast.ASTStatement statement, java.lang.Object data)
          To visit a node
 java.lang.Object visit(net.sourceforge.jrefactory.ast.ASTSwitchLabel switchLabel, java.lang.Object data)
          To visit a node
 java.lang.Object visit(net.sourceforge.jrefactory.ast.ASTSwitchStatement node, java.lang.Object data)
          To visit a node
 
Methods inherited from class org.acm.seguin.pmd.stat.StatisticalRule
addDataPoint, apply, applyMinimumValue, applyTopScore, getMean, getStdDev, makeViolations
 
Methods inherited from class org.acm.seguin.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, visit, visitAll
 
Methods inherited from class net.sourceforge.jrefactory.parser.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
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SwitchDensityRule

public SwitchDensityRule()
Method Detail

visit

public java.lang.Object visit(net.sourceforge.jrefactory.ast.ASTSwitchStatement node,
                              java.lang.Object data)
Description copied from class: net.sourceforge.jrefactory.parser.JavaParserVisitorAdapter
To visit a node

Specified by:
visit in interface net.sourceforge.jrefactory.parser.JavaParserVisitor
Overrides:
visit in class net.sourceforge.jrefactory.parser.JavaParserVisitorAdapter
Parameters:
node - The node we are visiting
data - The rename type data
Returns:
The rename type data

visit

public java.lang.Object visit(net.sourceforge.jrefactory.ast.ASTStatement statement,
                              java.lang.Object data)
Description copied from class: net.sourceforge.jrefactory.parser.JavaParserVisitorAdapter
To visit a node

Specified by:
visit in interface net.sourceforge.jrefactory.parser.JavaParserVisitor
Overrides:
visit in class net.sourceforge.jrefactory.parser.JavaParserVisitorAdapter
Parameters:
statement - The node we are visiting
data - The rename type data
Returns:
The rename type data

visit

public java.lang.Object visit(net.sourceforge.jrefactory.ast.ASTSwitchLabel switchLabel,
                              java.lang.Object data)
Description copied from class: net.sourceforge.jrefactory.parser.JavaParserVisitorAdapter
To visit a node

Specified by:
visit in interface net.sourceforge.jrefactory.parser.JavaParserVisitor
Overrides:
visit in class net.sourceforge.jrefactory.parser.JavaParserVisitorAdapter
Parameters:
switchLabel - The node we are visiting
data - The rename type data
Returns:
The rename type data