Module jdk.compiler

Interface TreeVisitor<R,P>

Type Parameters:
R - the return type of this visitor's methods. Use Void for visitors that do not need to return results.
P - the type of the additional parameter to this visitor's methods. Use Void for visitors that do not need an additional parameter.
All Known Implementing Classes:
SimpleTreeVisitor, TreePathScanner, TreeScanner

public interface TreeVisitor<R,P>
A visitor of trees, in the style of the visitor design pattern. Classes implementing this interface are used to operate on a tree when the kind of tree is unknown at compile time. When a visitor is passed to a tree's accept method, the visitXyz method most applicable to that tree is invoked.

Classes implementing this interface may or may not throw a NullPointerException if the additional parameter p is null; see documentation of the implementing class for details.

WARNING: It is possible that methods will be added to this interface to accommodate new, currently unknown, language structures added to future versions of the Java programming language. Therefore, visitor classes directly implementing this interface may be source incompatible with future versions of the platform.

Since:
1.6
  • Method Details

    • visitAnnotatedType

      R visitAnnotatedType(AnnotatedTypeTree node, P p)
      Visits an AnnotatedTypeTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitAnnotation

      R visitAnnotation(AnnotationTree node, P p)
      Visits an AnnotatedTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitMethodInvocation

      R visitMethodInvocation(MethodInvocationTree node, P p)
      Visits a MethodInvocationTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitAssert

      R visitAssert(AssertTree node, P p)
      Visits an AssertTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitAssignment

      R visitAssignment(AssignmentTree node, P p)
      Visits an AssignmentTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitCompoundAssignment

      R visitCompoundAssignment(CompoundAssignmentTree node, P p)
      Visits a CompoundAssignmentTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitBinary

      R visitBinary(BinaryTree node, P p)
      Visits a BinaryTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitBlock

      R visitBlock(BlockTree node, P p)
      Visits a BlockTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitBreak

      R visitBreak(BreakTree node, P p)
      Visits a BreakTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitCase

      R visitCase(CaseTree node, P p)
      Visits a CaseTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitCatch

      R visitCatch(CatchTree node, P p)
      Visits a CatchTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitClass

      R visitClass(ClassTree node, P p)
      Visits a ClassTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitConditionalExpression

      R visitConditionalExpression(ConditionalExpressionTree node, P p)
      Visits a ConditionalExpressionTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitContinue

      R visitContinue(ContinueTree node, P p)
      Visits a ContinueTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitDoWhileLoop

      R visitDoWhileLoop(DoWhileLoopTree node, P p)
      Visits a DoWhileTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitErroneous

      R visitErroneous(ErroneousTree node, P p)
      Visits an ErroneousTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitExpressionStatement

      R visitExpressionStatement(ExpressionStatementTree node, P p)
      Visits an ExpressionStatementTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitEnhancedForLoop

      R visitEnhancedForLoop(EnhancedForLoopTree node, P p)
      Visits an EnhancedForLoopTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitForLoop

      R visitForLoop(ForLoopTree node, P p)
      Visits a ForLoopTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitIdentifier

      R visitIdentifier(IdentifierTree node, P p)
      Visits an IdentifierTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitIf

      R visitIf(IfTree node, P p)
      Visits an IfTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitImport

      R visitImport(ImportTree node, P p)
      Visits an ImportTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitArrayAccess

      R visitArrayAccess(ArrayAccessTree node, P p)
      Visits an ArrayAccessTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitLabeledStatement

      R visitLabeledStatement(LabeledStatementTree node, P p)
      Visits a LabeledStatementTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitLiteral

      R visitLiteral(LiteralTree node, P p)
      Visits a LiteralTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitBindingPattern

      R visitBindingPattern(BindingPatternTree node, P p)
      Visits a BindingPatternTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
      Since:
      16
    • visitDefaultCaseLabel

      R visitDefaultCaseLabel(DefaultCaseLabelTreePREVIEW node, P p)
      visitDefaultCaseLabel is a reflective preview API of the Java platform.
      Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.
      Visits a DefaultCaseLabelTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
      Since:
      17
    • visitConstantCaseLabel

      R visitConstantCaseLabel(ConstantCaseLabelTreePREVIEW node, P p)
      visitConstantCaseLabel is a reflective preview API of the Java platform.
      Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.
      Visits a ConstantCaseLabelTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
      Since:
      19
    • visitPatternCaseLabel

      R visitPatternCaseLabel(PatternCaseLabelTreePREVIEW node, P p)
      visitPatternCaseLabel is a reflective preview API of the Java platform.
      Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.
      Visits a PatternCaseLabelTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
      Since:
      19
    • visitDeconstructionPattern

      R visitDeconstructionPattern(DeconstructionPatternTreePREVIEW node, P p)
      visitDeconstructionPattern is a reflective preview API of the Java platform.
      Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.
      Visits a DeconstructionPatternTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
      Since:
      19
    • visitMethod

      R visitMethod(MethodTree node, P p)
      Visits a MethodTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitModifiers

      R visitModifiers(ModifiersTree node, P p)
      Visits a ModifiersTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitNewArray

      R visitNewArray(NewArrayTree node, P p)
      Visits a NewArrayTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitParenthesizedPattern

      R visitParenthesizedPattern(ParenthesizedPatternTreePREVIEW node, P p)
      visitParenthesizedPattern is a reflective preview API of the Java platform.
      Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.
      Visits a ParenthesizedPatternTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
      Since:
      17
    • visitNewClass

      R visitNewClass(NewClassTree node, P p)
      Visits a NewClassTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitLambdaExpression

      R visitLambdaExpression(LambdaExpressionTree node, P p)
      Visits a LambdaExpressionTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitPackage

      R visitPackage(PackageTree node, P p)
      Visits a PackageTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitParenthesized

      R visitParenthesized(ParenthesizedTree node, P p)
      Visits a ParenthesizedTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitReturn

      R visitReturn(ReturnTree node, P p)
      Visits a ReturnTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitMemberSelect

      R visitMemberSelect(MemberSelectTree node, P p)
      Visits a MemberSelectTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitMemberReference

      R visitMemberReference(MemberReferenceTree node, P p)
      Visits a MemberReferenceTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitEmptyStatement

      R visitEmptyStatement(EmptyStatementTree node, P p)
      Visits an EmptyStatementTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitSwitch

      R visitSwitch(SwitchTree node, P p)
      Visits a SwitchTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitSwitchExpression

      R visitSwitchExpression(SwitchExpressionTree node, P p)
      Visits a SwitchExpressionTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
      Since:
      12
    • visitSynchronized

      R visitSynchronized(SynchronizedTree node, P p)
      Visits a SynchronizedTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitThrow

      R visitThrow(ThrowTree node, P p)
      Visits a ThrowTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitCompilationUnit

      R visitCompilationUnit(CompilationUnitTree node, P p)
      Visits a CompilationUnitTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitTry

      R visitTry(TryTree node, P p)
      Visits a TryTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitParameterizedType

      R visitParameterizedType(ParameterizedTypeTree node, P p)
      Visits a ParameterizedTypeTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitUnionType

      R visitUnionType(UnionTypeTree node, P p)
      Visits a UnionTypeTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitIntersectionType

      R visitIntersectionType(IntersectionTypeTree node, P p)
      Visits an IntersectionTypeTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitArrayType

      R visitArrayType(ArrayTypeTree node, P p)
      Visits an ArrayTypeTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitTypeCast

      R visitTypeCast(TypeCastTree node, P p)
      Visits a TypeCastTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitPrimitiveType

      R visitPrimitiveType(PrimitiveTypeTree node, P p)
      Visits a PrimitiveTypeTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitTypeParameter

      R visitTypeParameter(TypeParameterTree node, P p)
      Visits a TypeParameterTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitInstanceOf

      R visitInstanceOf(InstanceOfTree node, P p)
      Visits an InstanceOfTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitUnary

      R visitUnary(UnaryTree node, P p)
      Visits a UnaryTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitVariable

      R visitVariable(VariableTree node, P p)
      Visits a VariableTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitWhileLoop

      R visitWhileLoop(WhileLoopTree node, P p)
      Visits a WhileLoopTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitWildcard

      R visitWildcard(WildcardTree node, P p)
      Visits a WildcardTypeTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitModule

      R visitModule(ModuleTree node, P p)
      Visits a ModuleTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitExports

      R visitExports(ExportsTree node, P p)
      Visits an ExportsTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitOpens

      R visitOpens(OpensTree node, P p)
      Visits an OpensTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitProvides

      R visitProvides(ProvidesTree node, P p)
      Visits a ProvidesTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitRequires

      R visitRequires(RequiresTree node, P p)
      Visits a RequiresTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitUses

      R visitUses(UsesTree node, P p)
      Visits a UsesTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitOther

      R visitOther(Tree node, P p)
      Visits an unknown type of Tree node. This can occur if the language evolves and new kinds of nodes are added to the Tree hierarchy.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
    • visitYield

      R visitYield(YieldTree node, P p)
      Visits a YieldTree node.
      Parameters:
      node - the node being visited
      p - a parameter value
      Returns:
      a result value
      Since:
      13