Package com.google.errorprone.refaster
Class UTemplater
- java.lang.Object
-
- com.sun.source.util.SimpleTreeVisitor<Tree,Void>
-
- com.google.errorprone.refaster.UTemplater
-
- All Implemented Interfaces:
TreeVisitor<Tree,Void>
public class UTemplater extends SimpleTreeVisitor<Tree,Void>
Converts a type-checked syntax tree to a portableUTree
template.- Author:
- [email protected] (Louis Wasserman)
-
-
Field Summary
Fields Modifier and Type Field Description static com.sun.tools.javac.util.Context.Key<Boolean>
REQUIRE_BLOCK_KEY
Context key to indicate that templates should be treated as BlockTemplates, regardless of their structure.-
Fields inherited from class com.sun.source.util.SimpleTreeVisitor
DEFAULT_VALUE
-
-
Constructor Summary
Constructors Constructor Description UTemplater(Map<String,com.sun.tools.javac.code.Symbol.VarSymbol> freeVariables, com.sun.tools.javac.util.Context context)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static com.google.common.collect.ImmutableClassToInstanceMap<Annotation>
annotationMap(com.sun.tools.javac.code.Symbol symbol)
static Template<?>
createTemplate(com.sun.tools.javac.util.Context context, MethodTree decl)
Returns a template based on a method.protected UTree<?>
defaultAction(Tree tree, Void v)
static com.google.common.collect.ImmutableMap<String,com.sun.tools.javac.code.Symbol.VarSymbol>
freeExpressionVariables(MethodTree templateMethodDecl)
UExpression
template(ExpressionTree tree)
UStatement
template(StatementTree tree)
Tree
template(Tree tree)
UType
template(com.sun.tools.javac.code.Type type)
UExpression
templateType(Tree tree)
com.google.errorprone.refaster.UAnnotatedType
visitAnnotatedType(AnnotatedTypeTree tree, Void v)
com.google.errorprone.refaster.UAnnotation
visitAnnotation(AnnotationTree tree, Void v)
com.google.errorprone.refaster.UArrayAccess
visitArrayAccess(ArrayAccessTree tree, Void v)
com.google.errorprone.refaster.UArrayTypeTree
visitArrayType(ArrayTypeTree tree, Void v)
com.google.errorprone.refaster.UAssert
visitAssert(AssertTree tree, Void v)
com.google.errorprone.refaster.UAssign
visitAssignment(AssignmentTree tree, Void v)
com.google.errorprone.refaster.UBinary
visitBinary(BinaryTree tree, Void v)
com.google.errorprone.refaster.UBlock
visitBlock(BlockTree tree, Void v)
com.google.errorprone.refaster.UBreak
visitBreak(BreakTree tree, Void v)
com.google.errorprone.refaster.UCatch
visitCatch(CatchTree tree, Void v)
com.google.errorprone.refaster.UClassDecl
visitClass(ClassTree tree, Void v)
com.google.errorprone.refaster.UAssignOp
visitCompoundAssignment(CompoundAssignmentTree tree, Void v)
UExpression
visitConditionalExpression(ConditionalExpressionTree tree, Void v)
com.google.errorprone.refaster.UContinue
visitContinue(ContinueTree tree, Void v)
com.google.errorprone.refaster.UDoWhileLoop
visitDoWhileLoop(DoWhileLoopTree tree, Void v)
com.google.errorprone.refaster.USkip
visitEmptyStatement(EmptyStatementTree tree, Void v)
com.google.errorprone.refaster.UEnhancedForLoop
visitEnhancedForLoop(EnhancedForLoopTree tree, Void v)
UStatement
visitExpressionStatement(ExpressionStatementTree tree, Void v)
com.google.errorprone.refaster.UForLoop
visitForLoop(ForLoopTree tree, Void v)
UExpression
visitIdentifier(IdentifierTree tree, Void v)
com.google.errorprone.refaster.UIf
visitIf(IfTree tree, Void v)
com.google.errorprone.refaster.UInstanceOf
visitInstanceOf(InstanceOfTree tree, Void v)
com.google.errorprone.refaster.UIntersectionType
visitIntersectionType(IntersectionTypeTree tree, Void v)
com.google.errorprone.refaster.ULabeledStatement
visitLabeledStatement(LabeledStatementTree tree, Void v)
com.google.errorprone.refaster.ULambda
visitLambdaExpression(LambdaExpressionTree tree, Void v)
ULiteral
visitLiteral(LiteralTree tree, Void v)
com.google.errorprone.refaster.UMemberReference
visitMemberReference(MemberReferenceTree tree, Void v)
UExpression
visitMemberSelect(MemberSelectTree tree, Void v)
com.google.errorprone.refaster.UMethodDecl
visitMethod(MethodTree decl, Void v)
UExpression
visitMethodInvocation(MethodInvocationTree tree, Void v)
com.google.errorprone.refaster.UModifiers
visitModifiers(ModifiersTree modifiers, Void v)
com.google.errorprone.refaster.UNewArray
visitNewArray(NewArrayTree tree, Void v)
com.google.errorprone.refaster.UNewClass
visitNewClass(NewClassTree tree, Void v)
com.google.errorprone.refaster.UTypeApply
visitParameterizedType(ParameterizedTypeTree tree, Void v)
com.google.errorprone.refaster.UParens
visitParenthesized(ParenthesizedTree tree, Void v)
com.google.errorprone.refaster.UPrimitiveTypeTree
visitPrimitiveType(PrimitiveTypeTree tree, Void v)
UStatement
visitReturn(ReturnTree tree, Void v)
com.google.errorprone.refaster.USynchronized
visitSynchronized(SynchronizedTree tree, Void v)
com.google.errorprone.refaster.UThrow
visitThrow(ThrowTree tree, Void v)
com.google.errorprone.refaster.UTry
visitTry(TryTree tree, Void v)
com.google.errorprone.refaster.UTypeCast
visitTypeCast(TypeCastTree tree, Void v)
com.google.errorprone.refaster.UTypeParameter
visitTypeParameter(TypeParameterTree tree, Void v)
com.google.errorprone.refaster.UUnary
visitUnary(UnaryTree tree, Void v)
com.google.errorprone.refaster.UUnionType
visitUnionType(UnionTypeTree tree, Void v)
UVariableDecl
visitVariable(VariableTree tree, Void v)
com.google.errorprone.refaster.UWhileLoop
visitWhileLoop(WhileLoopTree tree, Void v)
com.google.errorprone.refaster.UWildcard
visitWildcard(WildcardTree tree, Void v)
-
Methods inherited from class com.sun.source.util.SimpleTreeVisitor
visit, visit, visitCase, visitCompilationUnit, visitErroneous, visitExports, visitImport, visitModule, visitOpens, visitOther, visitPackage, visitProvides, visitRequires, visitSwitch, visitUses
-
-
-
-
Field Detail
-
REQUIRE_BLOCK_KEY
public static final com.sun.tools.javac.util.Context.Key<Boolean> REQUIRE_BLOCK_KEY
Context key to indicate that templates should be treated as BlockTemplates, regardless of their structure.
-
-
Method Detail
-
createTemplate
public static Template<?> createTemplate(com.sun.tools.javac.util.Context context, MethodTree decl)
Returns a template based on a method. One-line methods starting with areturn
statement are guessed to be expression templates, and all other methods are guessed to be block templates.
-
freeExpressionVariables
public static com.google.common.collect.ImmutableMap<String,com.sun.tools.javac.code.Symbol.VarSymbol> freeExpressionVariables(MethodTree templateMethodDecl)
-
visitMethod
public com.google.errorprone.refaster.UMethodDecl visitMethod(MethodTree decl, Void v)
- Specified by:
visitMethod
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitMethod
in classSimpleTreeVisitor<Tree,Void>
-
visitModifiers
public com.google.errorprone.refaster.UModifiers visitModifiers(ModifiersTree modifiers, Void v)
- Specified by:
visitModifiers
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitModifiers
in classSimpleTreeVisitor<Tree,Void>
-
template
public UExpression template(ExpressionTree tree)
-
templateType
public UExpression templateType(Tree tree)
-
visitInstanceOf
public com.google.errorprone.refaster.UInstanceOf visitInstanceOf(InstanceOfTree tree, Void v)
- Specified by:
visitInstanceOf
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitInstanceOf
in classSimpleTreeVisitor<Tree,Void>
-
visitPrimitiveType
public com.google.errorprone.refaster.UPrimitiveTypeTree visitPrimitiveType(PrimitiveTypeTree tree, Void v)
- Specified by:
visitPrimitiveType
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitPrimitiveType
in classSimpleTreeVisitor<Tree,Void>
-
visitLiteral
public ULiteral visitLiteral(LiteralTree tree, Void v)
- Specified by:
visitLiteral
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitLiteral
in classSimpleTreeVisitor<Tree,Void>
-
visitParenthesized
public com.google.errorprone.refaster.UParens visitParenthesized(ParenthesizedTree tree, Void v)
- Specified by:
visitParenthesized
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitParenthesized
in classSimpleTreeVisitor<Tree,Void>
-
visitAssignment
public com.google.errorprone.refaster.UAssign visitAssignment(AssignmentTree tree, Void v)
- Specified by:
visitAssignment
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitAssignment
in classSimpleTreeVisitor<Tree,Void>
-
visitArrayAccess
public com.google.errorprone.refaster.UArrayAccess visitArrayAccess(ArrayAccessTree tree, Void v)
- Specified by:
visitArrayAccess
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitArrayAccess
in classSimpleTreeVisitor<Tree,Void>
-
visitAnnotation
public com.google.errorprone.refaster.UAnnotation visitAnnotation(AnnotationTree tree, Void v)
- Specified by:
visitAnnotation
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitAnnotation
in classSimpleTreeVisitor<Tree,Void>
-
visitAnnotatedType
public com.google.errorprone.refaster.UAnnotatedType visitAnnotatedType(AnnotatedTypeTree tree, Void v)
- Specified by:
visitAnnotatedType
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitAnnotatedType
in classSimpleTreeVisitor<Tree,Void>
-
visitMemberSelect
public UExpression visitMemberSelect(MemberSelectTree tree, Void v)
- Specified by:
visitMemberSelect
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitMemberSelect
in classSimpleTreeVisitor<Tree,Void>
-
visitMethodInvocation
public UExpression visitMethodInvocation(MethodInvocationTree tree, Void v)
- Specified by:
visitMethodInvocation
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitMethodInvocation
in classSimpleTreeVisitor<Tree,Void>
-
visitBinary
public com.google.errorprone.refaster.UBinary visitBinary(BinaryTree tree, Void v)
- Specified by:
visitBinary
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitBinary
in classSimpleTreeVisitor<Tree,Void>
-
visitCompoundAssignment
public com.google.errorprone.refaster.UAssignOp visitCompoundAssignment(CompoundAssignmentTree tree, Void v)
- Specified by:
visitCompoundAssignment
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitCompoundAssignment
in classSimpleTreeVisitor<Tree,Void>
-
visitUnary
public com.google.errorprone.refaster.UUnary visitUnary(UnaryTree tree, Void v)
- Specified by:
visitUnary
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitUnary
in classSimpleTreeVisitor<Tree,Void>
-
visitConditionalExpression
public UExpression visitConditionalExpression(ConditionalExpressionTree tree, Void v)
- Specified by:
visitConditionalExpression
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitConditionalExpression
in classSimpleTreeVisitor<Tree,Void>
-
visitNewArray
public com.google.errorprone.refaster.UNewArray visitNewArray(NewArrayTree tree, Void v)
- Specified by:
visitNewArray
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitNewArray
in classSimpleTreeVisitor<Tree,Void>
-
visitNewClass
public com.google.errorprone.refaster.UNewClass visitNewClass(NewClassTree tree, Void v)
- Specified by:
visitNewClass
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitNewClass
in classSimpleTreeVisitor<Tree,Void>
-
visitClass
public com.google.errorprone.refaster.UClassDecl visitClass(ClassTree tree, Void v)
- Specified by:
visitClass
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitClass
in classSimpleTreeVisitor<Tree,Void>
-
visitArrayType
public com.google.errorprone.refaster.UArrayTypeTree visitArrayType(ArrayTypeTree tree, Void v)
- Specified by:
visitArrayType
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitArrayType
in classSimpleTreeVisitor<Tree,Void>
-
visitParameterizedType
public com.google.errorprone.refaster.UTypeApply visitParameterizedType(ParameterizedTypeTree tree, Void v)
- Specified by:
visitParameterizedType
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitParameterizedType
in classSimpleTreeVisitor<Tree,Void>
-
visitUnionType
public com.google.errorprone.refaster.UUnionType visitUnionType(UnionTypeTree tree, Void v)
- Specified by:
visitUnionType
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitUnionType
in classSimpleTreeVisitor<Tree,Void>
-
visitWildcard
public com.google.errorprone.refaster.UWildcard visitWildcard(WildcardTree tree, Void v)
- Specified by:
visitWildcard
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitWildcard
in classSimpleTreeVisitor<Tree,Void>
-
visitIntersectionType
public com.google.errorprone.refaster.UIntersectionType visitIntersectionType(IntersectionTypeTree tree, Void v)
- Specified by:
visitIntersectionType
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitIntersectionType
in classSimpleTreeVisitor<Tree,Void>
-
visitTypeParameter
public com.google.errorprone.refaster.UTypeParameter visitTypeParameter(TypeParameterTree tree, Void v)
- Specified by:
visitTypeParameter
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitTypeParameter
in classSimpleTreeVisitor<Tree,Void>
-
visitTypeCast
public com.google.errorprone.refaster.UTypeCast visitTypeCast(TypeCastTree tree, Void v)
- Specified by:
visitTypeCast
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitTypeCast
in classSimpleTreeVisitor<Tree,Void>
-
visitLambdaExpression
public com.google.errorprone.refaster.ULambda visitLambdaExpression(LambdaExpressionTree tree, Void v)
- Specified by:
visitLambdaExpression
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitLambdaExpression
in classSimpleTreeVisitor<Tree,Void>
-
visitMemberReference
public com.google.errorprone.refaster.UMemberReference visitMemberReference(MemberReferenceTree tree, Void v)
- Specified by:
visitMemberReference
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitMemberReference
in classSimpleTreeVisitor<Tree,Void>
-
visitIdentifier
public UExpression visitIdentifier(IdentifierTree tree, Void v)
- Specified by:
visitIdentifier
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitIdentifier
in classSimpleTreeVisitor<Tree,Void>
-
template
public UStatement template(StatementTree tree)
-
visitTry
public com.google.errorprone.refaster.UTry visitTry(TryTree tree, Void v)
- Specified by:
visitTry
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitTry
in classSimpleTreeVisitor<Tree,Void>
-
visitCatch
public com.google.errorprone.refaster.UCatch visitCatch(CatchTree tree, Void v)
- Specified by:
visitCatch
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitCatch
in classSimpleTreeVisitor<Tree,Void>
-
visitExpressionStatement
public UStatement visitExpressionStatement(ExpressionStatementTree tree, Void v)
- Specified by:
visitExpressionStatement
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitExpressionStatement
in classSimpleTreeVisitor<Tree,Void>
-
visitReturn
public UStatement visitReturn(ReturnTree tree, Void v)
- Specified by:
visitReturn
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitReturn
in classSimpleTreeVisitor<Tree,Void>
-
visitWhileLoop
public com.google.errorprone.refaster.UWhileLoop visitWhileLoop(WhileLoopTree tree, Void v)
- Specified by:
visitWhileLoop
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitWhileLoop
in classSimpleTreeVisitor<Tree,Void>
-
visitVariable
public UVariableDecl visitVariable(VariableTree tree, Void v)
- Specified by:
visitVariable
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitVariable
in classSimpleTreeVisitor<Tree,Void>
-
visitEmptyStatement
public com.google.errorprone.refaster.USkip visitEmptyStatement(EmptyStatementTree tree, Void v)
- Specified by:
visitEmptyStatement
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitEmptyStatement
in classSimpleTreeVisitor<Tree,Void>
-
visitForLoop
public com.google.errorprone.refaster.UForLoop visitForLoop(ForLoopTree tree, Void v)
- Specified by:
visitForLoop
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitForLoop
in classSimpleTreeVisitor<Tree,Void>
-
visitLabeledStatement
public com.google.errorprone.refaster.ULabeledStatement visitLabeledStatement(LabeledStatementTree tree, Void v)
- Specified by:
visitLabeledStatement
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitLabeledStatement
in classSimpleTreeVisitor<Tree,Void>
-
visitBreak
public com.google.errorprone.refaster.UBreak visitBreak(BreakTree tree, Void v)
- Specified by:
visitBreak
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitBreak
in classSimpleTreeVisitor<Tree,Void>
-
visitContinue
public com.google.errorprone.refaster.UContinue visitContinue(ContinueTree tree, Void v)
- Specified by:
visitContinue
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitContinue
in classSimpleTreeVisitor<Tree,Void>
-
visitBlock
public com.google.errorprone.refaster.UBlock visitBlock(BlockTree tree, Void v)
- Specified by:
visitBlock
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitBlock
in classSimpleTreeVisitor<Tree,Void>
-
visitThrow
public com.google.errorprone.refaster.UThrow visitThrow(ThrowTree tree, Void v)
- Specified by:
visitThrow
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitThrow
in classSimpleTreeVisitor<Tree,Void>
-
visitDoWhileLoop
public com.google.errorprone.refaster.UDoWhileLoop visitDoWhileLoop(DoWhileLoopTree tree, Void v)
- Specified by:
visitDoWhileLoop
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitDoWhileLoop
in classSimpleTreeVisitor<Tree,Void>
-
visitEnhancedForLoop
public com.google.errorprone.refaster.UEnhancedForLoop visitEnhancedForLoop(EnhancedForLoopTree tree, Void v)
- Specified by:
visitEnhancedForLoop
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitEnhancedForLoop
in classSimpleTreeVisitor<Tree,Void>
-
visitSynchronized
public com.google.errorprone.refaster.USynchronized visitSynchronized(SynchronizedTree tree, Void v)
- Specified by:
visitSynchronized
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitSynchronized
in classSimpleTreeVisitor<Tree,Void>
-
visitIf
public com.google.errorprone.refaster.UIf visitIf(IfTree tree, Void v)
- Specified by:
visitIf
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitIf
in classSimpleTreeVisitor<Tree,Void>
-
visitAssert
public com.google.errorprone.refaster.UAssert visitAssert(AssertTree tree, Void v)
- Specified by:
visitAssert
in interfaceTreeVisitor<Tree,Void>
- Overrides:
visitAssert
in classSimpleTreeVisitor<Tree,Void>
-
defaultAction
protected UTree<?> defaultAction(Tree tree, Void v)
- Overrides:
defaultAction
in classSimpleTreeVisitor<Tree,Void>
-
template
public UType template(com.sun.tools.javac.code.Type type)
-
annotationMap
public static com.google.common.collect.ImmutableClassToInstanceMap<Annotation> annotationMap(com.sun.tools.javac.code.Symbol symbol)
-
-