/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.lang.apex.rule.complexity; import net.sourceforge.pmd.lang.apex.ast.ApexNode; import net.sourceforge.pmd.lang.apex.rule.AbstractStatisticalApexRule; import net.sourceforge.pmd.stat.DataPoint; public class ExcessiveLengthRule extends AbstractStatisticalApexRule { private Class<?> nodeClass; public ExcessiveLengthRule(Class<?> nodeClass) { this.nodeClass = nodeClass; } @Override public Object visit(ApexNode<?> node, Object data) { if (nodeClass.isInstance(node)) { DataPoint point = new DataPoint(); point.setNode(node); point.setScore(1.0 * (node.getEndLine() - node.getBeginLine())); point.setMessage(getMessage()); addDataPoint(point); } return node.childrenAccept(this, data); } }