|
|
|
@ -10,7 +10,129 @@ import net.sourceforge.pmd.RuleContext;
|
|
|
|
|
import net.sourceforge.pmd.lang.LanguageRegistry;
|
|
|
|
|
import net.sourceforge.pmd.lang.ast.Node;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.JavaLanguageModule;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.*;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTAdditiveExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTAllocationExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTAndExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTAnnotation;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTAnnotationMethodDeclaration;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTAnnotationTypeBody;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTAnnotationTypeDeclaration;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTAnnotationTypeMemberDeclaration;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTArgumentList;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTArguments;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTArrayDimsAndInits;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTArrayInitializer;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTAssertStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTAssignmentOperator;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTBlock;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTBlockStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTBooleanLiteral;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTBreakStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTCastExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTCatchStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceBody;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceBodyDeclaration;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceDeclaration;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceType;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTConditionalAndExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTConditionalExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTConditionalOrExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTConstructorDeclaration;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTContinueStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTDefaultValue;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTDoStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTEmptyStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTEnumBody;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTEnumConstant;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTEnumDeclaration;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTEqualityExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTExclusiveOrExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTExplicitConstructorInvocation;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTExtendsList;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTFieldDeclaration;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTFinallyStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTForInit;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTForStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTForUpdate;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTFormalParameter;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTFormalParameters;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTIfStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTImplementsList;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTImportDeclaration;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTInclusiveOrExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTInitializer;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTInstanceOfExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTLabeledStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTLambdaExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTLiteral;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTLocalVariableDeclaration;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTMarkerAnnotation;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTMemberSelector;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTMemberValue;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTMemberValueArrayInitializer;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTMemberValuePair;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTMemberValuePairs;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTMethodDeclaration;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTMethodDeclarator;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTMethodReference;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTModuleDeclaration;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTModuleDirective;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTModuleName;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTMultiplicativeExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTName;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTNameList;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTNormalAnnotation;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTNullLiteral;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTPackageDeclaration;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTPostfixExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTPreDecrementExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTPreIncrementExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTPrimaryExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTPrimaryPrefix;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTPrimarySuffix;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTPrimitiveType;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTRSIGNEDSHIFT;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTRUNSIGNEDSHIFT;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTReferenceType;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTRelationalExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTResource;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTResourceSpecification;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTResources;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTResultType;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTReturnStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTShiftExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTSingleMemberAnnotation;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTStatementExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTStatementExpressionList;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTSwitchExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTSwitchLabel;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTSwitchLabeledBlock;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTSwitchLabeledExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTSwitchLabeledThrowStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTSwitchStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTSynchronizedStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTThrowStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTTryStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTType;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTTypeArgument;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTTypeArguments;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTTypeBound;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTTypeDeclaration;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTTypeParameter;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTTypeParameters;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTUnaryExpression;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTUnaryExpressionNotPlusMinus;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTVariableDeclarator;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTVariableDeclaratorId;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTVariableInitializer;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTWhileStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTWildcardBounds;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.ASTYieldStatement;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.JavaNode;
|
|
|
|
|
import net.sourceforge.pmd.lang.java.ast.JavaParserVisitor;
|
|
|
|
|
import net.sourceforge.pmd.lang.rule.AbstractRule;
|
|
|
|
|
import net.sourceforge.pmd.lang.rule.ImmutableLanguage;
|
|
|
|
|
|
|
|
|
@ -92,7 +214,9 @@ public abstract class AbstractJavaRule extends AbstractRule implements JavaParse
|
|
|
|
|
//
|
|
|
|
|
@Override
|
|
|
|
|
public Object visit(JavaNode node, Object data) {
|
|
|
|
|
node.childrenAccept(this, data);
|
|
|
|
|
for (int i = 0; i < node.jjtGetNumChildren(); ++i) {
|
|
|
|
|
node.getChild(i).jjtAccept(this, data);
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|