com.sun.javafx.api.tree
Class JavaFXTreeScanner<R,P>

java.lang.Object
  extended by com.sun.javafx.api.tree.JavaFXTreeScanner<R,P>
All Implemented Interfaces:
JavaFXTreeVisitor<R,P>
Direct Known Subclasses:
JavaFXTreePathScanner

public class JavaFXTreeScanner<R,P>
extends java.lang.Object
implements JavaFXTreeVisitor<R,P>

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.

The default implementation of the visitXYZ methods will determine a result as follows:

Here is an example to count the number of identifier nodes in a tree:

   class CountIdentifiers extends TreeScanner {
      @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);
      }
   }
 
Java version by:

See Also:
TreeScanner

Constructor Summary
JavaFXTreeScanner()
           
 
Method Summary
 R reduce(R r1, R r2)
          Reduces two results into a combined result.
 R scan(java.lang.Iterable<? extends Tree> nodes, P p)
          Scan a list of nodes.
 R scan(Tree node, P p)
          Scan a single node.
 R visitAssignment(AssignmentTree node, P p)
           
 R visitBinary(BinaryTree node, P p)
           
 R visitBlockExpression(BlockExpressionTree node, P p)
           
 R visitBreak(BreakTree node, P p)
           
 R visitCatch(CatchTree node, P p)
           
 R visitClassDeclaration(ClassDeclarationTree node, P p)
           
 R visitCompilationUnit(UnitTree node, P p)
           
 R visitCompoundAssignment(CompoundAssignmentTree node, P p)
           
 R visitConditionalExpression(ConditionalExpressionTree node, P p)
           
 R visitContinue(ContinueTree node, P p)
           
 R visitEmptyStatement(EmptyStatementTree node, P p)
           
 R visitErroneous(ErroneousTree node, P p)
           
 R visitForExpression(ForExpressionTree node, P p)
           
 R visitForExpressionInClause(ForExpressionInClauseTree node, P p)
           
 R visitFunctionDefinition(FunctionDefinitionTree node, P p)
           
 R visitFunctionValue(FunctionValueTree node, P p)
           
 R visitIdentifier(IdentifierTree node, P p)
           
 R visitImport(ImportTree node, P p)
           
 R visitIndexof(IndexofTree node, P p)
           
 R visitInitDefinition(InitDefinitionTree node, P p)
           
 R visitInstanceOf(InstanceOfTree node, P p)
           
 R visitInstantiate(InstantiateTree node, P p)
           
 R visitInterpolateValue(InterpolateValueTree node, P p)
           
 R visitKeyFrameLiteral(KeyFrameLiteralTree node, P p)
           
 R visitLiteral(LiteralTree node, P p)
           
 R visitMemberSelect(MemberSelectTree node, P p)
           
 R visitMethodInvocation(FunctionInvocationTree node, P p)
           
 R visitMissingExpression(ExpressionTree node, P p)
           
 R visitModifiers(ModifiersTree node, P p)
           
 R visitObjectLiteralPart(ObjectLiteralPartTree node, P p)
           
 R visitOnReplace(OnReplaceTree node, P p)
           
 R visitParenthesized(ParenthesizedTree node, P p)
           
 R visitPostInitDefinition(InitDefinitionTree node, P p)
           
 R visitReturn(ReturnTree node, P p)
           
 R visitSequenceDelete(SequenceDeleteTree node, P p)
           
 R visitSequenceEmpty(SequenceEmptyTree node, P p)
           
 R visitSequenceExplicit(SequenceExplicitTree node, P p)
           
 R visitSequenceIndexed(SequenceIndexedTree node, P p)
           
 R visitSequenceInsert(SequenceInsertTree node, P p)
           
 R visitSequenceRange(SequenceRangeTree node, P p)
           
 R visitSequenceSlice(SequenceSliceTree node, P p)
           
 R visitStringExpression(StringExpressionTree node, P p)
           
 R visitThrow(ThrowTree node, P p)
           
 R visitTimeLiteral(TimeLiteralTree node, P p)
           
 R visitTrigger(TriggerTree node, P p)
           
 R visitTry(TryTree node, P p)
           
 R visitTypeAny(TypeAnyTree node, P p)
           
 R visitTypeArray(TypeArrayTree node, P p)
           
 R visitTypeCast(TypeCastTree node, P p)
           
 R visitTypeClass(TypeClassTree node, P p)
           
 R visitTypeFunctional(TypeFunctionalTree node, P p)
           
 R visitTypeUnknown(TypeUnknownTree node, P p)
           
 R visitUnary(UnaryTree node, P p)
           
 R visitVariable(VariableTree node, P p)
           
 R visitVariableInvalidate(VariableInvalidateTree node, P p)
           
 R visitWhileLoop(WhileLoopTree node, P p)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JavaFXTreeScanner

public JavaFXTreeScanner()
Method Detail

scan

public R scan(Tree node,
              P p)
Scan a single node.


scan

public R scan(java.lang.Iterable<? extends Tree> nodes,
              P p)
Scan a list of nodes.


reduce

public R reduce(R r1,
                R r2)
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.


visitCompilationUnit

public R visitCompilationUnit(UnitTree node,
                              P p)
Specified by:
visitCompilationUnit in interface JavaFXTreeVisitor<R,P>

visitImport

public R visitImport(ImportTree node,
                     P p)
Specified by:
visitImport in interface JavaFXTreeVisitor<R,P>

visitEmptyStatement

public R visitEmptyStatement(EmptyStatementTree node,
                             P p)
Specified by:
visitEmptyStatement in interface JavaFXTreeVisitor<R,P>

visitWhileLoop

public R visitWhileLoop(WhileLoopTree node,
                        P p)
Specified by:
visitWhileLoop in interface JavaFXTreeVisitor<R,P>

visitTry

public R visitTry(TryTree node,
                  P p)
Specified by:
visitTry in interface JavaFXTreeVisitor<R,P>

visitCatch

public R visitCatch(CatchTree node,
                    P p)
Specified by:
visitCatch in interface JavaFXTreeVisitor<R,P>

visitConditionalExpression

public R visitConditionalExpression(ConditionalExpressionTree node,
                                    P p)
Specified by:
visitConditionalExpression in interface JavaFXTreeVisitor<R,P>

visitBreak

public R visitBreak(BreakTree node,
                    P p)
Specified by:
visitBreak in interface JavaFXTreeVisitor<R,P>

visitContinue

public R visitContinue(ContinueTree node,
                       P p)
Specified by:
visitContinue in interface JavaFXTreeVisitor<R,P>

visitReturn

public R visitReturn(ReturnTree node,
                     P p)
Specified by:
visitReturn in interface JavaFXTreeVisitor<R,P>

visitThrow

public R visitThrow(ThrowTree node,
                    P p)
Specified by:
visitThrow in interface JavaFXTreeVisitor<R,P>

visitMethodInvocation

public R visitMethodInvocation(FunctionInvocationTree node,
                               P p)
Specified by:
visitMethodInvocation in interface JavaFXTreeVisitor<R,P>

visitParenthesized

public R visitParenthesized(ParenthesizedTree node,
                            P p)
Specified by:
visitParenthesized in interface JavaFXTreeVisitor<R,P>

visitAssignment

public R visitAssignment(AssignmentTree node,
                         P p)
Specified by:
visitAssignment in interface JavaFXTreeVisitor<R,P>

visitCompoundAssignment

public R visitCompoundAssignment(CompoundAssignmentTree node,
                                 P p)
Specified by:
visitCompoundAssignment in interface JavaFXTreeVisitor<R,P>

visitUnary

public R visitUnary(UnaryTree node,
                    P p)
Specified by:
visitUnary in interface JavaFXTreeVisitor<R,P>

visitBinary

public R visitBinary(BinaryTree node,
                     P p)
Specified by:
visitBinary in interface JavaFXTreeVisitor<R,P>

visitTypeCast

public R visitTypeCast(TypeCastTree node,
                       P p)
Specified by:
visitTypeCast in interface JavaFXTreeVisitor<R,P>

visitInstanceOf

public R visitInstanceOf(InstanceOfTree node,
                         P p)
Specified by:
visitInstanceOf in interface JavaFXTreeVisitor<R,P>

visitMemberSelect

public R visitMemberSelect(MemberSelectTree node,
                           P p)
Specified by:
visitMemberSelect in interface JavaFXTreeVisitor<R,P>

visitIdentifier

public R visitIdentifier(IdentifierTree node,
                         P p)
Specified by:
visitIdentifier in interface JavaFXTreeVisitor<R,P>

visitLiteral

public R visitLiteral(LiteralTree node,
                      P p)
Specified by:
visitLiteral in interface JavaFXTreeVisitor<R,P>

visitModifiers

public R visitModifiers(ModifiersTree node,
                        P p)
Specified by:
visitModifiers in interface JavaFXTreeVisitor<R,P>

visitErroneous

public R visitErroneous(ErroneousTree node,
                        P p)
Specified by:
visitErroneous in interface JavaFXTreeVisitor<R,P>

visitBlockExpression

public R visitBlockExpression(BlockExpressionTree node,
                              P p)
Specified by:
visitBlockExpression in interface JavaFXTreeVisitor<R,P>

visitClassDeclaration

public R visitClassDeclaration(ClassDeclarationTree node,
                               P p)
Specified by:
visitClassDeclaration in interface JavaFXTreeVisitor<R,P>

visitForExpression

public R visitForExpression(ForExpressionTree node,
                            P p)
Specified by:
visitForExpression in interface JavaFXTreeVisitor<R,P>

visitForExpressionInClause

public R visitForExpressionInClause(ForExpressionInClauseTree node,
                                    P p)
Specified by:
visitForExpressionInClause in interface JavaFXTreeVisitor<R,P>

visitIndexof

public R visitIndexof(IndexofTree node,
                      P p)
Specified by:
visitIndexof in interface JavaFXTreeVisitor<R,P>

visitInitDefinition

public R visitInitDefinition(InitDefinitionTree node,
                             P p)
Specified by:
visitInitDefinition in interface JavaFXTreeVisitor<R,P>

visitPostInitDefinition

public R visitPostInitDefinition(InitDefinitionTree node,
                                 P p)
Specified by:
visitPostInitDefinition in interface JavaFXTreeVisitor<R,P>

visitInstantiate

public R visitInstantiate(InstantiateTree node,
                          P p)
Specified by:
visitInstantiate in interface JavaFXTreeVisitor<R,P>

visitInterpolateValue

public R visitInterpolateValue(InterpolateValueTree node,
                               P p)
Specified by:
visitInterpolateValue in interface JavaFXTreeVisitor<R,P>

visitKeyFrameLiteral

public R visitKeyFrameLiteral(KeyFrameLiteralTree node,
                              P p)
Specified by:
visitKeyFrameLiteral in interface JavaFXTreeVisitor<R,P>

visitObjectLiteralPart

public R visitObjectLiteralPart(ObjectLiteralPartTree node,
                                P p)
Specified by:
visitObjectLiteralPart in interface JavaFXTreeVisitor<R,P>

visitOnReplace

public R visitOnReplace(OnReplaceTree node,
                        P p)
Specified by:
visitOnReplace in interface JavaFXTreeVisitor<R,P>

visitTrigger

public R visitTrigger(TriggerTree node,
                      P p)
Specified by:
visitTrigger in interface JavaFXTreeVisitor<R,P>

visitFunctionDefinition

public R visitFunctionDefinition(FunctionDefinitionTree node,
                                 P p)
Specified by:
visitFunctionDefinition in interface JavaFXTreeVisitor<R,P>

visitFunctionValue

public R visitFunctionValue(FunctionValueTree node,
                            P p)
Specified by:
visitFunctionValue in interface JavaFXTreeVisitor<R,P>

visitSequenceDelete

public R visitSequenceDelete(SequenceDeleteTree node,
                             P p)
Specified by:
visitSequenceDelete in interface JavaFXTreeVisitor<R,P>

visitSequenceEmpty

public R visitSequenceEmpty(SequenceEmptyTree node,
                            P p)
Specified by:
visitSequenceEmpty in interface JavaFXTreeVisitor<R,P>

visitSequenceExplicit

public R visitSequenceExplicit(SequenceExplicitTree node,
                               P p)
Specified by:
visitSequenceExplicit in interface JavaFXTreeVisitor<R,P>

visitSequenceIndexed

public R visitSequenceIndexed(SequenceIndexedTree node,
                              P p)
Specified by:
visitSequenceIndexed in interface JavaFXTreeVisitor<R,P>

visitSequenceSlice

public R visitSequenceSlice(SequenceSliceTree node,
                            P p)
Specified by:
visitSequenceSlice in interface JavaFXTreeVisitor<R,P>

visitSequenceInsert

public R visitSequenceInsert(SequenceInsertTree node,
                             P p)
Specified by:
visitSequenceInsert in interface JavaFXTreeVisitor<R,P>

visitSequenceRange

public R visitSequenceRange(SequenceRangeTree node,
                            P p)
Specified by:
visitSequenceRange in interface JavaFXTreeVisitor<R,P>

visitVariableInvalidate

public R visitVariableInvalidate(VariableInvalidateTree node,
                                 P p)
Specified by:
visitVariableInvalidate in interface JavaFXTreeVisitor<R,P>

visitStringExpression

public R visitStringExpression(StringExpressionTree node,
                               P p)
Specified by:
visitStringExpression in interface JavaFXTreeVisitor<R,P>

visitTimeLiteral

public R visitTimeLiteral(TimeLiteralTree node,
                          P p)
Specified by:
visitTimeLiteral in interface JavaFXTreeVisitor<R,P>

visitTypeAny

public R visitTypeAny(TypeAnyTree node,
                      P p)
Specified by:
visitTypeAny in interface JavaFXTreeVisitor<R,P>

visitTypeClass

public R visitTypeClass(TypeClassTree node,
                        P p)
Specified by:
visitTypeClass in interface JavaFXTreeVisitor<R,P>

visitTypeFunctional

public R visitTypeFunctional(TypeFunctionalTree node,
                             P p)
Specified by:
visitTypeFunctional in interface JavaFXTreeVisitor<R,P>

visitTypeArray

public R visitTypeArray(TypeArrayTree node,
                        P p)
Specified by:
visitTypeArray in interface JavaFXTreeVisitor<R,P>

visitTypeUnknown

public R visitTypeUnknown(TypeUnknownTree node,
                          P p)
Specified by:
visitTypeUnknown in interface JavaFXTreeVisitor<R,P>

visitVariable

public R visitVariable(VariableTree node,
                       P p)
Specified by:
visitVariable in interface JavaFXTreeVisitor<R,P>

visitMissingExpression

public R visitMissingExpression(ExpressionTree node,
                                P p)
Specified by:
visitMissingExpression in interface JavaFXTreeVisitor<R,P>