Deprecate childrenAccept in all modules
This commit is contained in:
@ -31,7 +31,7 @@ import net.sourceforge.pmd.lang.java.ast.impl.javacc.AbstractJjtreeNode;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public class AbstractVmNode extends AbstractJjtreeNode<Token> implements VmNode {
|
||||
public class AbstractVmNode extends AbstractJjtreeNode<VmNode, Token> implements VmNode {
|
||||
|
||||
/** */
|
||||
// TODO - It seems that this field is only valid when parsing, and should
|
||||
|
@ -13,9 +13,22 @@ public interface VmNode extends Node, TokenBasedNode<Token> {
|
||||
*/
|
||||
Object jjtAccept(VmParserVisitor visitor, Object data);
|
||||
|
||||
|
||||
/**
|
||||
* Accept the visitor. *
|
||||
*
|
||||
* @deprecated This method is not useful, the logic for combining
|
||||
* children values should be present on the visitor, not the node
|
||||
*/
|
||||
@Deprecated
|
||||
Object childrenAccept(VmParserVisitor visitor, Object data);
|
||||
|
||||
|
||||
@Override
|
||||
VmNode getChild(int index);
|
||||
|
||||
|
||||
@Override
|
||||
VmNode getParent();
|
||||
|
||||
}
|
||||
|
@ -3,10 +3,24 @@ package net.sourceforge.pmd.lang.vm.ast;
|
||||
|
||||
public class VmParserVisitorAdapter implements VmParserVisitor {
|
||||
|
||||
|
||||
/** Initial value when combining values returned by children. */
|
||||
protected Object zero() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/** Merge two values of type R, used to combine values returned by children. */
|
||||
protected Object combine(Object acc, Object r) {
|
||||
return r;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object visit(final VmNode node, final Object data) {
|
||||
node.childrenAccept(this, data);
|
||||
return null;
|
||||
Object returnValue = zero();
|
||||
for (int i = 0; i < node.jjtGetNumChildren(); ++i) {
|
||||
returnValue = combine(returnValue, node.getChild(i).jjtAccept(this, data));
|
||||
}
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -82,7 +82,9 @@ public abstract class AbstractVmRule extends AbstractRule implements VmParserVis
|
||||
|
||||
@Override
|
||||
public Object visit(final VmNode node, final Object data) {
|
||||
node.childrenAccept(this, data);
|
||||
for (int i = 0; i < node.jjtGetNumChildren(); ++i) {
|
||||
node.getChild(i).jjtAccept(this, data);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user