Class TreeScanner<R,P>
java.lang.Object
com.sun.source.util.TreeScanner<R,P>
- Type Parameters:
R- the return type of this visitor's methods. UseVoidfor visitors that do not need to return results.P- the type of the additional parameter to this visitor's methods. UseVoidfor visitors that do not need an additional parameter.
- All Implemented Interfaces:
TreeVisitor<R,P>
- Direct Known Subclasses:
TreePathScanner
A TreeVisitor that visits all the child tree nodes.
To visit nodes of a particular type, just override the
corresponding visitXYZ method.
Inside your method, call super.visitXYZ to visit descendant
nodes.
Here is an example to count the number of identifier nodes in a tree:
class CountIdentifiers extends TreeScanner<Integer,Void> {
@Override
public Integer visitIdentifier(IdentifierTree node, Void p) {
return 1;
}
@Override
public Integer reduce(Integer r1, Integer r2) {
return (r1 == null ? 0 : r1) + (r2 == null ? 0 : r2);
}
}
- Since:
- 1.6
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReduces two results into a combined result.Scans a single node.Scans a sequence of nodes.visitAnnotatedType(AnnotatedTypeTree node, P p) Visits anAnnotatedTypeTreenode.visitAnnotation(AnnotationTree node, P p) Visits anAnnotatedTreenode.visitAnyPattern(AnyPatternTree node, P p) Visits aAnyPatternTreenode.visitArrayAccess(ArrayAccessTree node, P p) Visits anArrayAccessTreenode.visitArrayType(ArrayTypeTree node, P p) Visits anArrayTypeTreenode.visitAssert(AssertTree node, P p) Visits anAssertTreenode.visitAssignment(AssignmentTree node, P p) Visits anAssignmentTreenode.visitBinary(BinaryTree node, P p) Visits aBinaryTreenode.visitBindingPattern(BindingPatternTree node, P p) Visits aBindingPatternTreenode.visitBlock(BlockTree node, P p) Visits aBlockTreenode.visitBreak(BreakTree node, P p) Visits aBreakTreenode.Visits aCaseTreenode.visitCatch(CatchTree node, P p) Visits aCatchTreenode.visitClass(ClassTree node, P p) Visits aClassTreenode.visitCompilationUnit(CompilationUnitTree node, P p) Visits aCompilationUnitTreenode.Visits aCompoundAssignmentTreenode.Visits aConditionalExpressionTreenode.visitConstantCaseLabel(ConstantCaseLabelTree node, P p) Visits aConstantCaseLabelTreenode.visitContinue(ContinueTree node, P p) Visits aContinueTreenode.Visits aDeconstructionPatternTreenode.visitDefaultCaseLabel(DefaultCaseLabelTree node, P p) Visits aDefaultCaseLabelTreenode.visitDoWhileLoop(DoWhileLoopTree node, P p) Visits aDoWhileTreenode.visitEmptyStatement(EmptyStatementTree node, P p) Visits anEmptyStatementTreenode.visitEnhancedForLoop(EnhancedForLoopTree node, P p) Visits anEnhancedForLoopTreenode.visitErroneous(ErroneousTree node, P p) Visits anErroneousTreenode.visitExports(ExportsTree node, P p) Visits anExportsTreenode.Visits anExpressionStatementTreenode.visitForLoop(ForLoopTree node, P p) Visits aForLoopTreenode.visitIdentifier(IdentifierTree node, P p) Visits anIdentifierTreenode.Visits anIfTreenode.visitImport(ImportTree node, P p) Visits anImportTreenode.visitInstanceOf(InstanceOfTree node, P p) Visits anInstanceOfTreenode.visitIntersectionType(IntersectionTypeTree node, P p) Visits anIntersectionTypeTreenode.visitLabeledStatement(LabeledStatementTree node, P p) Visits aLabeledStatementTreenode.visitLambdaExpression(LambdaExpressionTree node, P p) Visits aLambdaExpressionTreenode.visitLiteral(LiteralTree node, P p) Visits aLiteralTreenode.visitMemberReference(MemberReferenceTree node, P p) Visits aMemberReferenceTreenode.visitMemberSelect(MemberSelectTree node, P p) Visits aMemberSelectTreenode.visitMethod(MethodTree node, P p) Visits aMethodTreenode.visitMethodInvocation(MethodInvocationTree node, P p) Visits aMethodInvocationTreenode.visitModifiers(ModifiersTree node, P p) Visits aModifiersTreenode.visitModule(ModuleTree node, P p) Visits aModuleTreenode.visitNewArray(NewArrayTree node, P p) Visits aNewArrayTreenode.visitNewClass(NewClassTree node, P p) Visits aNewClassTreenode.visitOpens(OpensTree node, P p) Visits anOpensTreenode.visitOther(Tree node, P p) Visits an unknown type ofTreenode.visitPackage(PackageTree node, P p) Visits aPackageTreenode.visitParameterizedType(ParameterizedTypeTree node, P p) Visits aParameterizedTypeTreenode.visitParenthesized(ParenthesizedTree node, P p) Visits aParenthesizedTreenode.visitPatternCaseLabel(PatternCaseLabelTree node, P p) Visits aPatternCaseLabelTreenode.visitPrimitiveType(PrimitiveTypeTree node, P p) Visits aPrimitiveTypeTreenode.visitProvides(ProvidesTree node, P p) Visits aProvidesTreenode.visitRequires(RequiresTree node, P p) Visits aRequiresTreenode.visitReturn(ReturnTree node, P p) Visits aReturnTreenode.visitSwitch(SwitchTree node, P p) Visits aSwitchTreenode.visitSwitchExpression(SwitchExpressionTree node, P p) Visits aSwitchExpressionTreenode.visitSynchronized(SynchronizedTree node, P p) Visits aSynchronizedTreenode.visitThrow(ThrowTree node, P p) Visits aThrowTreenode.Visits aTryTreenode.visitTypeCast(TypeCastTree node, P p) Visits aTypeCastTreenode.visitTypeParameter(TypeParameterTree node, P p) Visits aTypeParameterTreenode.visitUnary(UnaryTree node, P p) Visits aUnaryTreenode.visitUnionType(UnionTypeTree node, P p) Visits aUnionTypeTreenode.Visits aUsesTreenode.visitVariable(VariableTree node, P p) Visits aVariableTreenode.visitWhileLoop(WhileLoopTree node, P p) Visits aWhileLoopTreenode.visitWildcard(WildcardTree node, P p) Visits aWildcardTypeTreenode.visitYield(YieldTree node, P p) Visits aYieldTreenode.
-
Constructor Details
-
TreeScanner
public TreeScanner()Constructs aTreeScanner.
-
-
Method Details
-
scan
-
scan
-
reduce
Reduces two results into a combined result. The default implementation is to return the first parameter. The general contract of the method is that it may take any action whatsoever.- Parameters:
r1- the first of the values to be combinedr2- the second of the values to be combined- Returns:
- the result of combining the two parameters
-
visitCompilationUnit
Visits aCompilationUnitTreenode.- Specified by:
visitCompilationUnitin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitPackage
Visits aPackageTreenode.- Specified by:
visitPackagein interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitImport
Visits anImportTreenode.- Specified by:
visitImportin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitClass
Visits aClassTreenode.- Specified by:
visitClassin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitMethod
Visits aMethodTreenode.- Specified by:
visitMethodin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitVariable
Visits aVariableTreenode.- Specified by:
visitVariablein interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitEmptyStatement
Visits anEmptyStatementTreenode.- Specified by:
visitEmptyStatementin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitBlock
Visits aBlockTreenode.- Specified by:
visitBlockin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitDoWhileLoop
Visits aDoWhileTreenode.- Specified by:
visitDoWhileLoopin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitWhileLoop
Visits aWhileLoopTreenode.- Specified by:
visitWhileLoopin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitForLoop
Visits aForLoopTreenode.- Specified by:
visitForLoopin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitEnhancedForLoop
Visits anEnhancedForLoopTreenode.- Specified by:
visitEnhancedForLoopin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitLabeledStatement
Visits aLabeledStatementTreenode.- Specified by:
visitLabeledStatementin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitSwitch
Visits aSwitchTreenode.- Specified by:
visitSwitchin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitSwitchExpression
Visits aSwitchExpressionTreenode.- Specified by:
visitSwitchExpressionin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
- Since:
- 14
-
visitCase
-
visitSynchronized
Visits aSynchronizedTreenode.- Specified by:
visitSynchronizedin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitTry
-
visitCatch
Visits aCatchTreenode.- Specified by:
visitCatchin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitConditionalExpression
Visits aConditionalExpressionTreenode.- Specified by:
visitConditionalExpressionin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitIf
-
visitExpressionStatement
Visits anExpressionStatementTreenode.- Specified by:
visitExpressionStatementin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitBreak
Visits aBreakTreenode.- Specified by:
visitBreakin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitContinue
Visits aContinueTreenode.- Specified by:
visitContinuein interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitReturn
Visits aReturnTreenode.- Specified by:
visitReturnin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitThrow
Visits aThrowTreenode.- Specified by:
visitThrowin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitAssert
Visits anAssertTreenode.- Specified by:
visitAssertin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitMethodInvocation
Visits aMethodInvocationTreenode.- Specified by:
visitMethodInvocationin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitNewClass
Visits aNewClassTreenode.- Specified by:
visitNewClassin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitNewArray
Visits aNewArrayTreenode.- Specified by:
visitNewArrayin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitLambdaExpression
Visits aLambdaExpressionTreenode.- Specified by:
visitLambdaExpressionin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitParenthesized
Visits aParenthesizedTreenode.- Specified by:
visitParenthesizedin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitAssignment
Visits anAssignmentTreenode.- Specified by:
visitAssignmentin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitCompoundAssignment
Visits aCompoundAssignmentTreenode.- Specified by:
visitCompoundAssignmentin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitUnary
Visits aUnaryTreenode.- Specified by:
visitUnaryin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitBinary
Visits aBinaryTreenode.- Specified by:
visitBinaryin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitTypeCast
Visits aTypeCastTreenode.- Specified by:
visitTypeCastin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitInstanceOf
Visits anInstanceOfTreenode.- Specified by:
visitInstanceOfin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitAnyPattern
Visits aAnyPatternTreenode.- Specified by:
visitAnyPatternin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
- Since:
- 21
-
visitBindingPattern
Visits aBindingPatternTreenode.- Specified by:
visitBindingPatternin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
- Since:
- 14
-
visitDefaultCaseLabel
Visits aDefaultCaseLabelTreenode.- Specified by:
visitDefaultCaseLabelin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
- Since:
- 21
-
visitConstantCaseLabel
Visits aConstantCaseLabelTreenode.- Specified by:
visitConstantCaseLabelin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
- Since:
- 21
-
visitPatternCaseLabel
Visits aPatternCaseLabelTreenode.- Specified by:
visitPatternCaseLabelin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
- Since:
- 21
-
visitDeconstructionPattern
Visits aDeconstructionPatternTreenode.- Specified by:
visitDeconstructionPatternin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
- Since:
- 21
-
visitArrayAccess
Visits anArrayAccessTreenode. This implementation scans the children in left to right order.- Specified by:
visitArrayAccessin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitMemberSelect
Visits aMemberSelectTreenode.- Specified by:
visitMemberSelectin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitMemberReference
Visits aMemberReferenceTreenode.- Specified by:
visitMemberReferencein interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitIdentifier
Visits anIdentifierTreenode.- Specified by:
visitIdentifierin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitLiteral
Visits aLiteralTreenode.- Specified by:
visitLiteralin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitPrimitiveType
Visits aPrimitiveTypeTreenode.- Specified by:
visitPrimitiveTypein interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitArrayType
Visits anArrayTypeTreenode.- Specified by:
visitArrayTypein interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitParameterizedType
Visits aParameterizedTypeTreenode.- Specified by:
visitParameterizedTypein interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitUnionType
Visits aUnionTypeTreenode.- Specified by:
visitUnionTypein interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitIntersectionType
Visits anIntersectionTypeTreenode.- Specified by:
visitIntersectionTypein interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitTypeParameter
Visits aTypeParameterTreenode.- Specified by:
visitTypeParameterin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitWildcard
Visits aWildcardTypeTreenode.- Specified by:
visitWildcardin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitModifiers
Visits aModifiersTreenode.- Specified by:
visitModifiersin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitAnnotation
Visits anAnnotatedTreenode.- Specified by:
visitAnnotationin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitAnnotatedType
Visits anAnnotatedTypeTreenode.- Specified by:
visitAnnotatedTypein interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitModule
Visits aModuleTreenode.- Specified by:
visitModulein interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitExports
Visits anExportsTreenode.- Specified by:
visitExportsin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitOpens
Visits anOpensTreenode.- Specified by:
visitOpensin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitProvides
Visits aProvidesTreenode.- Specified by:
visitProvidesin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitRequires
Visits aRequiresTreenode.- Specified by:
visitRequiresin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitUses
-
visitOther
Visits an unknown type ofTreenode. This can occur if the language evolves and new kinds of nodes are added to theTreehierarchy.- Specified by:
visitOtherin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitErroneous
Visits anErroneousTreenode.- Specified by:
visitErroneousin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
-
visitYield
Visits aYieldTreenode.- Specified by:
visitYieldin interfaceTreeVisitor<R,P> - Parameters:
node- the node being visitedp- a parameter value- Returns:
- the result of scanning
- Since:
- 14
-