Package net.sourceforge.pmd.lang.ast
Interface AstVisitor<P,R>
-
- Type Parameters:
P- Parameter type of the visit methodR- Return type of the visit method
- All Known Implementing Classes:
AstVisitorBase
public interface AstVisitor<P,R>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
visitmethods manually, instead callingNode::acceptVisitor, which then dispatches to the most specific method of the visitor instance.Use
Voidas a type parameter if you don't want a parameter type or a return type.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default RcannotVisit(Node node, P param)Called by a node when it detects that the visitor is not of the language it is used to visiting.RvisitNode(Node node, P param)Visit a node.
-
-
-
Method Detail
-
cannotVisit
default R cannotVisit(Node node, P param)
Called by a node when it detects that the visitor is not of the language it is used to visiting. If a visitor wants to visit nodes for several languages, it should provide a useful implementation of this method. The default implementation throws- Parameters:
node- Node calling back this methodparam- Parameter of the visit- Returns:
- A value (or may throw)
-
visitNode
R visitNode(Node node, P param)
Visit a node. This method is dispatched statically, you should useNode.acceptVisitor(AstVisitor, Object)if you want to call the most specific method instead.- Parameters:
node- Node to visitparam- Parameter- Returns:
- Some result
-
-