/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.lang.apex.rule.complexity; import static apex.jorje.semantic.symbol.type.AnnotationTypeInfos.IS_TEST; import net.sourceforge.pmd.lang.apex.ast.ASTUserClass; /** * This rule detects when a class exceeds a certain threshold. i.e. if a class * has more than 1000 lines of code. */ public class ExcessiveClassLengthRule extends ExcessiveLengthRule { public ExcessiveClassLengthRule() { super(ASTUserClass.class); setProperty(MINIMUM_DESCRIPTOR, 1000d); setProperty(CODECLIMATE_CATEGORIES, new String[] { "Complexity" }); setProperty(CODECLIMATE_REMEDIATION_MULTIPLIER, 150); setProperty(CODECLIMATE_BLOCK_HIGHLIGHTING, false); } @Override public Object visit(ASTUserClass node, Object data) { if (node.getNode().getModifiers().getModifiers().not(IS_TEST)) { return super.visit(node, data); } return data; } }