Class AbstractSunSecureRule
- 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.bestpractices.AbstractSunSecureRule
-
- All Implemented Interfaces:
JavaParserVisitor,net.sourceforge.pmd.lang.rule.ImmutableLanguage,net.sourceforge.pmd.properties.PropertySource,net.sourceforge.pmd.Rule
- Direct Known Subclasses:
ArrayIsStoredDirectlyRule,MethodReturnsInternalArrayRule
public abstract class AbstractSunSecureRule extends AbstractJavaRule
Utility methods for the package Created on Jan 17, 2005- Author:
- mgriffa
-
-
Constructor Summary
Constructors Constructor Description AbstractSunSecureRule()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected StringgetFirstNameImage(net.sourceforge.pmd.lang.ast.Node n)Gets the image of the ASTName node found byNode.getFirstDescendantOfType(Class)if it is the greatgrandchild of the given node.protected StringgetReturnedVariableName(ASTReturnStatement ret)Gets the name of the variable returned.protected booleanisField(String varName, ASTAnyTypeDeclaration typeDeclaration)Tells if the type declaration has a field with varName.protected booleanisLocalVariable(String vn, net.sourceforge.pmd.lang.ast.Node node)TODO modify usages to use symbol table Tells if the variable name is a local variable declared in the method.-
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, visitAll
-
Methods inherited from class net.sourceforge.pmd.lang.rule.AbstractRule
addExample, addRuleChainVisit, addRuleChainVisit, addViolation, addViolation, addViolation, addViolationWithMessage, addViolationWithMessage, addViolationWithMessage, deepCopy, deepCopyValuesTo, end, 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, start, 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
-
isField
protected final boolean isField(String varName, ASTAnyTypeDeclaration typeDeclaration)
Tells if the type declaration has a field with varName.- Parameters:
varName- the name of the field to searchtypeDeclaration- the type declaration- Returns:
trueif there is a field in the type declaration named varName,falsein other case
-
getReturnedVariableName
protected final String getReturnedVariableName(ASTReturnStatement ret)
Gets the name of the variable returned. Some examples:
for this.foo returns foo
for foo returns foo
for foo.bar returns foo.bar- Parameters:
ret- a return statement to evaluate- Returns:
- the name of the variable associated or
nullif it cannot be detected
-
isLocalVariable
protected boolean isLocalVariable(String vn, net.sourceforge.pmd.lang.ast.Node node)
TODO modify usages to use symbol table Tells if the variable name is a local variable declared in the method.- Parameters:
vn- the variable namenode- the ASTMethodDeclaration where the local variable name will be searched- Returns:
trueif the method declaration contains any local variable named vn andfalsein other case
-
getFirstNameImage
protected String getFirstNameImage(net.sourceforge.pmd.lang.ast.Node n)
Gets the image of the ASTName node found byNode.getFirstDescendantOfType(Class)if it is the greatgrandchild of the given node. E.g.n = Expression || StatementExpression PrimaryExpression PrimaryPrefix Name- Parameters:
n- the node to search- Returns:
- the image of the first ASTName or
null
-
-