Class GenericClassCounterRule
- java.lang.Object
-
- net.sourceforge.pmd.properties.AbstractPropertySource
-
- net.sourceforge.pmd.lang.rule.AbstractRule
-
- net.sourceforge.pmd.lang.java.rule.AbstractJavaRule
-
- net.sourceforge.pmd.lang.java.rule.design.GenericClassCounterRule
-
- All Implemented Interfaces:
JavaParserVisitor,net.sourceforge.pmd.lang.rule.ImmutableLanguage,net.sourceforge.pmd.properties.PropertySource,net.sourceforge.pmd.Rule
public class GenericClassCounterRule extends AbstractJavaRule
A generic rule that can be configured to "count" classes of certain type based on either their name (full name, prefix, suffixes anything can be matched with a regex), and/or their type.
Example of configurations:
<!-- Property order is MANDATORY !!! --> <!-- Several regexes may be provided to ensure a match... --> <property name="nameMatch" description="a regex on which to match" value="^Abstract.*Bean*$,^*EJB*$"/> <!-- An operand to refine match strategy TODO: Not implemented yet !!! --> <property name"operand" description="" value="and"/> <!-- possible values are and/or --> <!-- Must be a full name to ensure type control !!! --> <property name="typeMatch" description="a regex to match on implements/extends classname" value="javax.servlet.Filter"/> <!-- Define after how many occurences one should log a violation --> <property name="threshold" description="Defines how many occurences are legal" value="2"/> <!-- TODO: Add a parameter to allow "ignore" pattern based on name -->- Author:
- Ryan Gutafson, [email protected], Romain PELISSE, [email protected]
-
-
Constructor Summary
Constructors Constructor Description GenericClassCounterRule()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidend(net.sourceforge.pmd.RuleContext ctx)protected voidinit()voidstart(net.sourceforge.pmd.RuleContext ctx)Objectvisit(ASTClassOrInterfaceType classType, Object data)Objectvisit(ASTCompilationUnit node, Object data)Objectvisit(ASTImportDeclaration node, Object data)-
Methods inherited from class net.sourceforge.pmd.lang.java.rule.AbstractJavaRule
apply, getDeclaringType, importsPackage, isQualifiedName, isSuppressed, 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, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitAll
-
Methods inherited from class net.sourceforge.pmd.lang.rule.AbstractRule
addExample, addRuleChainVisit, addRuleChainVisit, addViolation, addViolation, addViolation, addViolationWithMessage, addViolationWithMessage, addViolationWithMessage, deepCopy, deepCopyValuesTo, equals, getDescription, getExamples, getExternalInfoUrl, getLanguage, getMaximumLanguageVersion, getMessage, getMinimumLanguageVersion, getName, getParserOptions, getPriority, getPropertySourceType, getRuleChainVisits, getRuleClass, getRuleSetName, getSince, hashCode, isDeprecated, isDfa, isMultifile, isRuleChain, isTypeResolution, setDeprecated, setDescription, setDfa, setExternalInfoUrl, setLanguage, setMaximumLanguageVersion, setMessage, setMinimumLanguageVersion, setMultifile, setName, setPriority, setRuleClass, setRuleSetName, setSince, setTypeResolution, setUsesDFA, setUsesMultifile, setUsesTypeResolution, usesDFA, usesMultifile, usesRuleChain, usesTypeResolution
-
Methods inherited from class net.sourceforge.pmd.properties.AbstractPropertySource
copyPropertyDescriptors, copyPropertyValues, definePropertyDescriptor, dysfunctionReason, getOverriddenPropertiesByPropertyDescriptor, getOverriddenPropertyDescriptors, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, isPropertyOverridden, setProperty, setProperty, useDefaultValueFor, usesDefaultValues
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.sourceforge.pmd.properties.PropertySource
definePropertyDescriptor, dysfunctionReason, getOverriddenPropertiesByPropertyDescriptor, getOverriddenPropertyDescriptors, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, isPropertyOverridden, setProperty, setProperty, useDefaultValueFor, usesDefaultValues
-
-
-
-
Method Detail
-
init
protected void init()
-
start
public void start(net.sourceforge.pmd.RuleContext ctx)
- Specified by:
startin interfacenet.sourceforge.pmd.Rule- Overrides:
startin classnet.sourceforge.pmd.lang.rule.AbstractRule
-
visit
public Object visit(ASTCompilationUnit node, Object data)
- Specified by:
visitin interfaceJavaParserVisitor- Overrides:
visitin classAbstractJavaRule
-
visit
public Object visit(ASTImportDeclaration node, Object data)
- Specified by:
visitin interfaceJavaParserVisitor- Overrides:
visitin classAbstractJavaRule
-
visit
public Object visit(ASTClassOrInterfaceType classType, Object data)
- Specified by:
visitin interfaceJavaParserVisitor- Overrides:
visitin classAbstractJavaRule
-
end
public void end(net.sourceforge.pmd.RuleContext ctx)
- Specified by:
endin interfacenet.sourceforge.pmd.Rule- Overrides:
endin classnet.sourceforge.pmd.lang.rule.AbstractRule
-
-