com.sun.tools.javac.tree
Class TreeTranslator

java.lang.Object
  extended by com.sun.tools.javac.tree.JCTree.Visitor
      extended by com.sun.tools.javac.tree.TreeTranslator
Direct Known Subclasses:
Lower, TransStaging, TransTypes

public class TreeTranslator
extends JCTree.Visitor

A subclass of Tree.Visitor, this class defines a general tree translator pattern. Translation proceeds recursively in left-to-right order down a tree, constructing translated nodes by overwriting existing ones. There is one visitor method in this class for every possible kind of tree node. To obtain a specific translator, it suffices to override those visitor methods which do some interesting work. The translator class itself takes care of all navigational aspects.

This is NOT part of any API supported by Sun Microsystems. If you write code that depends on this, you do so at your own risk. This code and its internal interfaces are subject to change or deletion without notice.


Field Summary
protected  JCTree result
          Visitor result field: a tree
 
Constructor Summary
TreeTranslator()
           
 
Method Summary
<T extends JCTree>
List<T>
translate(List<T> trees)
          Visitor method: translate a list of nodes.
<T extends JCTree>
T
translate(T tree)
          Visitor method: Translate a single node.
 List<JCTree.JCAnnotation> translateAnnotations(List<JCTree.JCAnnotation> trees)
          Visitor method: translate a list of catch clauses in try statements.
 List<JCTree.JCCase> translateCases(List<JCTree.JCCase> trees)
          Visitor method: translate a list of case parts of switch statements.
 List<JCTree.JCCatch> translateCatchers(List<JCTree.JCCatch> trees)
          Visitor method: translate a list of catch clauses in try statements.
 List<JCTree.JCTypeParameter> translateTypeParams(List<JCTree.JCTypeParameter> trees)
          Visitor method: translate a list of type parameters.
 List<JCTree.JCVariableDecl> translateVarDefs(List<JCTree.JCVariableDecl> trees)
          Visitor method: translate a list of variable definitions.
 void visitAnnotation(JCTree.JCAnnotation tree)
           
 void visitApply(JCTree.JCMethodInvocation tree)
           
 void visitAssert(JCTree.JCAssert tree)
           
 void visitAssign(JCTree.JCAssign tree)
           
 void visitAssignop(JCTree.JCAssignOp tree)
           
 void visitBinary(JCTree.JCBinary tree)
           
 void visitBlock(JCTree.JCBlock tree)
           
 void visitBracketExpr(JCTree.JCBracketExpr tree)
           
 void visitBracketStat(JCTree.JCBracketStat tree)
           
 void visitBreak(JCTree.JCBreak tree)
           
 void visitCase(JCTree.JCCase tree)
           
 void visitCatch(JCTree.JCCatch tree)
           
 void visitClassDef(JCTree.JCClassDecl tree)
           
 void visitConditional(JCTree.JCConditional tree)
           
 void visitContinue(JCTree.JCContinue tree)
           
 void visitDoLoop(JCTree.JCDoWhileLoop tree)
           
 void visitErroneous(JCTree.JCErroneous tree)
           
 void visitExec(JCTree.JCExpressionStatement tree)
           
 void visitForeachLoop(JCTree.JCEnhancedForLoop tree)
           
 void visitForLoop(JCTree.JCForLoop tree)
           
 void visitIdent(JCTree.JCIdent tree)
           
 void visitIf(JCTree.JCIf tree)
           
 void visitImport(JCTree.JCImport tree)
           
 void visitIndexed(JCTree.JCArrayAccess tree)
           
 void visitLabelled(JCTree.JCLabeledStatement tree)
           
 void visitLetExpr(JCTree.LetExpr tree)
           
 void visitLiteral(JCTree.JCLiteral tree)
           
 void visitMethodDef(JCTree.JCMethodDecl tree)
           
 void visitModifiers(JCTree.JCModifiers tree)
           
 void visitNewArray(JCTree.JCNewArray tree)
           
 void visitNewClass(JCTree.JCNewClass tree)
           
 void visitParens(JCTree.JCParens tree)
           
 void visitReturn(JCTree.JCReturn tree)
           
 void visitSelect(JCTree.JCFieldAccess tree)
           
 void visitSkip(JCTree.JCSkip tree)
           
 void visitSwitch(JCTree.JCSwitch tree)
           
 void visitSynchronized(JCTree.JCSynchronized tree)
           
 void visitThrow(JCTree.JCThrow tree)
           
 void visitTopLevel(JCTree.JCCompilationUnit tree)
           
 void visitTree(JCTree tree)
           
 void visitTry(JCTree.JCTry tree)
           
 void visitTypeApply(JCTree.JCTypeApply tree)
           
 void visitTypeArray(JCTree.JCArrayTypeTree tree)
           
 void visitTypeBoundKind(JCTree.TypeBoundKind tree)
           
 void visitTypeCast(JCTree.JCTypeCast tree)
           
 void visitTypeIdent(JCTree.JCPrimitiveTypeTree tree)
           
 void visitTypeParameter(JCTree.JCTypeParameter tree)
           
 void visitTypeTest(JCTree.JCInstanceOf tree)
           
 void visitUnary(JCTree.JCUnary tree)
           
 void visitVarDef(JCTree.JCVariableDecl tree)
           
 void visitWhileLoop(JCTree.JCWhileLoop tree)
           
 void visitWildcard(JCTree.JCWildcard tree)
           
 
Methods inherited from class com.sun.tools.javac.tree.JCTree.Visitor
visitEscapeExpr, visitEscapeStat
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

result

protected JCTree result
Visitor result field: a tree

Constructor Detail

TreeTranslator

public TreeTranslator()
Method Detail

translate

public <T extends JCTree> T translate(T tree)
Visitor method: Translate a single node.


translate

public <T extends JCTree> List<T> translate(List<T> trees)
Visitor method: translate a list of nodes.


translateVarDefs

public List<JCTree.JCVariableDecl> translateVarDefs(List<JCTree.JCVariableDecl> trees)
Visitor method: translate a list of variable definitions.


translateTypeParams

public List<JCTree.JCTypeParameter> translateTypeParams(List<JCTree.JCTypeParameter> trees)
Visitor method: translate a list of type parameters.


translateCases

public List<JCTree.JCCase> translateCases(List<JCTree.JCCase> trees)
Visitor method: translate a list of case parts of switch statements.


translateCatchers

public List<JCTree.JCCatch> translateCatchers(List<JCTree.JCCatch> trees)
Visitor method: translate a list of catch clauses in try statements.


translateAnnotations

public List<JCTree.JCAnnotation> translateAnnotations(List<JCTree.JCAnnotation> trees)
Visitor method: translate a list of catch clauses in try statements.


visitTopLevel

public void visitTopLevel(JCTree.JCCompilationUnit tree)
Overrides:
visitTopLevel in class JCTree.Visitor

visitImport

public void visitImport(JCTree.JCImport tree)
Overrides:
visitImport in class JCTree.Visitor

visitClassDef

public void visitClassDef(JCTree.JCClassDecl tree)
Overrides:
visitClassDef in class JCTree.Visitor

visitMethodDef

public void visitMethodDef(JCTree.JCMethodDecl tree)
Overrides:
visitMethodDef in class JCTree.Visitor

visitVarDef

public void visitVarDef(JCTree.JCVariableDecl tree)
Overrides:
visitVarDef in class JCTree.Visitor

visitSkip

public void visitSkip(JCTree.JCSkip tree)
Overrides:
visitSkip in class JCTree.Visitor

visitBlock

public void visitBlock(JCTree.JCBlock tree)
Overrides:
visitBlock in class JCTree.Visitor

visitBracketExpr

public void visitBracketExpr(JCTree.JCBracketExpr tree)
Overrides:
visitBracketExpr in class JCTree.Visitor

visitBracketStat

public void visitBracketStat(JCTree.JCBracketStat tree)
Overrides:
visitBracketStat in class JCTree.Visitor

visitDoLoop

public void visitDoLoop(JCTree.JCDoWhileLoop tree)
Overrides:
visitDoLoop in class JCTree.Visitor

visitWhileLoop

public void visitWhileLoop(JCTree.JCWhileLoop tree)
Overrides:
visitWhileLoop in class JCTree.Visitor

visitForLoop

public void visitForLoop(JCTree.JCForLoop tree)
Overrides:
visitForLoop in class JCTree.Visitor

visitForeachLoop

public void visitForeachLoop(JCTree.JCEnhancedForLoop tree)
Overrides:
visitForeachLoop in class JCTree.Visitor

visitLabelled

public void visitLabelled(JCTree.JCLabeledStatement tree)
Overrides:
visitLabelled in class JCTree.Visitor

visitSwitch

public void visitSwitch(JCTree.JCSwitch tree)
Overrides:
visitSwitch in class JCTree.Visitor

visitCase

public void visitCase(JCTree.JCCase tree)
Overrides:
visitCase in class JCTree.Visitor

visitSynchronized

public void visitSynchronized(JCTree.JCSynchronized tree)
Overrides:
visitSynchronized in class JCTree.Visitor

visitTry

public void visitTry(JCTree.JCTry tree)
Overrides:
visitTry in class JCTree.Visitor

visitCatch

public void visitCatch(JCTree.JCCatch tree)
Overrides:
visitCatch in class JCTree.Visitor

visitConditional

public void visitConditional(JCTree.JCConditional tree)
Overrides:
visitConditional in class JCTree.Visitor

visitIf

public void visitIf(JCTree.JCIf tree)
Overrides:
visitIf in class JCTree.Visitor

visitExec

public void visitExec(JCTree.JCExpressionStatement tree)
Overrides:
visitExec in class JCTree.Visitor

visitBreak

public void visitBreak(JCTree.JCBreak tree)
Overrides:
visitBreak in class JCTree.Visitor

visitContinue

public void visitContinue(JCTree.JCContinue tree)
Overrides:
visitContinue in class JCTree.Visitor

visitReturn

public void visitReturn(JCTree.JCReturn tree)
Overrides:
visitReturn in class JCTree.Visitor

visitThrow

public void visitThrow(JCTree.JCThrow tree)
Overrides:
visitThrow in class JCTree.Visitor

visitAssert

public void visitAssert(JCTree.JCAssert tree)
Overrides:
visitAssert in class JCTree.Visitor

visitApply

public void visitApply(JCTree.JCMethodInvocation tree)
Overrides:
visitApply in class JCTree.Visitor

visitNewClass

public void visitNewClass(JCTree.JCNewClass tree)
Overrides:
visitNewClass in class JCTree.Visitor

visitNewArray

public void visitNewArray(JCTree.JCNewArray tree)
Overrides:
visitNewArray in class JCTree.Visitor

visitParens

public void visitParens(JCTree.JCParens tree)
Overrides:
visitParens in class JCTree.Visitor

visitAssign

public void visitAssign(JCTree.JCAssign tree)
Overrides:
visitAssign in class JCTree.Visitor

visitAssignop

public void visitAssignop(JCTree.JCAssignOp tree)
Overrides:
visitAssignop in class JCTree.Visitor

visitUnary

public void visitUnary(JCTree.JCUnary tree)
Overrides:
visitUnary in class JCTree.Visitor

visitBinary

public void visitBinary(JCTree.JCBinary tree)
Overrides:
visitBinary in class JCTree.Visitor

visitTypeCast

public void visitTypeCast(JCTree.JCTypeCast tree)
Overrides:
visitTypeCast in class JCTree.Visitor

visitTypeTest

public void visitTypeTest(JCTree.JCInstanceOf tree)
Overrides:
visitTypeTest in class JCTree.Visitor

visitIndexed

public void visitIndexed(JCTree.JCArrayAccess tree)
Overrides:
visitIndexed in class JCTree.Visitor

visitSelect

public void visitSelect(JCTree.JCFieldAccess tree)
Overrides:
visitSelect in class JCTree.Visitor

visitIdent

public void visitIdent(JCTree.JCIdent tree)
Overrides:
visitIdent in class JCTree.Visitor

visitLiteral

public void visitLiteral(JCTree.JCLiteral tree)
Overrides:
visitLiteral in class JCTree.Visitor

visitTypeIdent

public void visitTypeIdent(JCTree.JCPrimitiveTypeTree tree)
Overrides:
visitTypeIdent in class JCTree.Visitor

visitTypeArray

public void visitTypeArray(JCTree.JCArrayTypeTree tree)
Overrides:
visitTypeArray in class JCTree.Visitor

visitTypeApply

public void visitTypeApply(JCTree.JCTypeApply tree)
Overrides:
visitTypeApply in class JCTree.Visitor

visitTypeParameter

public void visitTypeParameter(JCTree.JCTypeParameter tree)
Overrides:
visitTypeParameter in class JCTree.Visitor

visitWildcard

public void visitWildcard(JCTree.JCWildcard tree)
Overrides:
visitWildcard in class JCTree.Visitor

visitTypeBoundKind

public void visitTypeBoundKind(JCTree.TypeBoundKind tree)
Overrides:
visitTypeBoundKind in class JCTree.Visitor

visitErroneous

public void visitErroneous(JCTree.JCErroneous tree)
Overrides:
visitErroneous in class JCTree.Visitor

visitLetExpr

public void visitLetExpr(JCTree.LetExpr tree)
Overrides:
visitLetExpr in class JCTree.Visitor

visitModifiers

public void visitModifiers(JCTree.JCModifiers tree)
Overrides:
visitModifiers in class JCTree.Visitor

visitAnnotation

public void visitAnnotation(JCTree.JCAnnotation tree)
Overrides:
visitAnnotation in class JCTree.Visitor

visitTree

public void visitTree(JCTree tree)
Overrides:
visitTree in class JCTree.Visitor