From b88ddf41c03ca009dea879bdaafd6ddcb6085fcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fournier?= Date: Tue, 28 Apr 2020 08:38:10 +0200 Subject: [PATCH] Add generic visitor interface in pmd-core Replace SideEffectingVisitor with JavaVisitor The new visitor is generic. We don't actually need the old Object->Object visitor, this could just be the new generic visitor but erased Port language level checker Move delegators Remove old accept methods Remove reduced adapter Cleanup some visitor Make ant wrapper replace old visitor completely Doc Add DeprecatedUntil700 annotation Add top interface for visitors Convert JSP visitors Checkstyle Fix java module --- javacc-wrapper.xml | 23 +- .../pmd/annotation/DeprecatedUntil700.java | 14 + .../sourceforge/pmd/lang/ast/AstVisitor.java | 36 ++ .../pmd/lang/ast/AstVisitorBase.java | 57 +++ .../net/sourceforge/pmd/lang/ast/Node.java | 21 + .../sourceforge/pmd/lang/ast/NodeStream.java | 20 + .../lang/java/ast/ASTAdditiveExpression.java | 9 +- .../java/ast/ASTAllocationExpression.java | 9 +- .../pmd/lang/java/ast/ASTAndExpression.java | 9 +- .../pmd/lang/java/ast/ASTAnnotation.java | 9 +- .../ast/ASTAnnotationMethodDeclaration.java | 9 +- .../lang/java/ast/ASTAnnotationTypeBody.java | 8 +- .../ast/ASTAnnotationTypeDeclaration.java | 9 +- .../ASTAnnotationTypeMemberDeclaration.java | 8 +- .../pmd/lang/java/ast/ASTArgumentList.java | 8 +- .../pmd/lang/java/ast/ASTArguments.java | 9 +- .../lang/java/ast/ASTArrayDimsAndInits.java | 9 +- .../lang/java/ast/ASTArrayInitializer.java | 9 +- .../pmd/lang/java/ast/ASTAssertStatement.java | 9 +- .../lang/java/ast/ASTAssignmentOperator.java | 9 +- .../pmd/lang/java/ast/ASTBlock.java | 9 +- .../pmd/lang/java/ast/ASTBlockStatement.java | 9 +- .../pmd/lang/java/ast/ASTBooleanLiteral.java | 9 +- .../pmd/lang/java/ast/ASTBreakStatement.java | 9 +- .../pmd/lang/java/ast/ASTCastExpression.java | 9 +- .../pmd/lang/java/ast/ASTCatchStatement.java | 10 +- .../java/ast/ASTClassOrInterfaceBody.java | 9 +- .../ASTClassOrInterfaceBodyDeclaration.java | 8 +- .../ast/ASTClassOrInterfaceDeclaration.java | 7 +- .../java/ast/ASTClassOrInterfaceType.java | 8 +- .../pmd/lang/java/ast/ASTCompilationUnit.java | 9 +- .../java/ast/ASTConditionalAndExpression.java | 8 +- .../java/ast/ASTConditionalExpression.java | 8 +- .../java/ast/ASTConditionalOrExpression.java | 9 +- .../java/ast/ASTConstructorDeclaration.java | 9 +- .../lang/java/ast/ASTContinueStatement.java | 9 +- .../pmd/lang/java/ast/ASTDefaultValue.java | 9 +- .../pmd/lang/java/ast/ASTDoStatement.java | 8 +- .../pmd/lang/java/ast/ASTEmptyStatement.java | 9 +- .../pmd/lang/java/ast/ASTEnumBody.java | 9 +- .../pmd/lang/java/ast/ASTEnumConstant.java | 9 +- .../pmd/lang/java/ast/ASTEnumDeclaration.java | 9 +- .../lang/java/ast/ASTEqualityExpression.java | 9 +- .../java/ast/ASTExclusiveOrExpression.java | 9 +- .../ast/ASTExplicitConstructorInvocation.java | 9 +- .../pmd/lang/java/ast/ASTExpression.java | 9 +- .../pmd/lang/java/ast/ASTExtendsList.java | 9 +- .../lang/java/ast/ASTFieldDeclaration.java | 9 +- .../lang/java/ast/ASTFinallyStatement.java | 9 +- .../pmd/lang/java/ast/ASTForInit.java | 9 +- .../pmd/lang/java/ast/ASTForStatement.java | 8 +- .../pmd/lang/java/ast/ASTForUpdate.java | 7 +- .../pmd/lang/java/ast/ASTFormalParameter.java | 8 +- .../lang/java/ast/ASTFormalParameters.java | 9 +- .../pmd/lang/java/ast/ASTIfStatement.java | 8 +- .../pmd/lang/java/ast/ASTImplementsList.java | 9 +- .../lang/java/ast/ASTImportDeclaration.java | 7 +- .../java/ast/ASTInclusiveOrExpression.java | 8 +- .../pmd/lang/java/ast/ASTInitializer.java | 9 +- .../java/ast/ASTInstanceOfExpression.java | 8 +- .../lang/java/ast/ASTLabeledStatement.java | 9 +- .../lang/java/ast/ASTLambdaExpression.java | 8 +- .../pmd/lang/java/ast/ASTLiteral.java | 9 +- .../java/ast/ASTLocalVariableDeclaration.java | 9 +- .../lang/java/ast/ASTMarkerAnnotation.java | 8 +- .../pmd/lang/java/ast/ASTMemberSelector.java | 9 +- .../pmd/lang/java/ast/ASTMemberValue.java | 7 +- .../ast/ASTMemberValueArrayInitializer.java | 9 +- .../pmd/lang/java/ast/ASTMemberValuePair.java | 7 +- .../lang/java/ast/ASTMemberValuePairs.java | 8 +- .../lang/java/ast/ASTMethodDeclaration.java | 9 +- .../lang/java/ast/ASTMethodDeclarator.java | 9 +- .../pmd/lang/java/ast/ASTMethodReference.java | 9 +- .../lang/java/ast/ASTModuleDeclaration.java | 9 +- .../pmd/lang/java/ast/ASTModuleDirective.java | 9 +- .../pmd/lang/java/ast/ASTModuleName.java | 9 +- .../java/ast/ASTMultiplicativeExpression.java | 8 +- .../pmd/lang/java/ast/ASTName.java | 9 +- .../pmd/lang/java/ast/ASTNameList.java | 9 +- .../lang/java/ast/ASTNormalAnnotation.java | 8 +- .../pmd/lang/java/ast/ASTNullLiteral.java | 8 +- .../lang/java/ast/ASTPackageDeclaration.java | 9 +- .../lang/java/ast/ASTPostfixExpression.java | 10 +- .../java/ast/ASTPreDecrementExpression.java | 9 +- .../java/ast/ASTPreIncrementExpression.java | 8 +- .../lang/java/ast/ASTPrimaryExpression.java | 9 +- .../pmd/lang/java/ast/ASTPrimaryPrefix.java | 9 +- .../pmd/lang/java/ast/ASTPrimarySuffix.java | 9 +- .../pmd/lang/java/ast/ASTPrimitiveType.java | 8 +- .../pmd/lang/java/ast/ASTRSIGNEDSHIFT.java | 9 +- .../pmd/lang/java/ast/ASTRUNSIGNEDSHIFT.java | 9 +- .../pmd/lang/java/ast/ASTRecordBody.java | 7 +- .../pmd/lang/java/ast/ASTRecordComponent.java | 7 +- .../lang/java/ast/ASTRecordComponentList.java | 7 +- .../ast/ASTRecordConstructorDeclaration.java | 7 +- .../lang/java/ast/ASTRecordDeclaration.java | 7 +- .../pmd/lang/java/ast/ASTReferenceType.java | 10 +- .../java/ast/ASTRelationalExpression.java | 9 +- .../pmd/lang/java/ast/ASTResource.java | 9 +- .../java/ast/ASTResourceSpecification.java | 9 +- .../pmd/lang/java/ast/ASTResources.java | 9 +- .../pmd/lang/java/ast/ASTResultType.java | 8 +- .../pmd/lang/java/ast/ASTReturnStatement.java | 9 +- .../pmd/lang/java/ast/ASTShiftExpression.java | 9 +- .../java/ast/ASTSingleMemberAnnotation.java | 10 +- .../pmd/lang/java/ast/ASTStatement.java | 9 +- .../lang/java/ast/ASTStatementExpression.java | 9 +- .../java/ast/ASTStatementExpressionList.java | 9 +- .../lang/java/ast/ASTSwitchExpression.java | 8 +- .../pmd/lang/java/ast/ASTSwitchLabel.java | 7 +- .../lang/java/ast/ASTSwitchLabeledBlock.java | 7 +- .../java/ast/ASTSwitchLabeledExpression.java | 8 +- .../ast/ASTSwitchLabeledThrowStatement.java | 8 +- .../pmd/lang/java/ast/ASTSwitchStatement.java | 9 +- .../java/ast/ASTSynchronizedStatement.java | 9 +- .../pmd/lang/java/ast/ASTThrowStatement.java | 9 +- .../pmd/lang/java/ast/ASTTryStatement.java | 8 +- .../pmd/lang/java/ast/ASTType.java | 9 +- .../pmd/lang/java/ast/ASTTypeArgument.java | 8 +- .../pmd/lang/java/ast/ASTTypeArguments.java | 9 +- .../pmd/lang/java/ast/ASTTypeBound.java | 8 +- .../pmd/lang/java/ast/ASTTypeDeclaration.java | 8 +- .../pmd/lang/java/ast/ASTTypeParameter.java | 8 +- .../pmd/lang/java/ast/ASTTypeParameters.java | 9 +- .../pmd/lang/java/ast/ASTTypeTestPattern.java | 8 +- .../pmd/lang/java/ast/ASTUnaryExpression.java | 8 +- .../ast/ASTUnaryExpressionNotPlusMinus.java | 9 +- .../lang/java/ast/ASTVariableDeclarator.java | 8 +- .../java/ast/ASTVariableDeclaratorId.java | 8 +- .../lang/java/ast/ASTVariableInitializer.java | 8 +- .../pmd/lang/java/ast/ASTWhileStatement.java | 8 +- .../pmd/lang/java/ast/ASTWildcardBounds.java | 8 +- .../pmd/lang/java/ast/ASTYieldStatement.java | 8 +- .../pmd/lang/java/ast/AbstractJavaNode.java | 13 + .../pmd/lang/java/ast/DummyJavaNode.java | 8 +- .../pmd/lang/java/ast/JavaNode.java | 17 +- .../pmd/lang/java/ast/JavaParserVisitor.java | 25 ++ .../java/ast/JavaParserVisitorAdapter.java | 104 ++++- .../ast/JavaParserVisitorReducedAdapter.java | 71 ---- .../pmd/lang/java/ast/JavaVisitorBase.java | 375 ++++++++++++++++++ .../java/ast/SideEffectingVisitorAdapter.java | 45 --- .../ast/internal/LanguageLevelChecker.java | 146 ++++--- .../java/internal/JavaDesignerBindings.java | 15 +- .../java/metrics/internal/CycloMetric.java | 5 +- .../java/metrics/internal/NcssMetric.java | 2 +- .../java/metrics/internal/NpathMetric.java | 2 +- .../internal/visitors/CycloVisitor.java | 60 +-- .../internal/visitors/NpathBaseVisitor.java | 4 +- .../visitors/TccAttributeAccessCollector.java | 4 +- .../java/qname/QualifiedNameResolver.java | 4 +- .../design/CouplingBetweenObjectsRule.java | 4 +- .../errorprone/MoreThanOneLoggerRule.java | 4 +- .../pmd/lang/java/ast/AccessNodeTest.java | 9 +- .../java/metrics/ProjectMemoizerTest.java | 4 +- pmd-jsp/pom.xml | 2 +- .../pmd/lang/jsp/ast/ASTAttribute.java | 2 +- .../pmd/lang/jsp/ast/ASTAttributeValue.java | 2 +- .../pmd/lang/jsp/ast/ASTCData.java | 2 +- .../pmd/lang/jsp/ast/ASTCommentTag.java | 2 +- .../pmd/lang/jsp/ast/ASTCompilationUnit.java | 2 +- .../pmd/lang/jsp/ast/ASTContent.java | 2 +- .../pmd/lang/jsp/ast/ASTDeclaration.java | 2 +- .../lang/jsp/ast/ASTDoctypeDeclaration.java | 2 +- .../lang/jsp/ast/ASTDoctypeExternalId.java | 2 +- .../pmd/lang/jsp/ast/ASTElExpression.java | 2 +- .../pmd/lang/jsp/ast/ASTElement.java | 2 +- .../pmd/lang/jsp/ast/ASTHtmlScript.java | 2 +- .../pmd/lang/jsp/ast/ASTJspComment.java | 2 +- .../pmd/lang/jsp/ast/ASTJspDeclaration.java | 2 +- .../pmd/lang/jsp/ast/ASTJspDeclarations.java | 2 +- .../pmd/lang/jsp/ast/ASTJspDirective.java | 2 +- .../jsp/ast/ASTJspDirectiveAttribute.java | 2 +- .../pmd/lang/jsp/ast/ASTJspDocument.java | 2 +- .../pmd/lang/jsp/ast/ASTJspExpression.java | 2 +- .../jsp/ast/ASTJspExpressionInAttribute.java | 2 +- .../pmd/lang/jsp/ast/ASTJspScriptlet.java | 2 +- .../sourceforge/pmd/lang/jsp/ast/ASTText.java | 2 +- .../pmd/lang/jsp/ast/ASTUnparsedText.java | 2 +- .../pmd/lang/jsp/ast/ASTValueBinding.java | 2 +- .../pmd/lang/jsp/ast/AbstractJspNode.java | 11 + .../sourceforge/pmd/lang/jsp/ast/JspNode.java | 10 +- .../pmd/lang/jsp/ast/JspParserVisitor.java | 24 ++ .../lang/jsp/ast/JspParserVisitorAdapter.java | 19 +- .../pmd/lang/jsp/ast/JspVisitorBase.java | 11 + .../lang/scala/ast/ScalaParserVisitor.java | 5 +- .../scala/ast/ScalaParserVisitorAdapter.java | 26 +- 186 files changed, 1109 insertions(+), 1224 deletions(-) create mode 100644 pmd-core/src/main/java/net/sourceforge/pmd/annotation/DeprecatedUntil700.java create mode 100644 pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AstVisitor.java create mode 100644 pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AstVisitorBase.java create mode 100644 pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaParserVisitor.java delete mode 100644 pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaParserVisitorReducedAdapter.java create mode 100644 pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaVisitorBase.java delete mode 100644 pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/SideEffectingVisitorAdapter.java create mode 100644 pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspParserVisitor.java create mode 100644 pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspVisitorBase.java diff --git a/javacc-wrapper.xml b/javacc-wrapper.xml index 1710602b7e..a02643fb5c 100644 --- a/javacc-wrapper.xml +++ b/javacc-wrapper.xml @@ -60,9 +60,9 @@ - + + value="${target-package-dir}/${generic-visitor-interface-name}.java" /> @@ -72,8 +72,8 @@ depends="checkUpToDate,init,jjtree,jjtree-ersatz,javacc,adapt-generated,default-visitor,cleanup" /> + description="Like alljavacc, replaces default JJTree visitor with a generic one" + depends="alljavacc,generic-visitor-replacement" /> @@ -488,17 +488,16 @@ public interface" /> - - - + + + value="${generic-visitor-interface-name}<P, R> extends ${ast-api-package}.AstVisitor<P, R>" /> - - - - + + + + diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/annotation/DeprecatedUntil700.java b/pmd-core/src/main/java/net/sourceforge/pmd/annotation/DeprecatedUntil700.java new file mode 100644 index 0000000000..7f39ae14ec --- /dev/null +++ b/pmd-core/src/main/java/net/sourceforge/pmd/annotation/DeprecatedUntil700.java @@ -0,0 +1,14 @@ +/* + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +package net.sourceforge.pmd.annotation; + +/** + * Tags a deprecated member that should not be removed before PMD 7.0.0. + * Such members were made deprecated on the PMD 7 development branch and + * may be kept for backwards compatibility on the day of the PMD 7 release, + * because the replacement API cannot be backported to PMD 6. + */ +public @interface DeprecatedUntil700 { +} diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AstVisitor.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AstVisitor.java new file mode 100644 index 0000000000..b121cd6357 --- /dev/null +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AstVisitor.java @@ -0,0 +1,36 @@ +/* + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +package net.sourceforge.pmd.lang.ast; + +/** + * Root interface for AST visitors. Language modules publish a subinterface + * with one separate visit method for each type of node in the language, + * eg JavaVisitor. + * + *

Usually you never want to call {@code visit} methods manually, instead + * calling {@link Node#acceptVisitor(AstVisitor, Object) Node::acceptVisitor}, + * which then dispatches to the most specific method of the visitor instance. + * + *

Use {@link Void} as a type parameter if you don't want a parameter type + * or a return type. + * + * @param

Parameter type of the visit method + * @param Return type of the visit method + */ +public interface AstVisitor { + + /** + * Visit a node. This method is dispatched statically, you should + * use {@link Node#acceptVisitor(AstVisitor, Object)} if you want + * to call the most specific method instead. + * + * @param node Node to visit + * @param param Parameter + * + * @return Some result + */ + R visitNode(Node node, P param); + +} diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AstVisitorBase.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AstVisitorBase.java new file mode 100644 index 0000000000..b2fc648550 --- /dev/null +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AstVisitorBase.java @@ -0,0 +1,57 @@ +/* + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +package net.sourceforge.pmd.lang.ast; + +/** + * Base implementation of {@link AstVisitor}, that performs a top-down + * (preorder) visit and may accumulate a result. + */ +public abstract class AstVisitorBase implements AstVisitor { + + /** Initial value when combining values returned by children. */ + protected R zero() { + return null; + } + + /** + * Merge two values of type R, used to combine values returned by children. + * + * @param acc Current accumulated value for the previous siblings + * (or {@link #zero()} if the child is the first child) + * @param childValue Value for the new child + * + * @return New accumulated value to use for the next sibling + */ + protected R combine(R acc, R childValue) { + return acc; + } + + /** + * Visit the children. By default the data parameter is passed unchanged + * to all descendants. The {@link #zero() zero} and {@link #combine(Object, Object) combine} + * functions should be implemented if this is to return something else + * than null. + * + * @param node Node whose children should be visited + * @param data Parameter of the visit + * + * @return Some value for the children + */ + // kept separate from super.visit for clarity + protected R visitChildren(Node node, P data) { + R result = zero(); + for (Node child : node.children()) { + R r1 = child.acceptVisitor(this, data); + result = combine(result, r1); + } + return result; + } + + @Override + public R visitNode(Node node, P param) { + return visitChildren(node, param); + } + +} diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/Node.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/Node.java index b4aa8f5429..d917fd5c17 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/Node.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/Node.java @@ -280,6 +280,27 @@ public interface Node { */ int getIndexInParent(); + + /** + * Calls back the visitor's visit method corresponding to the runtime + * type of this Node. This should usually be preferred to calling + * a {@code visit} method directly (usually the only calls to those + * are in the implementations of this {@code acceptVisitor} method). + * + * @param visitor Visitor to dispatch + * @param param Parameter to the visit + * @param Return type of the visitor + * @param

Parameter type of the visitor + * + * @return What the visitor returned + */ + // TODO remove the default implementation, convert all visitors to be generic + default R acceptVisitor(AstVisitor visitor, P param) { + // override me + return visitor.visitNode(this, param); + } + + /** * Gets the name of the node that is used to match it with XPath queries. * diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/NodeStream.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/NodeStream.java index 7fe8b13654..33ae0feb3a 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/NodeStream.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/NodeStream.java @@ -9,6 +9,7 @@ import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.Optional; +import java.util.function.BiFunction; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; @@ -580,6 +581,25 @@ public interface NodeStream extends Iterable<@NonNull T> { void forEach(Consumer action); + /** + * Reduce the elements of this stream sequentially. + * + * @param identity Identity element + * @param accumulate Combine an intermediate result with a new node from this stream, + * returns the next intermediate result + * @param Result type + * + * @return The last intermediate result (identity if this stream is empty) + */ + default R reduce(R identity, BiFunction accumulate) { + R result = identity; + for (T node : this) { + result = accumulate.apply(result, node); + } + return result; + } + + /** * Returns the number of nodes in this stream. * diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAdditiveExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAdditiveExpression.java index cbda2cf3bf..95eda4074e 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAdditiveExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAdditiveExpression.java @@ -30,17 +30,10 @@ public class ASTAdditiveExpression extends AbstractJavaTypeNode { } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * @deprecated Use {@link #getOperator()} */ diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAllocationExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAllocationExpression.java index 3c98f47556..24cbf2644b 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAllocationExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAllocationExpression.java @@ -18,18 +18,13 @@ public class ASTAllocationExpression extends AbstractJavaTypeNode implements Jav super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns true if this expression defines a body, * which is compiled to an anonymous class. If this diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAndExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAndExpression.java index 71a6b6a028..53e4b49603 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAndExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAndExpression.java @@ -29,14 +29,9 @@ public class ASTAndExpression extends AbstractJavaTypeNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + public R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotation.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotation.java index 9cc29c982f..328d9184de 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotation.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotation.java @@ -97,14 +97,9 @@ public class ASTAnnotation extends AbstractJavaTypeNode { || "java.lang.SuppressWarnings".equals(getAnnotationName()); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + public R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotationMethodDeclaration.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotationMethodDeclaration.java index 6b5e2a7b28..dab16c9ed5 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotationMethodDeclaration.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotationMethodDeclaration.java @@ -14,18 +14,13 @@ public class ASTAnnotationMethodDeclaration extends AbstractMethodLikeNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - @Override public MethodLikeKind getKind() { return MethodLikeKind.METHOD; diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotationTypeBody.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotationTypeBody.java index 13f9548674..20cf3d06a8 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotationTypeBody.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotationTypeBody.java @@ -15,13 +15,7 @@ public class ASTAnnotationTypeBody extends AbstractJavaNode { } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotationTypeDeclaration.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotationTypeDeclaration.java index 649fa07be7..7800fd012c 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotationTypeDeclaration.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotationTypeDeclaration.java @@ -16,18 +16,13 @@ public class ASTAnnotationTypeDeclaration extends AbstractAnyTypeDeclaration { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - @Override public TypeKind getTypeKind() { return TypeKind.ANNOTATION; diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotationTypeMemberDeclaration.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotationTypeMemberDeclaration.java index 67a7ca0e9f..e0f184242e 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotationTypeMemberDeclaration.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAnnotationTypeMemberDeclaration.java @@ -15,13 +15,7 @@ public class ASTAnnotationTypeMemberDeclaration extends AbstractTypeBodyDeclarat } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + public R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTArgumentList.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTArgumentList.java index e083f55cdc..1c2cf599fe 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTArgumentList.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTArgumentList.java @@ -15,15 +15,10 @@ public class ASTArgumentList extends AbstractJavaNode { } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - /** * Gets the number of arguments. * @@ -32,5 +27,4 @@ public class ASTArgumentList extends AbstractJavaNode { public int size() { return this.getNumChildren(); } - } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTArguments.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTArguments.java index 0204618248..6d8ae6b1ed 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTArguments.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTArguments.java @@ -35,14 +35,9 @@ public class ASTArguments extends AbstractJavaNode { return size(); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTArrayDimsAndInits.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTArrayDimsAndInits.java index 725b1c8ae1..7f6e067127 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTArrayDimsAndInits.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTArrayDimsAndInits.java @@ -16,18 +16,13 @@ public class ASTArrayDimsAndInits extends AbstractJavaNode implements Dimensiona super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - @Deprecated public void bumpArrayDepth() { arrayDepth++; diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTArrayInitializer.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTArrayInitializer.java index 2f50470501..78f3126c4c 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTArrayInitializer.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTArrayInitializer.java @@ -14,14 +14,9 @@ public class ASTArrayInitializer extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAssertStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAssertStatement.java index e6a9a4b2dc..9efa52e36f 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAssertStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAssertStatement.java @@ -23,18 +23,13 @@ public class ASTAssertStatement extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns the expression tested by this assert statement. * diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAssignmentOperator.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAssignmentOperator.java index db2f9e8d94..2dc87a7242 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAssignmentOperator.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTAssignmentOperator.java @@ -36,14 +36,9 @@ public class ASTAssignmentOperator extends AbstractJavaNode { return this.isCompound; } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTBlock.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTBlock.java index 4a2f22fbe5..0ec8834d58 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTBlock.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTBlock.java @@ -16,18 +16,13 @@ public class ASTBlock extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + public R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - public boolean containsComment() { return this.containsComment; } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTBlockStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTBlockStatement.java index 111baa63cd..32766fa4f3 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTBlockStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTBlockStatement.java @@ -14,18 +14,13 @@ public class ASTBlockStatement extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Tells if this BlockStatement is an allocation statement. This is done by * diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTBooleanLiteral.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTBooleanLiteral.java index a9d0b40717..71424d22bb 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTBooleanLiteral.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTBooleanLiteral.java @@ -26,14 +26,9 @@ public class ASTBooleanLiteral extends AbstractJavaTypeNode { return this.isTrue; } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTBreakStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTBreakStatement.java index 7bd6c4080e..4cd0c98619 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTBreakStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTBreakStatement.java @@ -14,17 +14,12 @@ public class ASTBreakStatement extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - @Override public String getImage() { String result = super.getImage(); diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTCastExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTCastExpression.java index 67fde7b8bc..30a0f65a37 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTCastExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTCastExpression.java @@ -26,14 +26,9 @@ public class ASTCastExpression extends AbstractJavaTypeNode { return intersectionTypes; } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + public R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTCatchStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTCatchStatement.java index ec6f36389a..20b7aeb305 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTCatchStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTCatchStatement.java @@ -24,18 +24,12 @@ public class ASTCatchStatement extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns true if this node is a multi-catch statement, * that is, it catches several unrelated exception types diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTClassOrInterfaceBody.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTClassOrInterfaceBody.java index b761dc4230..f0b2415970 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTClassOrInterfaceBody.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTClassOrInterfaceBody.java @@ -24,18 +24,13 @@ public class ASTClassOrInterfaceBody extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - public boolean isAnonymousInnerClass() { return getParent() instanceof ASTAllocationExpression; } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTClassOrInterfaceBodyDeclaration.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTClassOrInterfaceBodyDeclaration.java index 2402c3075e..7bc9d40b2a 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTClassOrInterfaceBodyDeclaration.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTClassOrInterfaceBodyDeclaration.java @@ -36,17 +36,11 @@ public class ASTClassOrInterfaceBodyDeclaration extends AbstractTypeBodyDeclarat } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - public boolean isAnonymousInnerClass() { return getParent().getParent() instanceof ASTAllocationExpression; } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTClassOrInterfaceDeclaration.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTClassOrInterfaceDeclaration.java index 8a0ac7e33e..b0de0701eb 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTClassOrInterfaceDeclaration.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTClassOrInterfaceDeclaration.java @@ -38,7 +38,7 @@ public class ASTClassOrInterfaceDeclaration extends AbstractAnyTypeDeclaration { } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } @@ -47,11 +47,6 @@ public class ASTClassOrInterfaceDeclaration extends AbstractAnyTypeDeclaration { return super.isPackagePrivate() && !isLocal(); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - public boolean isInterface() { return this.isInterface; } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTClassOrInterfaceType.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTClassOrInterfaceType.java index b86b857dae..354c133d0b 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTClassOrInterfaceType.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTClassOrInterfaceType.java @@ -23,17 +23,11 @@ public class ASTClassOrInterfaceType extends AbstractJavaTypeNode { } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Checks whether the type this node is referring to is declared within the * same compilation unit - either a class/interface or a enum type. You want diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTCompilationUnit.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTCompilationUnit.java index f188c18439..6464a6a81f 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTCompilationUnit.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTCompilationUnit.java @@ -39,17 +39,10 @@ public class ASTCompilationUnit extends AbstractJavaTypeNode implements RootNode } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * @deprecated Use {@code getPackageName().isEmpty()} */ diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTConditionalAndExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTConditionalAndExpression.java index e76a8953fe..5bde4af52e 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTConditionalAndExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTConditionalAndExpression.java @@ -30,13 +30,7 @@ public class ASTConditionalAndExpression extends AbstractJavaTypeNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTConditionalExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTConditionalExpression.java index 2e0831f614..66e9008ff2 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTConditionalExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTConditionalExpression.java @@ -92,13 +92,7 @@ public class ASTConditionalExpression extends AbstractJavaTypeNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + public R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTConditionalOrExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTConditionalOrExpression.java index d956967b51..6f508bdca1 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTConditionalOrExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTConditionalOrExpression.java @@ -28,14 +28,9 @@ public class ASTConditionalOrExpression extends AbstractJavaTypeNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTConstructorDeclaration.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTConstructorDeclaration.java index 086047c941..88b7bff87a 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTConstructorDeclaration.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTConstructorDeclaration.java @@ -24,18 +24,13 @@ public class ASTConstructorDeclaration extends AbstractMethodOrConstructorDeclar return MethodLikeKind.CONSTRUCTOR; } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - public boolean containsComment() { return this.containsComment; } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTContinueStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTContinueStatement.java index 70aa7f5c02..b93848f203 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTContinueStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTContinueStatement.java @@ -14,14 +14,9 @@ public class ASTContinueStatement extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTDefaultValue.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTDefaultValue.java index 2f6dd53785..34ee5b14cf 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTDefaultValue.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTDefaultValue.java @@ -14,14 +14,9 @@ public class ASTDefaultValue extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTDoStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTDoStatement.java index 30a7e5f589..ad609b9280 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTDoStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTDoStatement.java @@ -56,13 +56,7 @@ public class ASTDoStatement extends AbstractJavaNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + public R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEmptyStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEmptyStatement.java index e6c76022fc..c75987c0a5 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEmptyStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEmptyStatement.java @@ -14,14 +14,9 @@ public class ASTEmptyStatement extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEnumBody.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEnumBody.java index d78a53cebb..d86db24ea8 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEnumBody.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEnumBody.java @@ -14,14 +14,9 @@ public class ASTEnumBody extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEnumConstant.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEnumConstant.java index 123b2a320b..3a8641bf48 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEnumConstant.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEnumConstant.java @@ -29,18 +29,13 @@ public class ASTEnumConstant extends AbstractJavaNode implements JavaQualifiable super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Gets the qualified name of the anonymous class * declared by this node, or null if this node diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEnumDeclaration.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEnumDeclaration.java index e301ef30bd..7e0ed98576 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEnumDeclaration.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEnumDeclaration.java @@ -16,18 +16,13 @@ public class ASTEnumDeclaration extends AbstractAnyTypeDeclaration { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - @Override public TypeKind getTypeKind() { return TypeKind.ENUM; diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEqualityExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEqualityExpression.java index caa40806ac..5bbd8cf680 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEqualityExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTEqualityExpression.java @@ -29,18 +29,13 @@ public class ASTEqualityExpression extends AbstractJavaTypeNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns the image of the operator, i.e. "==" or "!=". */ diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTExclusiveOrExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTExclusiveOrExpression.java index e36a0ceb27..77f46f3b8a 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTExclusiveOrExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTExclusiveOrExpression.java @@ -28,14 +28,9 @@ public class ASTExclusiveOrExpression extends AbstractJavaTypeNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTExplicitConstructorInvocation.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTExplicitConstructorInvocation.java index 8330c9b6fd..10007a8e2b 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTExplicitConstructorInvocation.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTExplicitConstructorInvocation.java @@ -16,18 +16,13 @@ public class ASTExplicitConstructorInvocation extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - public int getArgumentCount() { if (this.getNumChildren() == 1) { return ((ASTArguments) this.getChild(0)).size(); diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTExpression.java index 7fab98e8bd..f13955beab 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTExpression.java @@ -26,18 +26,13 @@ public class ASTExpression extends AbstractJavaTypeNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - public boolean isStandAlonePrimitive() { if (getNumChildren() != 1) { return false; diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTExtendsList.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTExtendsList.java index ae403337c9..189accea4d 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTExtendsList.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTExtendsList.java @@ -27,18 +27,13 @@ public class ASTExtendsList extends AbstractJavaNode implements Iterable R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - @Override // TODO this doesn't preserve the annotations. public Iterator iterator() { return children(ASTClassOrInterfaceType.class).iterator(); diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTFieldDeclaration.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTFieldDeclaration.java index 13a23aa3ea..3ac69e80b3 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTFieldDeclaration.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTFieldDeclaration.java @@ -48,18 +48,13 @@ public class ASTFieldDeclaration extends AbstractJavaAccessTypeNode implements D super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - public boolean isSyntacticallyPublic() { return super.isPublic(); } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTFinallyStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTFinallyStatement.java index 9e96faf65f..26adf2bcc1 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTFinallyStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTFinallyStatement.java @@ -14,18 +14,13 @@ public class ASTFinallyStatement extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + public R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns the body of this finally clause. */ diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTForInit.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTForInit.java index c74e090eec..7a69fddeb0 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTForInit.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTForInit.java @@ -14,14 +14,9 @@ public class ASTForInit extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTForStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTForStatement.java index 5b920efe7d..9089f4cfa2 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTForStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTForStatement.java @@ -28,17 +28,11 @@ public class ASTForStatement extends AbstractJavaNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns the node that represents the guard of this loop. * This may be any expression of type boolean. diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTForUpdate.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTForUpdate.java index 8e317e901c..858ef7850a 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTForUpdate.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTForUpdate.java @@ -26,13 +26,8 @@ public class ASTForUpdate extends AbstractJavaNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTFormalParameter.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTFormalParameter.java index 90d39e998d..9e16dce219 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTFormalParameter.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTFormalParameter.java @@ -71,17 +71,11 @@ public class ASTFormalParameter extends AbstractJavaAccessTypeNode implements Di } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns the declarator ID of this formal parameter. */ diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTFormalParameters.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTFormalParameters.java index e684955e66..c3be266c0d 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTFormalParameters.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTFormalParameters.java @@ -31,18 +31,13 @@ public class ASTFormalParameters extends AbstractJavaNode implements Iterable R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - @Override public Iterator iterator() { return children(ASTFormalParameter.class).iterator(); diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTIfStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTIfStatement.java index 450a2b6354..8da4e2ac15 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTIfStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTIfStatement.java @@ -82,13 +82,7 @@ public class ASTIfStatement extends AbstractJavaNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + public R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTImplementsList.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTImplementsList.java index 4a4ed2b4e0..e1104a4651 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTImplementsList.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTImplementsList.java @@ -25,18 +25,13 @@ public class ASTImplementsList extends AbstractJavaNode implements Iterable R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - @Override public Iterator iterator() { return children(ASTClassOrInterfaceType.class).iterator(); diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTImportDeclaration.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTImportDeclaration.java index 341a409d8e..f38ef9d3f0 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTImportDeclaration.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTImportDeclaration.java @@ -133,15 +133,10 @@ public class ASTImportDeclaration extends AbstractJavaTypeNode { } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - @InternalApi @Deprecated public void setPackage(Package packge) { diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTInclusiveOrExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTInclusiveOrExpression.java index 67f34dbcf4..41d89b5f6d 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTInclusiveOrExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTInclusiveOrExpression.java @@ -31,13 +31,7 @@ public class ASTInclusiveOrExpression extends AbstractJavaTypeNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTInitializer.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTInitializer.java index 8a98654ca3..93c10558c1 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTInitializer.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTInitializer.java @@ -16,18 +16,13 @@ public class ASTInitializer extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - public boolean isStatic() { return isStatic; } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTInstanceOfExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTInstanceOfExpression.java index b6b939decd..cb91b5afae 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTInstanceOfExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTInstanceOfExpression.java @@ -30,17 +30,11 @@ public class ASTInstanceOfExpression extends AbstractJavaTypeNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + public R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Gets the type against which the expression is tested. */ diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTLabeledStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTLabeledStatement.java index 0bc135ca05..eae2ecad16 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTLabeledStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTLabeledStatement.java @@ -14,15 +14,10 @@ public class ASTLabeledStatement extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTLambdaExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTLambdaExpression.java index 294ab5ff3f..c98106aa74 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTLambdaExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTLambdaExpression.java @@ -22,17 +22,11 @@ public class ASTLambdaExpression extends AbstractMethodLikeNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - @Override public MethodLikeKind getKind() { return MethodLikeKind.LAMBDA; diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTLiteral.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTLiteral.java index 93ed88563c..db3d8c6943 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTLiteral.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTLiteral.java @@ -36,18 +36,13 @@ public class ASTLiteral extends AbstractJavaTypeNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - @InternalApi @Deprecated public void setIntLiteral() { diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTLocalVariableDeclaration.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTLocalVariableDeclaration.java index 4779dbbc28..12ec98c372 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTLocalVariableDeclaration.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTLocalVariableDeclaration.java @@ -34,18 +34,13 @@ public class ASTLocalVariableDeclaration extends AbstractJavaAccessNode implemen super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - @Override public boolean hasSuppressWarningsAnnotationFor(Rule rule) { for (int i = 0; i < getNumChildren(); i++) { diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMarkerAnnotation.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMarkerAnnotation.java index 311632d899..448d1a34fb 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMarkerAnnotation.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMarkerAnnotation.java @@ -28,17 +28,11 @@ public class ASTMarkerAnnotation extends AbstractJavaTypeNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns the name of the annotation as it is used, * eg {@code java.lang.Override} or {@code Override}. diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberSelector.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberSelector.java index 296cf5d1b4..f77b92df5b 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberSelector.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberSelector.java @@ -14,14 +14,9 @@ public class ASTMemberSelector extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberValue.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberValue.java index 2e3f8c7d82..db29960a85 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberValue.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberValue.java @@ -29,13 +29,8 @@ public class ASTMemberValue extends AbstractJavaNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberValueArrayInitializer.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberValueArrayInitializer.java index 2b9a9820e9..a60a5eea01 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberValueArrayInitializer.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberValueArrayInitializer.java @@ -27,18 +27,13 @@ public class ASTMemberValueArrayInitializer extends AbstractJavaNode implements super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - @Override public Iterator iterator() { return children(ASTMemberValue.class).iterator(); diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberValuePair.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberValuePair.java index f2a3ccd5b1..f517a7dcbe 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberValuePair.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberValuePair.java @@ -47,13 +47,8 @@ public class ASTMemberValuePair extends AbstractJavaNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberValuePairs.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberValuePairs.java index 4a70202341..e2c3fbed1b 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberValuePairs.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMemberValuePairs.java @@ -28,17 +28,11 @@ public class ASTMemberValuePairs extends AbstractJavaNode implements Iterable R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - @Override public ASTMemberValuePair getChild(int index) { return (ASTMemberValuePair) super.getChild(index); diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMethodDeclaration.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMethodDeclaration.java index d7c4a07e5a..7cffc67e3a 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMethodDeclaration.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMethodDeclaration.java @@ -21,18 +21,13 @@ public class ASTMethodDeclaration extends AbstractMethodOrConstructorDeclaration super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns the simple name of the method. * diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMethodDeclarator.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMethodDeclarator.java index 51f7f6df7a..1c1fc1c641 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMethodDeclarator.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMethodDeclarator.java @@ -37,14 +37,9 @@ public class ASTMethodDeclarator extends AbstractJavaNode { return super.getImage(); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + public R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMethodReference.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMethodReference.java index 00304afea1..81865c739f 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMethodReference.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMethodReference.java @@ -14,14 +14,9 @@ public class ASTMethodReference extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTModuleDeclaration.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTModuleDeclaration.java index 3b8aa4767d..a00f9e3146 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTModuleDeclaration.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTModuleDeclaration.java @@ -16,18 +16,13 @@ public class ASTModuleDeclaration extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - @InternalApi @Deprecated public void setOpen(boolean open) { diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTModuleDirective.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTModuleDirective.java index 0adaf908b4..b92b6dfbcb 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTModuleDirective.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTModuleDirective.java @@ -26,18 +26,13 @@ public class ASTModuleDirective extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - @InternalApi @Deprecated public void setType(DirectiveType type) { diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTModuleName.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTModuleName.java index 2fd83e062b..9d13cda54f 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTModuleName.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTModuleName.java @@ -14,14 +14,9 @@ public class ASTModuleName extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + public R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMultiplicativeExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMultiplicativeExpression.java index 21635b1ae1..b433eccaef 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMultiplicativeExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTMultiplicativeExpression.java @@ -29,17 +29,11 @@ public class ASTMultiplicativeExpression extends AbstractJavaTypeNode { } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns the image of the operator, i.e. "*", "/" or "%". */ diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTName.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTName.java index 7c0dd81870..3199e23387 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTName.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTName.java @@ -25,14 +25,9 @@ public class ASTName extends AbstractJavaTypeNode { return this.nd; } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTNameList.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTNameList.java index e5268a5dc2..4d3da5c38e 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTNameList.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTNameList.java @@ -14,14 +14,9 @@ public class ASTNameList extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTNormalAnnotation.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTNormalAnnotation.java index e4bb481c00..6c4e9e3d24 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTNormalAnnotation.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTNormalAnnotation.java @@ -29,17 +29,11 @@ public class ASTNormalAnnotation extends AbstractJavaTypeNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns the name of the annotation as it is used, * eg {@code java.lang.Override} or {@code Override}. diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTNullLiteral.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTNullLiteral.java index 5f32f33635..2ad4325ecb 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTNullLiteral.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTNullLiteral.java @@ -15,13 +15,7 @@ public class ASTNullLiteral extends AbstractJavaTypeNode { } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + public R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPackageDeclaration.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPackageDeclaration.java index fc384c8bae..33771b8644 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPackageDeclaration.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPackageDeclaration.java @@ -14,18 +14,13 @@ public class ASTPackageDeclaration extends AbstractJavaAnnotatableNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - public String getPackageNameImage() { return ((ASTName) getChild(this.getNumChildren() - 1)).getImage(); } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPostfixExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPostfixExpression.java index 72a3a3ce0e..9a6c90a657 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPostfixExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPostfixExpression.java @@ -25,18 +25,12 @@ public class ASTPostfixExpression extends AbstractJavaTypeNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns the image of this unary operator, i.e. "++" or "--". */ diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPreDecrementExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPreDecrementExpression.java index 365764298d..24709f3ad1 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPreDecrementExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPreDecrementExpression.java @@ -25,14 +25,9 @@ public class ASTPreDecrementExpression extends AbstractJavaTypeNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPreIncrementExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPreIncrementExpression.java index 71321bc84f..eea7ea363f 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPreIncrementExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPreIncrementExpression.java @@ -26,14 +26,8 @@ public class ASTPreIncrementExpression extends AbstractJavaTypeNode { } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPrimaryExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPrimaryExpression.java index ce9a4880df..b4b5a7a5df 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPrimaryExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPrimaryExpression.java @@ -14,15 +14,10 @@ public class ASTPrimaryExpression extends AbstractJavaTypeNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPrimaryPrefix.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPrimaryPrefix.java index 37e43ddfce..52b2f7f707 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPrimaryPrefix.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPrimaryPrefix.java @@ -35,14 +35,9 @@ public class ASTPrimaryPrefix extends AbstractJavaTypeNode { return this.usesSuperModifier; } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPrimarySuffix.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPrimarySuffix.java index 2224af91f5..851fb14871 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPrimarySuffix.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPrimarySuffix.java @@ -52,14 +52,9 @@ public class ASTPrimarySuffix extends AbstractJavaTypeNode { return ((ASTArguments) getChild(getNumChildren() - 1)).size(); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPrimitiveType.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPrimitiveType.java index e2495684e6..4f8a226152 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPrimitiveType.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTPrimitiveType.java @@ -26,17 +26,11 @@ public class ASTPrimitiveType extends AbstractJavaTypeNode implements Dimensiona } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - @Deprecated public void bumpArrayDepth() { arrayDepth++; diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRSIGNEDSHIFT.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRSIGNEDSHIFT.java index a5d412eaf0..2e6852422e 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRSIGNEDSHIFT.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRSIGNEDSHIFT.java @@ -18,14 +18,9 @@ public class ASTRSIGNEDSHIFT extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRUNSIGNEDSHIFT.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRUNSIGNEDSHIFT.java index 82afc49096..9112b4ceee 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRUNSIGNEDSHIFT.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRUNSIGNEDSHIFT.java @@ -18,14 +18,9 @@ public class ASTRUNSIGNEDSHIFT extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordBody.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordBody.java index 2f80ab773b..c3227de751 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordBody.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordBody.java @@ -26,12 +26,7 @@ public final class ASTRecordBody extends AbstractJavaNode { } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordComponent.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordComponent.java index b1748c268a..f29c5137e9 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordComponent.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordComponent.java @@ -28,15 +28,10 @@ public final class ASTRecordComponent extends AbstractJavaAnnotatableNode { } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - public boolean isVarargs() { return varargs; } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordComponentList.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordComponentList.java index 5e276fa893..5683e1c47a 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordComponentList.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordComponentList.java @@ -25,15 +25,10 @@ public final class ASTRecordComponentList extends AbstractJavaNode implements It } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - public int size() { return getNumChildren(); } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordConstructorDeclaration.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordConstructorDeclaration.java index a810da9a15..6517a93929 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordConstructorDeclaration.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordConstructorDeclaration.java @@ -27,15 +27,10 @@ public final class ASTRecordConstructorDeclaration extends AbstractJavaAccessNod } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - @Override public ASTRecordConstructorDeclaration getDeclarationNode() { return this; diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordDeclaration.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordDeclaration.java index f903c66681..5414655cf5 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordDeclaration.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRecordDeclaration.java @@ -35,15 +35,10 @@ public final class ASTRecordDeclaration extends AbstractAnyTypeDeclaration { } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - @Override public TypeKind getTypeKind() { return TypeKind.RECORD; diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTReferenceType.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTReferenceType.java index 69d98e1c88..5450f79d45 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTReferenceType.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTReferenceType.java @@ -23,18 +23,12 @@ public class ASTReferenceType extends AbstractJavaTypeNode implements Dimensiona super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - @Deprecated public void bumpArrayDepth() { arrayDepth++; diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRelationalExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRelationalExpression.java index 7b39d5319f..c985869d06 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRelationalExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTRelationalExpression.java @@ -28,14 +28,9 @@ public class ASTRelationalExpression extends AbstractJavaTypeNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTResource.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTResource.java index 129900b297..7af643b7fa 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTResource.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTResource.java @@ -14,17 +14,12 @@ public class ASTResource extends ASTFormalParameter { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - // TODO Should we deprecate all methods from ASTFormalParameter? } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTResourceSpecification.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTResourceSpecification.java index 94cf621eb7..b3c05195d3 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTResourceSpecification.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTResourceSpecification.java @@ -14,14 +14,9 @@ public class ASTResourceSpecification extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTResources.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTResources.java index ae16b7f403..4c95fad19e 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTResources.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTResources.java @@ -14,14 +14,9 @@ public class ASTResources extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTResultType.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTResultType.java index f4df168230..eb9292de5c 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTResultType.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTResultType.java @@ -23,13 +23,7 @@ public class ASTResultType extends AbstractJavaNode { } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTReturnStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTReturnStatement.java index c3530e4358..ab71fc3a0f 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTReturnStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTReturnStatement.java @@ -14,14 +14,9 @@ public class ASTReturnStatement extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTShiftExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTShiftExpression.java index 3536004b30..07e8cc3c2b 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTShiftExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTShiftExpression.java @@ -30,18 +30,13 @@ public class ASTShiftExpression extends AbstractJavaTypeNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns the image of the operator, i.e. "<<", ">>", or ">>>". */ diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSingleMemberAnnotation.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSingleMemberAnnotation.java index 9dfd9eb5bc..1a980d11cb 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSingleMemberAnnotation.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSingleMemberAnnotation.java @@ -26,18 +26,12 @@ public class ASTSingleMemberAnnotation extends AbstractJavaTypeNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns the value of the default member * set by this annotation. diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTStatement.java index ef1adbe5d9..15843a1492 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTStatement.java @@ -14,14 +14,9 @@ public class ASTStatement extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTStatementExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTStatementExpression.java index df84bbb60c..7d2c185022 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTStatementExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTStatementExpression.java @@ -14,14 +14,9 @@ public class ASTStatementExpression extends AbstractJavaTypeNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTStatementExpressionList.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTStatementExpressionList.java index a7b70a58bd..a3dc8241b3 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTStatementExpressionList.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTStatementExpressionList.java @@ -14,14 +14,9 @@ public class ASTStatementExpressionList extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchExpression.java index 0be10b02a9..041550de6f 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchExpression.java @@ -14,14 +14,10 @@ public class ASTSwitchExpression extends AbstractJavaTypeNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabel.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabel.java index 96838ddc05..1ce27796d3 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabel.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabel.java @@ -41,13 +41,8 @@ public class ASTSwitchLabel extends AbstractJavaNode { } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledBlock.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledBlock.java index 45c50ecaa0..1b24725f17 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledBlock.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledBlock.java @@ -15,15 +15,10 @@ public class ASTSwitchLabeledBlock extends AbstractJavaNode implements ASTSwitch } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - @Override public void jjtClose() { super.jjtClose(); diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledExpression.java index 70afff9dd0..a1be649bd0 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledExpression.java @@ -14,14 +14,10 @@ public class ASTSwitchLabeledExpression extends AbstractJavaNode implements ASTS super(id); } - @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { - return visitor.visit(this, data); - } @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); + protected R acceptVisitor(JavaVisitor visitor, P data) { + return visitor.visit(this, data); } @Override diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledThrowStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledThrowStatement.java index b52c1b9f83..85671bde52 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledThrowStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchLabeledThrowStatement.java @@ -14,14 +14,10 @@ public class ASTSwitchLabeledThrowStatement extends AbstractJavaNode implements super(id); } - @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { - return visitor.visit(this, data); - } @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); + protected R acceptVisitor(JavaVisitor visitor, P data) { + return visitor.visit(this, data); } @Override diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchStatement.java index d386014ce2..b88d067bfa 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSwitchStatement.java @@ -31,17 +31,10 @@ public class ASTSwitchStatement extends AbstractJavaNode implements Iterable R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns true if this switch has a {@code default} case. */ diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSynchronizedStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSynchronizedStatement.java index a55903b387..7b7e7b5814 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSynchronizedStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTSynchronizedStatement.java @@ -14,14 +14,9 @@ public class ASTSynchronizedStatement extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTThrowStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTThrowStatement.java index ff0e4b8d30..733efef919 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTThrowStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTThrowStatement.java @@ -14,18 +14,13 @@ public class ASTThrowStatement extends AbstractJavaNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Gets the image of the first ASTClassOrInterfaceType child or * null if none is found. Note that when the statement is diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTryStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTryStatement.java index 20d7084602..9b916fd5d8 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTryStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTryStatement.java @@ -25,17 +25,11 @@ public class ASTTryStatement extends AbstractJavaNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns true if this node is a try-with-resources, in which case it * has a ResourceSpecification child node. diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTType.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTType.java index b718ca0de9..338c302f61 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTType.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTType.java @@ -26,18 +26,13 @@ public class ASTType extends AbstractJavaTypeNode { } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - public String getTypeImage() { ASTClassOrInterfaceType refType = getFirstDescendantOfType(ASTClassOrInterfaceType.class); if (refType != null) { diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeArgument.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeArgument.java index 1bafa6cde1..d6c81b74c7 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeArgument.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeArgument.java @@ -44,13 +44,7 @@ public class ASTTypeArgument extends AbstractJavaTypeNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeArguments.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeArguments.java index 242c364ae4..f8a8da5cea 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeArguments.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeArguments.java @@ -26,18 +26,13 @@ public class ASTTypeArguments extends AbstractJavaNode implements Iterable R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns true if this is a diamond, that is, the * actual type arguments are inferred. diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeBound.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeBound.java index 91c25c9a2f..0a98ef1474 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeBound.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeBound.java @@ -41,13 +41,7 @@ public class ASTTypeBound extends AbstractJavaTypeNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeDeclaration.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeDeclaration.java index 3385f26362..9606849b30 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeDeclaration.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeDeclaration.java @@ -29,13 +29,7 @@ public class ASTTypeDeclaration extends AbstractJavaTypeNode implements CanSuppr } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeParameter.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeParameter.java index 376401bd86..f4e80d743f 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeParameter.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeParameter.java @@ -56,13 +56,7 @@ public class ASTTypeParameter extends AbstractJavaTypeNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeParameters.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeParameters.java index fdaf5816bd..054cbd8f55 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeParameters.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeParameters.java @@ -27,18 +27,13 @@ public class ASTTypeParameters extends AbstractJavaNode implements Iterable R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - @Override public Iterator iterator() { return children(ASTTypeParameter.class).iterator(); diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeTestPattern.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeTestPattern.java index f04ecab633..a285b93cc0 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeTestPattern.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTTypeTestPattern.java @@ -24,17 +24,11 @@ public final class ASTTypeTestPattern extends AbstractJavaNode implements ASTPat super(id); } - @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - /** * Gets the type against which the expression is tested. */ diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTUnaryExpression.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTUnaryExpression.java index a6537afefe..47293e9624 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTUnaryExpression.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTUnaryExpression.java @@ -35,14 +35,14 @@ public class ASTUnaryExpression extends AbstractJavaTypeNode { } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); + /** Returns the expression nested within this expression. */ + public ASTExpression getOperand() { + return (ASTExpression) getChild(0); } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTUnaryExpressionNotPlusMinus.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTUnaryExpressionNotPlusMinus.java index 8f601ffe19..da338286fd 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTUnaryExpressionNotPlusMinus.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTUnaryExpressionNotPlusMinus.java @@ -28,18 +28,13 @@ public class ASTUnaryExpressionNotPlusMinus extends AbstractJavaTypeNode { super(id); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns the image of this unary operator, i.e. "~" or "!". */ diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTVariableDeclarator.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTVariableDeclarator.java index ca0fd7ed16..ecf5277421 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTVariableDeclarator.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTVariableDeclarator.java @@ -31,17 +31,11 @@ public class ASTVariableDeclarator extends AbstractJavaTypeNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Returns the name of the declared variable. */ diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTVariableDeclaratorId.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTVariableDeclaratorId.java index 3ad749aa84..eaa345dbcb 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTVariableDeclaratorId.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTVariableDeclaratorId.java @@ -47,17 +47,11 @@ public class ASTVariableDeclaratorId extends AbstractJavaTypeNode implements Dim } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } - - /** * Note: this might be null in certain cases. */ diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTVariableInitializer.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTVariableInitializer.java index b25fd0d99b..200020c6b4 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTVariableInitializer.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTVariableInitializer.java @@ -15,13 +15,7 @@ public class ASTVariableInitializer extends AbstractJavaNode { } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTWhileStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTWhileStatement.java index bf3c4a388a..aab2d4a68f 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTWhileStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTWhileStatement.java @@ -55,13 +55,7 @@ public class ASTWhileStatement extends AbstractJavaNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTWildcardBounds.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTWildcardBounds.java index 8153aae042..4cf0f35647 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTWildcardBounds.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTWildcardBounds.java @@ -52,13 +52,7 @@ public class ASTWildcardBounds extends AbstractJavaTypeNode { @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTYieldStatement.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTYieldStatement.java index 32b8ee76ea..08dbae5630 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTYieldStatement.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/ASTYieldStatement.java @@ -12,14 +12,10 @@ public class ASTYieldStatement extends AbstractJavaTypeNode { super(id); } - @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { - return visitor.visit(this, data); - } @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); + protected R acceptVisitor(JavaVisitor visitor, P data) { + return visitor.visit(this, data); } @Override diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/AbstractJavaNode.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/AbstractJavaNode.java index 2a4c13c95a..01eb1a09c2 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/AbstractJavaNode.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/AbstractJavaNode.java @@ -7,6 +7,7 @@ package net.sourceforge.pmd.lang.java.ast; import org.checkerframework.checker.nullness.qual.NonNull; import net.sourceforge.pmd.annotation.InternalApi; +import net.sourceforge.pmd.lang.ast.AstVisitor; import net.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode; import net.sourceforge.pmd.lang.symboltable.Scope; @@ -32,6 +33,18 @@ public abstract class AbstractJavaNode extends AbstractJjtreeNode R acceptVisitor(AstVisitor visitor, P param) { + if (visitor instanceof JavaVisitor) { + return this.acceptVisitor((JavaVisitor) visitor, param); + } + return visitor.visitNode(this, param); + } + + protected abstract R acceptVisitor(JavaVisitor visitor, P data); + + // override those to make them accessible in this package + @Override // override to make it accessible to tests that build nodes (which have been removed on java-grammar) protected void addChild(AbstractJavaNode child, int index) { super.addChild(child, index); diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/DummyJavaNode.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/DummyJavaNode.java index 04fe6b5a67..a8d78a3ba1 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/DummyJavaNode.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/DummyJavaNode.java @@ -26,12 +26,8 @@ public class DummyJavaNode extends AbstractJavaNode { } @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { - return data; + public R acceptVisitor(JavaVisitor visitor, P data) { + return visitor.visit(this, data); } - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - // do nothing - } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaNode.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaNode.java index f39565a941..4272146a39 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaNode.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaNode.java @@ -7,6 +7,7 @@ package net.sourceforge.pmd.lang.java.ast; import org.checkerframework.checker.nullness.qual.NonNull; +import net.sourceforge.pmd.annotation.DeprecatedUntil700; import net.sourceforge.pmd.annotation.InternalApi; import net.sourceforge.pmd.lang.ast.impl.javacc.JjtreeNode; import net.sourceforge.pmd.lang.symboltable.Scope; @@ -23,18 +24,14 @@ public interface JavaNode extends ScopedNode, JjtreeNode { * * @param visitor Visitor to dispatch * @param data Visit data - */ - Object jjtAccept(JavaParserVisitor visitor, Object data); - - - /** - * Calls back the visitor's visit method corresponding to the runtime type of this Node. * - * @param visitor Visitor to dispatch - * @param data Visit data - * @param Type of data + * @deprecated Use {@link #acceptVisitor(JavaVisitor, Object)} */ - void jjtAccept(SideEffectingVisitor visitor, T data); + @Deprecated + @DeprecatedUntil700 + default Object jjtAccept(JavaParserVisitor visitor, Object data) { + return acceptVisitor(visitor, data); + } @InternalApi diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaParserVisitor.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaParserVisitor.java new file mode 100644 index 0000000000..7e33b9648f --- /dev/null +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaParserVisitor.java @@ -0,0 +1,25 @@ +/* + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +package net.sourceforge.pmd.lang.java.ast; + +import net.sourceforge.pmd.annotation.DeprecatedUntil700; +import net.sourceforge.pmd.lang.ast.Node; + +/** + * Backwards-compatibility only. + * + * @deprecated Use {@link JavaVisitor} + */ +@Deprecated +@DeprecatedUntil700 +public interface JavaParserVisitor extends JavaVisitor { + + @Override + default Object visitNode(Node node, Object param) { + node.children().forEach(c -> c.acceptVisitor(this, param)); + return param; + } + +} diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaParserVisitorAdapter.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaParserVisitorAdapter.java index b8bbdbd220..9a0af168a2 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaParserVisitorAdapter.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaParserVisitorAdapter.java @@ -4,24 +4,98 @@ package net.sourceforge.pmd.lang.java.ast; -import net.sourceforge.pmd.lang.java.rule.AbstractJavaRule; - +import net.sourceforge.pmd.annotation.DeprecatedUntil700; +import net.sourceforge.pmd.lang.ast.Node; /** - * An adapter for {@link JavaParserVisitor}. Unless visit methods are overridden without - * calling {@code super.visit}, the visitor performs a full depth-first tree walk. + * An adapter for {@link JavaParserVisitor}. * - *

Since 7.0.0 we use default methods - * on the interface, which removes code duplication. However, if a visitor directly - * implements the interface, then the syntax {@code super.visit(...)} is illegal and - * doesn't refer to the default method. Instead, one would have to qualify the super, - * like {@code JavaParserVisitor.super.visit}. - * - *

This restriction doesn't apply when the interface is not a direct super interface, - * i.e. when there's an intermediary class like this one in the type hierarchy, or - * e.g. {@link AbstractJavaRule}. That's why extending this class is preferred to - * implementing the visitor directly. + * @deprecated Use {@link JavaVisitorBase} */ -public class JavaParserVisitorAdapter implements JavaParserVisitor { +@Deprecated +@DeprecatedUntil700 +public class JavaParserVisitorAdapter extends JavaVisitorBase implements JavaParserVisitor { + + @Override + protected Object visitChildren(Node node, Object data) { + super.visitChildren(node, data); + return data; + } + + // REMOVE ME + // deprecated stuff kept for compatibility with existing visitors, not matched by anything + + // todo on java-grammar: uncomment + // + // @Deprecated + // public Object visit(ASTAllocationExpression node, Object data) { + // return null; + // } + // + // @Deprecated + // public Object visit(ASTTypeArgument node, Object data) { + // return null; + // } + // + // @Deprecated + // public Object visit(ASTWildcardBounds node, Object data) { + // return null; + // } + // + // @Deprecated + // public Object visit(ASTConditionalOrExpression node, Object data) { + // return visit((ASTExpression) node, data); + // } + // + // @Deprecated + // public Object visit(ASTConditionalAndExpression node, Object data) { + // return visit((ASTExpression) node, data); + // } + // + // @Deprecated + // public Object visit(ASTInclusiveOrExpression node, Object data) { + // return visit((ASTExpression) node, data); + // } + // + // @Deprecated + // public Object visit(ASTExclusiveOrExpression node, Object data) { + // return visit((ASTExpression) node, data); + // } + // + // @Deprecated + // public Object visit(ASTAndExpression node, Object data) { + // return visit((ASTExpression) node, data); + // } + // + // @Deprecated + // public Object visit(ASTEqualityExpression node, Object data) { + // return visit((ASTExpression) node, data); + // } + // + // @Deprecated + // public Object visit(ASTRelationalExpression node, Object data) { + // return visit((ASTExpression) node, data); + // } + // + // @Deprecated + // public Object visit(ASTShiftExpression node, Object data) { + // return visit((ASTExpression) node, data); + // } + // + // @Deprecated + // public Object visit(ASTAdditiveExpression node, Object data) { + // return visit((ASTExpression) node, data); + // } + // + // @Deprecated + // public Object visit(ASTMultiplicativeExpression node, Object data) { + // return visit((ASTExpression) node, data); + // } + // + // @Deprecated + // public Object visit(ASTInstanceOfExpression node, Object data) { + // return visit((ASTExpression) node, data); + // } + } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaParserVisitorReducedAdapter.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaParserVisitorReducedAdapter.java deleted file mode 100644 index 3c038f5e3a..0000000000 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaParserVisitorReducedAdapter.java +++ /dev/null @@ -1,71 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ - -package net.sourceforge.pmd.lang.java.ast; - -/** - * Visitor adapter with convenient visit methods to e.g. treat contructors and methods the same. - * - * @author Clément Fournier - */ -public class JavaParserVisitorReducedAdapter extends JavaParserVisitorAdapter { - - @Override - public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { - return visit((ASTAnyTypeDeclaration) node, data); - } - - - @Override - public Object visit(ASTAnnotationTypeDeclaration node, Object data) { - return visit((ASTAnyTypeDeclaration) node, data); - } - - - @Override - public Object visit(ASTEnumDeclaration node, Object data) { - return visit((ASTAnyTypeDeclaration) node, data); - } - - - @Override - public Object visit(ASTRecordDeclaration node, Object data) { - return visit((ASTAnyTypeDeclaration) node, data); - } - - - public Object visit(ASTAnyTypeDeclaration node, Object data) { - return visit((JavaNode) node, data); - } - - - @Override - public Object visit(ASTMethodDeclaration node, Object data) { - return visit((ASTMethodOrConstructorDeclaration) node, data); - } - - - @Override - public Object visit(ASTConstructorDeclaration node, Object data) { - return visit((ASTMethodOrConstructorDeclaration) node, data); - } - - - public Object visit(ASTMethodOrConstructorDeclaration node, Object data) { - return visit((MethodLikeNode) node, data); - } - - - @Override - public Object visit(ASTLambdaExpression node, Object data) { - return visit((MethodLikeNode) node, data); - } - - - public Object visit(MethodLikeNode node, Object data) { - return visit((JavaNode) node, data); - } - - -} diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaVisitorBase.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaVisitorBase.java new file mode 100644 index 0000000000..a11b330397 --- /dev/null +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/JavaVisitorBase.java @@ -0,0 +1,375 @@ +/** + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +package net.sourceforge.pmd.lang.java.ast; + +import net.sourceforge.pmd.lang.ast.AstVisitorBase; + +/** + * Base implementation of {@link JavaVisitor}. This adds delegation logic + * which the interface doesn't have. + * + *

Contrary to the old visitor, which used Object as both parameter and + * return type, this visitor uses separate type parameters for those. This + * means you can't just return the parameter, unless your visitor has equal + * parameter and return type. This type signature subsumes many possible + * signatures. The old one is {@code }, still implemented + * by {@link JavaParserVisitor} for backwards compatibility. If you don't + * want to return a value, or don't want a parameter, use {@link Void}. + * + *

Since 7.0.0 we use default methods on the interface, which removes + * code duplication. However it's still recommended to extend a base class, + * for forward compatibility. + */ +public class JavaVisitorBase extends AstVisitorBase implements JavaVisitor { + + // todo on java-grammar: uncomment + + + // + + + public R visit(ASTMethodOrConstructorDeclaration node, P data) { + return visit((JavaNode) node, data); + } + + @Override + public R visit(ASTMethodDeclaration node, P data) { + return visit((ASTMethodOrConstructorDeclaration) node, data); + } + + @Override + public R visit(ASTConstructorDeclaration node, P data) { + return visit((ASTMethodOrConstructorDeclaration) node, data); + } + + // + + // + + public R visit(ASTAnyTypeDeclaration node, P data) { + return visit((JavaNode) node, data); + } + + @Override + public R visit(ASTClassOrInterfaceDeclaration node, P data) { + return visit((ASTAnyTypeDeclaration) node, data); + } + + // @Override + // public R visit(ASTAnonymousClassDeclaration node, P data) { + // return visit((ASTAnyTypeDeclaration) node, data); + // } + + @Override + public R visit(ASTRecordDeclaration node, P data) { + return visit((ASTAnyTypeDeclaration) node, data); + } + + @Override + public R visit(ASTEnumDeclaration node, P data) { + return visit((ASTAnyTypeDeclaration) node, data); + } + + @Override + public R visit(ASTAnnotationTypeDeclaration node, P data) { + return visit((ASTAnyTypeDeclaration) node, data); + } + + // + + // + + + // public R visit(ASTType node, P data) { + // return visit((JavaNode) node, data); + // } + // + // @Override + // public R visit(ASTPrimitiveType node, P data) { + // return visit((ASTType) node, data); + // } + // + // public R visit(ASTReferenceType node, P data) { + // return visit((ASTType) node, data); + // } + // + // + // @Override + // public R visit(ASTArrayType node, P data) { + // return visit((ASTReferenceType) node, data); + // } + // + // + // @Override + // public R visit(ASTIntersectionType node, P data) { + // return visit((ASTReferenceType) node, data); + // } + // + // + // @Override + // public R visit(ASTWildcardType node, P data) { + // return visit((ASTReferenceType) node, data); + // } + // + // @Override + // public R visit(ASTClassOrInterfaceType node, P data) { + // return visit((ASTReferenceType) node, data); + // } + + // + + // + + + // public R visit(ASTExpression node, P data) { + // return visit((JavaNode) node, data); + // } + // + // @Override + // public R visit(ASTLambdaExpression node, P data) { + // return visit((ASTExpression) node, data); + // } + // + // @Override + // public R visit(ASTAssignmentExpression node, P data) { + // return visit((ASTExpression) node, data); + // } + // + // @Override + // public R visit(ASTConditionalExpression node, P data) { + // return visit((ASTExpression) node, data); + // } + // + // + // @Override + // public R visit(ASTInfixExpression node, P data) { + // return visit((ASTExpression) node, data); + // } + // + // + // @Override + // public R visit(ASTUnaryExpression node, P data) { + // return visit((ASTExpression) node, data); + // } + // + // @Override + // public R visit(ASTCastExpression node, P data) { + // return visit((ASTExpression) node, data); + // } + // + // + // @Override + // public R visit(ASTSwitchExpression node, P data) { + // return visit((ASTExpression) node, data); + // } + // + // + // public R visit(ASTPrimaryExpression node, P data) { + // return visit((ASTExpression) node, data); + // } + // + // + // @Override + // public R visit(ASTMethodCall node, P data) { + // return visit((ASTPrimaryExpression) node, data); + // } + // + // @Override + // public R visit(ASTFieldAccess node, P data) { + // return visit((ASTPrimaryExpression) node, data); + // } + // + // @Override + // public R visit(ASTConstructorCall node, P data) { + // return visit((ASTPrimaryExpression) node, data); + // } + // + // + // @Override + // public R visit(ASTArrayAllocation node, P data) { + // return visit((ASTPrimaryExpression) node, data); + // } + // + // + // @Override + // public R visit(ASTArrayAccess node, P data) { + // return visit((ASTPrimaryExpression) node, data); + // } + // + // + // @Override + // public R visit(ASTVariableAccess node, P data) { + // return visit((ASTPrimaryExpression) node, data); + // } + // + // + // @Override + // public R visit(ASTMethodReference node, P data) { + // return visit((ASTPrimaryExpression) node, data); + // } + // + // + // @Override + // public R visit(ASTThisExpression node, P data) { + // return visit((ASTPrimaryExpression) node, data); + // } + // + // @Override + // public R visit(ASTSuperExpression node, P data) { + // return visit((ASTPrimaryExpression) node, data); + // } + // + // @Override + // public R visit(ASTClassLiteral node, P data) { + // return visit((ASTPrimaryExpression) node, data); + // } + // + // public R visit(ASTLiteral node, P data) { + // return visit((ASTPrimaryExpression) node, data); + // } + // + // @Override + // public R visit(ASTBooleanLiteral node, P data) { + // return visit((ASTLiteral) node, data); + // } + // + // @Override + // public R visit(ASTNullLiteral node, P data) { + // return visit((ASTLiteral) node, data); + // } + // + // @Override + // public R visit(ASTNumericLiteral node, P data) { + // return visit((ASTLiteral) node, data); + // } + // + // @Override + // public R visit(ASTStringLiteral node, P data) { + // return visit((ASTLiteral) node, data); + // } + // + // @Override + // public R visit(ASTCharLiteral node, P data) { + // return visit((ASTLiteral) node, data); + // } + + // + + // + + // @Override + // public R visit(ASTAssertStatement node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTBlock node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTBreakStatement node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTContinueStatement node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTDoStatement node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTEmptyStatement node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTExplicitConstructorInvocation node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTExpressionStatement node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTForeachStatement node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTForStatement node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTIfStatement node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTLabeledStatement node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTLocalClassStatement node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTReturnStatement node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTStatementExpressionList node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTSwitchStatement node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTSynchronizedStatement node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTThrowStatement node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTTryStatement node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTWhileStatement node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // @Override + // public R visit(ASTYieldStatement node, P data) { + // return visit((ASTStatement) node, data); + // } + // + // public R visit(ASTStatement node, P data) { + // return visit((JavaNode) node, data); + // } + // + + // + + +} diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/SideEffectingVisitorAdapter.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/SideEffectingVisitorAdapter.java deleted file mode 100644 index d768807bfa..0000000000 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/SideEffectingVisitorAdapter.java +++ /dev/null @@ -1,45 +0,0 @@ -/** - * BSD-style license; for more info see http://pmd.sourceforge.net/license.html - */ - -package net.sourceforge.pmd.lang.java.ast; - -/** - * Adapter for {@link SideEffectingVisitor}. See {@link JavaParserVisitorAdapter} for why this is needed. - * Unless visit methods are overridden without calling {@code super.visit}, the visitor performs a full - * depth-first tree walk. - * - * @author Clément Fournier - * @since 7.0.0 - */ -public class SideEffectingVisitorAdapter implements SideEffectingVisitor { - - - // TODO delegation - - - public void visit(ASTSwitchLabeledRule node, T data) { - visit((JavaNode) node, data); - } - - public void visit(ASTAnyTypeDeclaration node, T data) { - visit((JavaNode) node, data); - } - - @Override - public void visit(ASTClassOrInterfaceDeclaration node, T data) { - visit((ASTAnyTypeDeclaration) node, data); - } - - // public void visit(ASTAnonymousClassDeclaration node, T data) {visit((ASTAnyTypeDeclaration) node, data);} - - @Override - public void visit(ASTEnumDeclaration node, T data) { - visit((ASTAnyTypeDeclaration) node, data); - } - - @Override - public void visit(ASTAnnotationTypeDeclaration node, T data) { - visit((ASTAnyTypeDeclaration) node, data); - } -} diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/internal/LanguageLevelChecker.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/internal/LanguageLevelChecker.java index 7b5758e5d0..85ba3ab04a 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/internal/LanguageLevelChecker.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/ast/internal/LanguageLevelChecker.java @@ -36,7 +36,6 @@ import net.sourceforge.pmd.lang.java.ast.ASTResourceSpecification; import net.sourceforge.pmd.lang.java.ast.ASTResources; import net.sourceforge.pmd.lang.java.ast.ASTSwitchExpression; import net.sourceforge.pmd.lang.java.ast.ASTSwitchLabel; -import net.sourceforge.pmd.lang.java.ast.ASTSwitchLabeledRule; import net.sourceforge.pmd.lang.java.ast.ASTTryStatement; import net.sourceforge.pmd.lang.java.ast.ASTType; import net.sourceforge.pmd.lang.java.ast.ASTTypeArguments; @@ -45,7 +44,7 @@ import net.sourceforge.pmd.lang.java.ast.ASTTypeTestPattern; import net.sourceforge.pmd.lang.java.ast.ASTVariableDeclaratorId; import net.sourceforge.pmd.lang.java.ast.ASTYieldStatement; import net.sourceforge.pmd.lang.java.ast.JavaNode; -import net.sourceforge.pmd.lang.java.ast.SideEffectingVisitorAdapter; +import net.sourceforge.pmd.lang.java.ast.JavaVisitorBase; /** * Checks that an AST conforms to some language level. The reporting @@ -79,7 +78,7 @@ public class LanguageLevelChecker { public void check(JavaNode node) { T accumulator = reportingStrategy.createAccumulator(); - node.jjtAccept(visitor, accumulator); + node.descendants(JavaNode.class).crossFindBoundaries().forEach(n -> n.acceptVisitor(visitor, accumulator)); reportingStrategy.done(accumulator); } @@ -243,7 +242,7 @@ public class LanguageLevelChecker { String errorMessage(int jdk, boolean preview); } - private class CheckVisitor extends SideEffectingVisitorAdapter { + private class CheckVisitor extends JavaVisitorBase { // @Override // public void visit(ASTStringLiteral node, T data) { @@ -257,49 +256,49 @@ public class LanguageLevelChecker { @Override - public void visit(ASTLiteral node, T data) { + public Void visit(ASTLiteral node, T data) { if (node.isStringLiteral() && SPACE_ESCAPE_PATTERN.matcher(node.getImage()).find()) { check(node, PreviewFeature.SPACE_STRING_ESCAPES, data); } if (node.isTextBlock()) { check(node, PreviewFeature.TEXT_BLOCK_LITERALS, data); } - visitChildren(node, data); + return null; } @Override - public void visit(ASTImportDeclaration node, T data) { + public Void visit(ASTImportDeclaration node, T data) { if (node.isStatic()) { check(node, RegularLanguageFeature.STATIC_IMPORT, data); } - visitChildren(node, data); + return null; } @Override - public void visit(ASTYieldStatement node, T data) { + public Void visit(ASTYieldStatement node, T data) { check(node, PreviewFeature.YIELD_STATEMENTS, data); - visitChildren(node, data); + return null; } @Override - public void visit(ASTBreakStatement node, T data) { + public Void visit(ASTBreakStatement node, T data) { if (node.getNumChildren() > 0) { check(node, PreviewFeature.BREAK__WITH__VALUE_STATEMENTS, data); } - visitChildren(node, data); + return null; } @Override - public void visit(ASTSwitchExpression node, T data) { + public Void visit(ASTSwitchExpression node, T data) { check(node, PreviewFeature.SWITCH_EXPRESSIONS, data); - visitChildren(node, data); + return null; } @Override - public void visit(ASTRecordDeclaration node, T data) { + public Void visit(ASTRecordDeclaration node, T data) { check(node, PreviewFeature.RECORD_DECLARATIONS, data); - visitChildren(node, data); + return null; } // @Override @@ -313,7 +312,7 @@ public class LanguageLevelChecker { // } @Override - public void visit(ASTTypeArguments node, T data) { + public Void visit(ASTTypeArguments node, T data) { if (check(node, RegularLanguageFeature.GENERICS, data)) { if (node.isDiamond() && check(node, RegularLanguageFeature.DIAMOND_TYPE_ARGUMENTS, data)) { if (node.getNthParent(2) instanceof ASTAllocationExpression @@ -322,24 +321,24 @@ public class LanguageLevelChecker { } } } - visitChildren(node, data); + return null; } @Override - public void visit(ASTTypeParameters node, T data) { + public Void visit(ASTTypeParameters node, T data) { check(node, RegularLanguageFeature.GENERICS, data); - visitChildren(node, data); + return null; } @Override - public void visit(ASTFormalParameter node, T data) { + public Void visit(ASTFormalParameter node, T data) { if (node.isVarargs()) { check(node, RegularLanguageFeature.VARARGS_PARAMETERS, data); } else if (node.isExplicitReceiverParameter()) { check(node, RegularLanguageFeature.RECEIVER_PARAMETERS, data); } - visitChildren(node, data); + return null; } // @Override @@ -348,40 +347,41 @@ public class LanguageLevelChecker { // } @Override - public void visit(ASTAnnotation node, T data) { + public Void visit(ASTAnnotation node, T data) { if (node.getParent() instanceof ASTType) { check(node, RegularLanguageFeature.TYPE_ANNOTATIONS, data); } else { check(node, RegularLanguageFeature.ANNOTATIONS, data); } - visitChildren(node, data); + return null; } // // @Override - // public void visit(ASTForeachStatement node, T data) { + // public Void visit(ASTForeachStatement node, T data) { // check(node, RegularLanguageFeature.FOREACH_LOOPS, data); - // visitChildren(node, data); + // return null; // } @Override - public void visit(ASTForStatement node, T data) { + public Void visit(ASTForStatement node, T data) { if (node.isForeach()) { check(node, RegularLanguageFeature.FOREACH_LOOPS, data); } - visitChildren(node, data); + return null; } @Override - public void visit(ASTEnumDeclaration node, T data) { + public Void visit(ASTEnumDeclaration node, T data) { check(node, RegularLanguageFeature.ENUMS, data); - super.visit(node, data); + visit((ASTAnyTypeDeclaration) node, data); + return null; } // @Override - // public void visit(ASTNumericLiteral node, T data) { + // public Void visit(ASTNumericLiteral node, T data) { // int base = node.getBase(); // if (base == 16 && !node.isIntegral()) { // check(node, RegularLanguageFeature.HEXADECIMAL_FLOATING_POINT_LITERALS, data); @@ -390,23 +390,23 @@ public class LanguageLevelChecker { // } else if (node.getImage().indexOf('_') >= 0) { // check(node, RegularLanguageFeature.UNDERSCORES_IN_NUMERIC_LITERALS, data); // } - // visitChildren(node, data); + // return null; // } @Override - public void visit(ASTMethodReference node, T data) { + public Void visit(ASTMethodReference node, T data) { check(node, RegularLanguageFeature.METHOD_REFERENCES, data); - visitChildren(node, data); + return null; } @Override - public void visit(ASTLambdaExpression node, T data) { + public Void visit(ASTLambdaExpression node, T data) { check(node, RegularLanguageFeature.LAMBDA_EXPRESSIONS, data); - visitChildren(node, data); + return null; } @Override - public void visit(ASTMethodDeclaration node, T data) { + public Void visit(ASTMethodDeclaration node, T data) { if (node.isDefault()) { check(node, RegularLanguageFeature.DEFAULT_METHODS, data); } @@ -416,23 +416,23 @@ public class LanguageLevelChecker { } checkIdent(node, node.getMethodName(), data); - visitChildren(node, data); + return null; } @Override - public void visit(ASTAssertStatement node, T data) { + public Void visit(ASTAssertStatement node, T data) { check(node, RegularLanguageFeature.ASSERT_STATEMENTS, data); - visitChildren(node, data); + return null; } @Override - public void visit(ASTTypeTestPattern node, T data) { + public Void visit(ASTTypeTestPattern node, T data) { check(node, PreviewFeature.TYPE_TEST_PATTERNS_IN_INSTANCEOF, data); - visitChildren(node, data); + return null; } // @Override - // public void visit(ASTTryStatement node, T data) { + // public Void visit(ASTTryStatement node, T data) { // if (node.isTryWithResources()) { // if (check(node, RegularLanguageFeature.TRY_WITH_RESOURCES, data)) { // for (ASTResource resource : node.getResources()) { @@ -443,12 +443,12 @@ public class LanguageLevelChecker { // } // } // } - // visitChildren(node, data); + // return null; // } @Override - public void visit(ASTTryStatement node, T data) { + public Void visit(ASTTryStatement node, T data) { if (node.isTryWithResources()) { if (check(node, RegularLanguageFeature.TRY_WITH_RESOURCES, data)) { for (ASTResource resource : node.children(ASTResourceSpecification.class).children(ASTResources.class).children(ASTResource.class)) { @@ -459,62 +459,62 @@ public class LanguageLevelChecker { } } } - visitChildren(node, data); + return null; } // @Override - // public void visit(ASTIntersectionType node, T data) { + // public Void visit(ASTIntersectionType node, T data) { // if (node.jjtGetParent() instanceof ASTCastExpression) { // check(node, RegularLanguageFeature.INTERSECTION_TYPES_IN_CASTS, data); // } - // visitChildren(node, data); + // return null; // } @Override - public void visit(ASTCastExpression node, T data) { + public Void visit(ASTCastExpression node, T data) { if (node.children(ASTReferenceType.class).nonEmpty()) { check(node, RegularLanguageFeature.INTERSECTION_TYPES_IN_CASTS, data); } - visitChildren(node, data); + return null; } @Override - public void visit(ASTCatchStatement node, T data) { + public Void visit(ASTCatchStatement node, T data) { if (node.isMulticatchStatement()) { check(node, RegularLanguageFeature.COMPOSITE_CATCH_CLAUSES, data); } - visitChildren(node, data); + return null; } @Override - public void visit(ASTSwitchLabel node, T data) { + public Void visit(ASTSwitchLabel node, T data) { if (node.getNumChildren() > 1) { check(node, PreviewFeature.COMPOSITE_CASE_LABEL, data); } - visitChildren(node, data); + return null; } @Override - public void visit(ASTModuleDeclaration node, T data) { + public Void visit(ASTModuleDeclaration node, T data) { check(node, RegularLanguageFeature.MODULE_DECLARATIONS, data); - visitChildren(node, data); + return null; + } + + // @Override + // public Void visit(ASTSwitchLabeledRule node, T data) { + // check(node, PreviewFeature.SWITCH_RULES, data); + // return null; + // } + + @Override + public Void visit(ASTVariableDeclaratorId node, T data) { + checkIdent(node, node.getName(), data); + return null; } @Override - public void visit(ASTSwitchLabeledRule node, T data) { - check(node, PreviewFeature.SWITCH_RULES, data); - visitChildren(node, data); - } - - @Override - public void visit(ASTVariableDeclaratorId node, T data) { - checkIdent(node, node.getVariableName(), data); - visitChildren(node, data); - } - - @Override - public void visit(ASTAnyTypeDeclaration node, T data) { + public Void visit(ASTAnyTypeDeclaration node, T data) { String simpleName = node.getSimpleName(); if ("var".equals(simpleName)) { check(node, ReservedIdentifiers.VAR_AS_A_TYPE_NAME, data); @@ -522,13 +522,7 @@ public class LanguageLevelChecker { check(node, ReservedIdentifiers.RECORD_AS_A_TYPE_NAME, data); } checkIdent(node, simpleName, data); - visitChildren(node, data); - } - - private void visitChildren(JavaNode node, T data) { - for (int i = 0; i < node.getNumChildren(); i++) { - node.getChild(i).jjtAccept(visitor, data); - } + return null; } private void checkIdent(JavaNode node, String simpleName, T acc) { diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/internal/JavaDesignerBindings.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/internal/JavaDesignerBindings.java index ff1f44ba3a..d44fbd225d 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/internal/JavaDesignerBindings.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/internal/JavaDesignerBindings.java @@ -16,8 +16,7 @@ import net.sourceforge.pmd.lang.java.ast.ASTMethodDeclaration; import net.sourceforge.pmd.lang.java.ast.ASTRecordConstructorDeclaration; import net.sourceforge.pmd.lang.java.ast.ASTVariableDeclaratorId; import net.sourceforge.pmd.lang.java.ast.JavaNode; -import net.sourceforge.pmd.lang.java.ast.JavaParserVisitor; -import net.sourceforge.pmd.lang.java.ast.JavaParserVisitorReducedAdapter; +import net.sourceforge.pmd.lang.java.ast.JavaVisitorBase; import net.sourceforge.pmd.lang.java.ast.TypeNode; import net.sourceforge.pmd.util.designerbindings.DesignerBindings.DefaultDesignerBindings; @@ -32,7 +31,7 @@ public final class JavaDesignerBindings extends DefaultDesignerBindings { @Override public Attribute getMainAttribute(Node node) { if (node instanceof JavaNode) { - Attribute attr = (Attribute) ((JavaNode) node).jjtAccept(MainAttrVisitor.INSTANCE, null); + Attribute attr = ((JavaNode) node).acceptVisitor(MainAttrVisitor.INSTANCE, null); if (attr != null) { return attr; } @@ -70,22 +69,22 @@ public final class JavaDesignerBindings extends DefaultDesignerBindings { return super.getAdditionalInfo(node); } - private static final class MainAttrVisitor extends JavaParserVisitorReducedAdapter { + private static final class MainAttrVisitor extends JavaVisitorBase { - private static final JavaParserVisitor INSTANCE = new MainAttrVisitor(); + private static final MainAttrVisitor INSTANCE = new MainAttrVisitor(); @Override - public Object visit(JavaNode node, Object data) { + public Attribute visit(JavaNode node, Void data) { return null; // don't recurse } @Override - public Object visit(ASTAnyTypeDeclaration node, Object data) { + public Attribute visit(ASTAnyTypeDeclaration node, Void data) { return new Attribute(node, "SimpleName", node.getSimpleName()); } @Override - public Object visit(ASTMethodDeclaration node, Object data) { + public Attribute visit(ASTMethodDeclaration node, Void data) { return new Attribute(node, "Name", node.getName()); } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/CycloMetric.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/CycloMetric.java index 19af8e8ad1..0875c445b6 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/CycloMetric.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/CycloMetric.java @@ -32,8 +32,9 @@ public final class CycloMetric extends AbstractJavaOperationMetric { @Override public double computeFor(MethodLikeNode node, MetricOptions options) { - MutableInt cyclo = (MutableInt) node.jjtAccept(new CycloVisitor(options, node), new MutableInt(1)); - return (double) cyclo.getValue(); + MutableInt counter = new MutableInt(1); + node.acceptVisitor(new CycloVisitor(options, node), counter); + return (double) counter.getValue(); } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/NcssMetric.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/NcssMetric.java index d2f050441c..28e5aa3446 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/NcssMetric.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/NcssMetric.java @@ -53,7 +53,7 @@ public final class NcssMetric { @Override public double computeFor(ASTAnyTypeDeclaration node, MetricOptions options) { - MutableInt ncss = (MutableInt) node.jjtAccept(new NcssVisitor(options, node), new MutableInt(0)); + MutableInt ncss = (MutableInt) node.acceptVisitor(new NcssVisitor(options, node), new MutableInt(0)); return (double) ncss.getValue(); } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/NpathMetric.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/NpathMetric.java index 05bd88069e..dab3227750 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/NpathMetric.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/NpathMetric.java @@ -20,7 +20,7 @@ public class NpathMetric extends AbstractJavaOperationMetric { @Override public double computeFor(MethodLikeNode node, MetricOptions options) { - return (Integer) node.jjtAccept(NpathBaseVisitor.INSTANCE, null); + return (Integer) node.acceptVisitor(NpathBaseVisitor.INSTANCE, null); } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/visitors/CycloVisitor.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/visitors/CycloVisitor.java index b6f58af871..c6fdec5812 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/visitors/CycloVisitor.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/visitors/CycloVisitor.java @@ -18,7 +18,7 @@ import net.sourceforge.pmd.lang.java.ast.ASTSwitchStatement; import net.sourceforge.pmd.lang.java.ast.ASTThrowStatement; import net.sourceforge.pmd.lang.java.ast.ASTWhileStatement; import net.sourceforge.pmd.lang.java.ast.JavaNode; -import net.sourceforge.pmd.lang.java.ast.JavaParserVisitorAdapter; +import net.sourceforge.pmd.lang.java.ast.JavaVisitorBase; import net.sourceforge.pmd.lang.java.metrics.internal.CycloMetric; import net.sourceforge.pmd.lang.java.metrics.internal.CycloMetric.CycloOption; import net.sourceforge.pmd.lang.metrics.MetricOptions; @@ -30,7 +30,7 @@ import net.sourceforge.pmd.lang.metrics.MetricOptions; * @author Clément Fournier * @since 6.7.0 */ -public class CycloVisitor extends JavaParserVisitorAdapter { +public class CycloVisitor extends JavaVisitorBase { protected final boolean considerBooleanPaths; @@ -46,16 +46,16 @@ public class CycloVisitor extends JavaParserVisitorAdapter { @Override - public final Object visit(JavaNode localNode, Object data) { - return localNode.isFindBoundary() && !localNode.equals(topNode) ? data : super.visit(localNode, data); + public final Void visit(JavaNode localNode, MutableInt data) { + return localNode.isFindBoundary() && !localNode.equals(topNode) ? null : super.visit(localNode, data); } @Override - public Object visit(ASTSwitchStatement node, Object data) { + public Void visit(ASTSwitchStatement node, MutableInt data) { if (considerBooleanPaths) { - ((MutableInt) data).add(CycloMetric.booleanExpressionComplexity(node.getTestedExpression())); + data.add(CycloMetric.booleanExpressionComplexity(node.getTestedExpression())); } for (ASTSwitchLabel label : node) { @@ -65,11 +65,11 @@ public class CycloVisitor extends JavaParserVisitorAdapter { } if (considerBooleanPaths) { - ((MutableInt) data).increment(); + data.increment(); } else if (node.getNumChildren() > 1 + label.getIndexInParent() && node.getChild(label.getIndexInParent() + 1) instanceof ASTBlockStatement) { // an empty label is only counted if we count boolean paths - ((MutableInt) data).increment(); + data.increment(); } } return super.visit(node, data); @@ -77,30 +77,30 @@ public class CycloVisitor extends JavaParserVisitorAdapter { @Override - public Object visit(ASTConditionalExpression node, Object data) { - ((MutableInt) data).increment(); + public Void visit(ASTConditionalExpression node, MutableInt data) { + data.increment(); if (considerBooleanPaths) { - ((MutableInt) data).add(CycloMetric.booleanExpressionComplexity(node.getCondition())); + data.add(CycloMetric.booleanExpressionComplexity(node.getCondition())); } return super.visit(node, data); } @Override - public Object visit(ASTWhileStatement node, Object data) { - ((MutableInt) data).increment(); + public Void visit(ASTWhileStatement node, MutableInt data) { + data.increment(); if (considerBooleanPaths) { - ((MutableInt) data).add(CycloMetric.booleanExpressionComplexity(node.getCondition())); + data.add(CycloMetric.booleanExpressionComplexity(node.getCondition())); } return super.visit(node, data); } @Override - public Object visit(ASTIfStatement node, Object data) { - ((MutableInt) data).increment(); + public Void visit(ASTIfStatement node, MutableInt data) { + data.increment(); if (considerBooleanPaths) { - ((MutableInt) data).add(CycloMetric.booleanExpressionComplexity(node.getCondition())); + data.add(CycloMetric.booleanExpressionComplexity(node.getCondition())); } return super.visit(node, data); @@ -108,11 +108,11 @@ public class CycloVisitor extends JavaParserVisitorAdapter { @Override - public Object visit(ASTForStatement node, Object data) { - ((MutableInt) data).increment(); + public Void visit(ASTForStatement node, MutableInt data) { + data.increment(); if (considerBooleanPaths && !node.isForeach()) { - ((MutableInt) data).add(CycloMetric.booleanExpressionComplexity(node.getCondition())); + data.add(CycloMetric.booleanExpressionComplexity(node.getCondition())); } return super.visit(node, data); @@ -120,10 +120,10 @@ public class CycloVisitor extends JavaParserVisitorAdapter { @Override - public Object visit(ASTDoStatement node, Object data) { - ((MutableInt) data).increment(); + public Void visit(ASTDoStatement node, MutableInt data) { + data.increment(); if (considerBooleanPaths) { - ((MutableInt) data).add(CycloMetric.booleanExpressionComplexity(node.getCondition())); + data.add(CycloMetric.booleanExpressionComplexity(node.getCondition())); } return super.visit(node, data); @@ -131,26 +131,26 @@ public class CycloVisitor extends JavaParserVisitorAdapter { @Override - public Object visit(ASTCatchStatement node, Object data) { - ((MutableInt) data).increment(); + public Void visit(ASTCatchStatement node, MutableInt data) { + data.increment(); return super.visit(node, data); } @Override - public Object visit(ASTThrowStatement node, Object data) { - ((MutableInt) data).increment(); + public Void visit(ASTThrowStatement node, MutableInt data) { + data.increment(); return super.visit(node, data); } @Override - public Object visit(ASTAssertStatement node, Object data) { + public Void visit(ASTAssertStatement node, MutableInt data) { if (considerAssert) { - ((MutableInt) data).add(2); // equivalent to if (condition) { throw .. } + data.add(2); // equivalent to if (condition) { throw .. } if (considerBooleanPaths) { - ((MutableInt) data).add(CycloMetric.booleanExpressionComplexity(node.getCondition())); + data.add(CycloMetric.booleanExpressionComplexity(node.getCondition())); } } diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/visitors/NpathBaseVisitor.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/visitors/NpathBaseVisitor.java index 89acfe8730..351d1e685f 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/visitors/NpathBaseVisitor.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/visitors/NpathBaseVisitor.java @@ -19,7 +19,7 @@ import net.sourceforge.pmd.lang.java.ast.ASTSwitchStatement; import net.sourceforge.pmd.lang.java.ast.ASTTryStatement; import net.sourceforge.pmd.lang.java.ast.ASTWhileStatement; import net.sourceforge.pmd.lang.java.ast.JavaNode; -import net.sourceforge.pmd.lang.java.ast.JavaParserVisitorReducedAdapter; +import net.sourceforge.pmd.lang.java.ast.JavaParserVisitorAdapter; import net.sourceforge.pmd.lang.java.metrics.internal.CycloMetric; @@ -29,7 +29,7 @@ import net.sourceforge.pmd.lang.java.metrics.internal.CycloMetric; * @author Clément Fournier * @author Jason Bennett */ -public class NpathBaseVisitor extends JavaParserVisitorReducedAdapter { +public class NpathBaseVisitor extends JavaParserVisitorAdapter { /** Instance. */ public static final NpathBaseVisitor INSTANCE = new NpathBaseVisitor(); diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/visitors/TccAttributeAccessCollector.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/visitors/TccAttributeAccessCollector.java index d2fceab7bc..4a6c04c7eb 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/visitors/TccAttributeAccessCollector.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/metrics/internal/visitors/TccAttributeAccessCollector.java @@ -19,7 +19,7 @@ import net.sourceforge.pmd.lang.java.ast.ASTName; 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.JavaParserVisitorReducedAdapter; +import net.sourceforge.pmd.lang.java.ast.JavaParserVisitorAdapter; import net.sourceforge.pmd.lang.java.symboltable.ClassScope; import net.sourceforge.pmd.lang.java.symboltable.VariableNameDeclaration; import net.sourceforge.pmd.lang.symboltable.Scope; @@ -31,7 +31,7 @@ import net.sourceforge.pmd.lang.symboltable.Scope; * @author Clément Fournier * @since 6.0.0 */ -public class TccAttributeAccessCollector extends JavaParserVisitorReducedAdapter { +public class TccAttributeAccessCollector extends JavaParserVisitorAdapter { private final ASTAnyTypeDeclaration exploredClass; diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/qname/QualifiedNameResolver.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/qname/QualifiedNameResolver.java index 051a4e3f72..b0090a5516 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/qname/QualifiedNameResolver.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/qname/QualifiedNameResolver.java @@ -28,7 +28,7 @@ import net.sourceforge.pmd.lang.java.ast.ASTLambdaExpression; import net.sourceforge.pmd.lang.java.ast.ASTMethodDeclaration; import net.sourceforge.pmd.lang.java.ast.ASTPackageDeclaration; import net.sourceforge.pmd.lang.java.ast.AbstractAnyTypeDeclaration; -import net.sourceforge.pmd.lang.java.ast.JavaParserVisitorReducedAdapter; +import net.sourceforge.pmd.lang.java.ast.JavaParserVisitorAdapter; import net.sourceforge.pmd.lang.java.ast.JavaQualifiableNode; import net.sourceforge.pmd.lang.java.ast.MethodLikeNode; import net.sourceforge.pmd.lang.java.ast.internal.PrettyPrintingUtil; @@ -45,7 +45,7 @@ import net.sourceforge.pmd.lang.java.typeresolution.PMDASMClassLoader; */ @Deprecated @InternalApi -public class QualifiedNameResolver extends JavaParserVisitorReducedAdapter { +public class QualifiedNameResolver extends JavaParserVisitorAdapter { // Package names to package representation. // Allows reusing the same list instance for the same packages. diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/design/CouplingBetweenObjectsRule.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/design/CouplingBetweenObjectsRule.java index c2d3f23236..2841f022e2 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/design/CouplingBetweenObjectsRule.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/design/CouplingBetweenObjectsRule.java @@ -54,9 +54,7 @@ public class CouplingBetweenObjectsRule extends AbstractJavaRule { typesFoundSoFar = new HashSet<>(); couplingCount = 0; - for (JavaNode child : cu.children()) { - child.jjtAccept(this, data); - } + cu.children().forEach(it -> it.acceptVisitor(this, data)); if (couplingCount > getProperty(THRESHOLD_DESCRIPTOR)) { addViolation(data, cu, diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/errorprone/MoreThanOneLoggerRule.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/errorprone/MoreThanOneLoggerRule.java index 2c7bcd023d..4a12afe969 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/errorprone/MoreThanOneLoggerRule.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/errorprone/MoreThanOneLoggerRule.java @@ -49,9 +49,7 @@ public class MoreThanOneLoggerRule extends AbstractJavaRule { stack.push(count); count = NumericConstants.ZERO; - for (JavaNode child : node.children()) { - child.jjtAccept(this, data); - } + node.children().forEach(it -> it.acceptVisitor(this, data)); if (count > 1) { addViolation(data, node); diff --git a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/ast/AccessNodeTest.java b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/ast/AccessNodeTest.java index 07552c6a62..0a2b8d8b26 100644 --- a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/ast/AccessNodeTest.java +++ b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/ast/AccessNodeTest.java @@ -22,16 +22,11 @@ public class AccessNodeTest extends BaseParserTest { super(i); } + @Override - public Object jjtAccept(JavaParserVisitor visitor, Object data) { + protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } - - - @Override - public void jjtAccept(SideEffectingVisitor visitor, T data) { - visitor.visit(this, data); - } } @Test diff --git a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/metrics/ProjectMemoizerTest.java b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/metrics/ProjectMemoizerTest.java index 6ce2960866..b11a593272 100644 --- a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/metrics/ProjectMemoizerTest.java +++ b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/metrics/ProjectMemoizerTest.java @@ -17,7 +17,7 @@ import org.junit.Test; import net.sourceforge.pmd.lang.java.ast.ASTAnyTypeDeclaration; import net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit; import net.sourceforge.pmd.lang.java.ast.ASTMethodOrConstructorDeclaration; -import net.sourceforge.pmd.lang.java.ast.JavaParserVisitorReducedAdapter; +import net.sourceforge.pmd.lang.java.ast.JavaParserVisitorAdapter; import net.sourceforge.pmd.lang.java.ast.MethodLikeNode; import net.sourceforge.pmd.lang.java.metrics.testdata.MetricsVisitorTestData; import net.sourceforge.pmd.lang.java.symboltable.BaseNonParserTest; @@ -65,7 +65,7 @@ public class ProjectMemoizerTest extends BaseNonParserTest { private List visitWith(ASTCompilationUnit acu, final boolean force) { final List result = new ArrayList<>(); - acu.jjtAccept(new JavaParserVisitorReducedAdapter() { + acu.jjtAccept(new JavaParserVisitorAdapter() { @Override public Object visit(ASTMethodOrConstructorDeclaration node, Object data) { if (opMetricKey.supports(node)) { diff --git a/pmd-jsp/pom.xml b/pmd-jsp/pom.xml index 19ec96b654..e591522561 100644 --- a/pmd-jsp/pom.xml +++ b/pmd-jsp/pom.xml @@ -39,7 +39,7 @@ generate-sources - + diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTAttribute.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTAttribute.java index f0148427e0..453b8cdd35 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTAttribute.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTAttribute.java @@ -48,7 +48,7 @@ public final class ASTAttribute extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTAttributeValue.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTAttributeValue.java index fb27af1df7..cb3f75865a 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTAttributeValue.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTAttributeValue.java @@ -11,7 +11,7 @@ public final class ASTAttributeValue extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCData.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCData.java index 28fb132a70..d4cdc78f2e 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCData.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCData.java @@ -11,7 +11,7 @@ public final class ASTCData extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCommentTag.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCommentTag.java index 0d82ec39a4..d342548997 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCommentTag.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCommentTag.java @@ -11,7 +11,7 @@ public final class ASTCommentTag extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCompilationUnit.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCompilationUnit.java index 2b36ed8dea..8679ee7e8d 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCompilationUnit.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTCompilationUnit.java @@ -13,7 +13,7 @@ public final class ASTCompilationUnit extends AbstractJspNode implements RootNod } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTContent.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTContent.java index 955868fea3..34e15a0af6 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTContent.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTContent.java @@ -11,7 +11,7 @@ public final class ASTContent extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDeclaration.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDeclaration.java index 239dd27386..cb20846be7 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDeclaration.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDeclaration.java @@ -21,7 +21,7 @@ public final class ASTDeclaration extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDoctypeDeclaration.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDoctypeDeclaration.java index 6a2dfc7f32..3044b11e97 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDoctypeDeclaration.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDoctypeDeclaration.java @@ -24,7 +24,7 @@ public final class ASTDoctypeDeclaration extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDoctypeExternalId.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDoctypeExternalId.java index 1c58ae5aa1..429f0ab224 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDoctypeExternalId.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTDoctypeExternalId.java @@ -45,7 +45,7 @@ public final class ASTDoctypeExternalId extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTElExpression.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTElExpression.java index 3a70816338..25d198518f 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTElExpression.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTElExpression.java @@ -11,7 +11,7 @@ public final class ASTElExpression extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTElement.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTElement.java index 6a9fe71b3b..498e48cc36 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTElement.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTElement.java @@ -78,7 +78,7 @@ public final class ASTElement extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTHtmlScript.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTHtmlScript.java index ab13b5043f..b8c06baf00 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTHtmlScript.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTHtmlScript.java @@ -11,7 +11,7 @@ public final class ASTHtmlScript extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspComment.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspComment.java index ae31ae2966..dbf5e0fb03 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspComment.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspComment.java @@ -11,7 +11,7 @@ public final class ASTJspComment extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDeclaration.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDeclaration.java index 5089a7d476..3236d8263a 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDeclaration.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDeclaration.java @@ -10,7 +10,7 @@ public final class ASTJspDeclaration extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDeclarations.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDeclarations.java index 439a9ff24e..66e81050cd 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDeclarations.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDeclarations.java @@ -11,7 +11,7 @@ public final class ASTJspDeclarations extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDirective.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDirective.java index f61ec9007d..57eb3f3e1c 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDirective.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDirective.java @@ -24,7 +24,7 @@ public final class ASTJspDirective extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDirectiveAttribute.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDirectiveAttribute.java index 77b5fdd40c..ecb8d21a77 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDirectiveAttribute.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDirectiveAttribute.java @@ -30,7 +30,7 @@ public final class ASTJspDirectiveAttribute extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDocument.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDocument.java index 7cfce1375d..e7a7fb0f4f 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDocument.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspDocument.java @@ -11,7 +11,7 @@ public final class ASTJspDocument extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspExpression.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspExpression.java index 84b13135bf..2bfe2ecfb7 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspExpression.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspExpression.java @@ -11,7 +11,7 @@ public final class ASTJspExpression extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspExpressionInAttribute.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspExpressionInAttribute.java index 607124b0eb..ac9af37f49 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspExpressionInAttribute.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspExpressionInAttribute.java @@ -11,7 +11,7 @@ public final class ASTJspExpressionInAttribute extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspScriptlet.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspScriptlet.java index c05043ae44..8cc6978a3d 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspScriptlet.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTJspScriptlet.java @@ -11,7 +11,7 @@ public final class ASTJspScriptlet extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + public R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTText.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTText.java index 465c0afae9..dc5ca05700 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTText.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTText.java @@ -11,7 +11,7 @@ public final class ASTText extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTUnparsedText.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTUnparsedText.java index c8698037e5..b4da2cbf61 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTUnparsedText.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTUnparsedText.java @@ -11,7 +11,7 @@ public final class ASTUnparsedText extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTValueBinding.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTValueBinding.java index 6798fce8cc..380feebe2c 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTValueBinding.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/ASTValueBinding.java @@ -11,7 +11,7 @@ public final class ASTValueBinding extends AbstractJspNode { } @Override - public Object jjtAccept(JspParserVisitor visitor, Object data) { + protected R acceptVisitor(JspVisitor visitor, P data) { return visitor.visit(this, data); } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/AbstractJspNode.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/AbstractJspNode.java index c2584110f9..8d7b35d06f 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/AbstractJspNode.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/AbstractJspNode.java @@ -4,6 +4,7 @@ package net.sourceforge.pmd.lang.jsp.ast; +import net.sourceforge.pmd.lang.ast.AstVisitor; import net.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode; abstract class AbstractJspNode extends AbstractJjtreeNode implements JspNode { @@ -12,6 +13,16 @@ abstract class AbstractJspNode extends AbstractJjtreeNode R acceptVisitor(AstVisitor visitor, P param) { + if (visitor instanceof JspVisitor) { + return this.acceptVisitor((JspVisitor) visitor, param); + } + return visitor.visitNode(this, param); + } + + protected abstract R acceptVisitor(JspVisitor visitor, P data); + @Override // override to make protected member accessible to parser protected void setImage(String image) { diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspNode.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspNode.java index 8412c2a2de..4fa8831f32 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspNode.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspNode.java @@ -4,13 +4,19 @@ package net.sourceforge.pmd.lang.jsp.ast; +import net.sourceforge.pmd.annotation.DeprecatedUntil700; +import net.sourceforge.pmd.lang.ast.AstVisitor; import net.sourceforge.pmd.lang.ast.impl.javacc.JjtreeNode; public interface JspNode extends JjtreeNode { /** - * Accept the visitor. + * @deprecated Use {@link #acceptVisitor(AstVisitor, Object)} */ - Object jjtAccept(JspParserVisitor visitor, Object data); + @Deprecated + @DeprecatedUntil700 + default Object jjtAccept(JspParserVisitor visitor, Object data) { + return acceptVisitor(visitor, data); + } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspParserVisitor.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspParserVisitor.java new file mode 100644 index 0000000000..d7e56efdf6 --- /dev/null +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspParserVisitor.java @@ -0,0 +1,24 @@ +/* + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +package net.sourceforge.pmd.lang.jsp.ast; + +import net.sourceforge.pmd.annotation.DeprecatedUntil700; +import net.sourceforge.pmd.lang.ast.Node; + +/** + * Backwards-compatibility only. + * + * @deprecated Use {@link JspVisitor} + */ +@Deprecated +@DeprecatedUntil700 +public interface JspParserVisitor extends JspVisitor { + + @Override + default Object visitNode(Node node, Object param) { + node.children().forEach(c -> c.acceptVisitor(this, param)); + return param; + } +} diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspParserVisitorAdapter.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspParserVisitorAdapter.java index 760515326c..917902e837 100644 --- a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspParserVisitorAdapter.java +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspParserVisitorAdapter.java @@ -4,6 +4,23 @@ package net.sourceforge.pmd.lang.jsp.ast; -public class JspParserVisitorAdapter implements JspParserVisitor { +import net.sourceforge.pmd.annotation.DeprecatedUntil700; +import net.sourceforge.pmd.lang.ast.Node; + + +/** + * Backwards-compatibility only. + * + * @deprecated Use {@link JspVisitorBase} + */ +@Deprecated +@DeprecatedUntil700 +public class JspParserVisitorAdapter extends JspVisitorBase implements JspParserVisitor { + + @Override + protected Object visitChildren(Node node, Object data) { + super.visitChildren(node, data); + return data; + } } diff --git a/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspVisitorBase.java b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspVisitorBase.java new file mode 100644 index 0000000000..952d2d3089 --- /dev/null +++ b/pmd-jsp/src/main/java/net/sourceforge/pmd/lang/jsp/ast/JspVisitorBase.java @@ -0,0 +1,11 @@ +/* + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +package net.sourceforge.pmd.lang.jsp.ast; + +import net.sourceforge.pmd.lang.ast.AstVisitorBase; + +public class JspVisitorBase extends AstVisitorBase implements JspVisitor { + +} diff --git a/pmd-scala-modules/pmd-scala-common/src/main/java/net/sourceforge/pmd/lang/scala/ast/ScalaParserVisitor.java b/pmd-scala-modules/pmd-scala-common/src/main/java/net/sourceforge/pmd/lang/scala/ast/ScalaParserVisitor.java index 2c52482a8e..bd2e20d17d 100644 --- a/pmd-scala-modules/pmd-scala-common/src/main/java/net/sourceforge/pmd/lang/scala/ast/ScalaParserVisitor.java +++ b/pmd-scala-modules/pmd-scala-common/src/main/java/net/sourceforge/pmd/lang/scala/ast/ScalaParserVisitor.java @@ -4,6 +4,8 @@ package net.sourceforge.pmd.lang.scala.ast; +import net.sourceforge.pmd.lang.ast.AstVisitor; + /** * A Visitor Pattern Interface for the Scala AST. * @@ -12,7 +14,8 @@ package net.sourceforge.pmd.lang.scala.ast; * @param * the type of the returned data from each visit method */ -public interface ScalaParserVisitor { +public interface ScalaParserVisitor extends AstVisitor { + /** * Visit an arbitrary Scala Node (any node in the tree). * diff --git a/pmd-scala-modules/pmd-scala-common/src/main/java/net/sourceforge/pmd/lang/scala/ast/ScalaParserVisitorAdapter.java b/pmd-scala-modules/pmd-scala-common/src/main/java/net/sourceforge/pmd/lang/scala/ast/ScalaParserVisitorAdapter.java index 763c06385d..0ab8199738 100644 --- a/pmd-scala-modules/pmd-scala-common/src/main/java/net/sourceforge/pmd/lang/scala/ast/ScalaParserVisitorAdapter.java +++ b/pmd-scala-modules/pmd-scala-common/src/main/java/net/sourceforge/pmd/lang/scala/ast/ScalaParserVisitorAdapter.java @@ -4,6 +4,8 @@ package net.sourceforge.pmd.lang.scala.ast; +import net.sourceforge.pmd.lang.ast.AstVisitorBase; + import scala.meta.Case; import scala.meta.Ctor; import scala.meta.Decl; @@ -28,30 +30,14 @@ import scala.meta.Type; /** * An Adapter for the Scala Parser that implements the Visitor Pattern. * - * @param - * The type of the data input - * @param - * The type of the returned data + * @param The type of the data input + * @param The type of the returned data */ -public class ScalaParserVisitorAdapter implements ScalaParserVisitor { - - /** Initial value when combining values returned by children. */ - protected R zero() { - return null; - } - - /** Merge two values of type R, used to combine values returned by children. */ - protected R combine(R acc, R r) { - return r; - } +public class ScalaParserVisitorAdapter extends AstVisitorBase implements ScalaParserVisitor { @Override public R visit(ScalaNode node, D data) { - R returnValue = zero(); - for (ScalaNode child : node.children()) { - returnValue = combine(returnValue, child.accept(this, data)); - } - return returnValue; + return visitChildren(node, data); } @Override