Class UTemplater
- All Implemented Interfaces:
TreeVisitor<Tree,
Void>
Converts a type-checked syntax tree to a portable
UTree
template.- Author:
- lowasser@google.com (Louis Wasserman)
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final com.sun.tools.javac.util.Context.Key
<Boolean> Context key to indicate that templates should be treated as BlockTemplates, regardless of their structure.Fields inherited from class SimpleTreeVisitor
DEFAULT_VALUE
-
Constructor Summary
ConstructorsConstructorDescriptionUTemplater
(Map<String, com.sun.tools.javac.code.Symbol.VarSymbol> freeVariables, com.sun.tools.javac.util.Context context) -
Method Summary
Modifier and TypeMethodDescriptionstatic 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) template
(ExpressionTree tree) template
(StatementTree tree) template
(com.sun.tools.javac.code.Type type) 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
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) com.google.errorprone.refaster.UForLoop
visitForLoop
(ForLoopTree tree, Void v) visitIdentifier
(IdentifierTree tree, Void v) com.google.errorprone.refaster.UIf
com.google.errorprone.refaster.UInstanceOf
visitInstanceOf
(InstanceOfTree tree, Void v) com.google.errorprone.refaster.UIntersectionType
com.google.errorprone.refaster.ULabeledStatement
com.google.errorprone.refaster.ULambda
visitLiteral
(LiteralTree tree, Void v) com.google.errorprone.refaster.UMemberReference
visitMemberReference
(MemberReferenceTree tree, Void v) visitMemberSelect
(MemberSelectTree tree, Void v) com.google.errorprone.refaster.UMethodDecl
visitMethod
(MethodTree decl, 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
com.google.errorprone.refaster.UParens
visitParenthesized
(ParenthesizedTree tree, Void v) com.google.errorprone.refaster.UPrimitiveTypeTree
visitPrimitiveType
(PrimitiveTypeTree tree, Void v) 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
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) 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 SimpleTreeVisitor
visit, visit, visitAnyPattern, visitBindingPattern, visitCase, visitCompilationUnit, visitConstantCaseLabel, visitDeconstructionPattern, visitDefaultCaseLabel, visitErroneous, visitExports, visitImport, visitModule, visitOpens, visitOther, visitPackage, visitPatternCaseLabel, visitProvides, visitRequires, visitSwitch, visitSwitchExpression, visitUses, visitYield
-
Field Details
-
REQUIRE_BLOCK_KEY
Context key to indicate that templates should be treated as BlockTemplates, regardless of their structure.
-
-
Constructor Details
-
UTemplater
-
-
Method Details
-
createTemplate
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) -
template
-
visitMethod
- Specified by:
visitMethod
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitMethod
in classSimpleTreeVisitor<Tree,
Void>
-
visitModifiers
- Specified by:
visitModifiers
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitModifiers
in classSimpleTreeVisitor<Tree,
Void>
-
template
-
templateType
-
visitInstanceOf
- 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
- Specified by:
visitLiteral
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitLiteral
in classSimpleTreeVisitor<Tree,
Void>
-
visitParenthesized
- Specified by:
visitParenthesized
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitParenthesized
in classSimpleTreeVisitor<Tree,
Void>
-
visitAssignment
- Specified by:
visitAssignment
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitAssignment
in classSimpleTreeVisitor<Tree,
Void>
-
visitArrayAccess
- Specified by:
visitArrayAccess
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitArrayAccess
in classSimpleTreeVisitor<Tree,
Void>
-
visitAnnotation
- 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
- Specified by:
visitMemberSelect
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitMemberSelect
in classSimpleTreeVisitor<Tree,
Void>
-
visitMethodInvocation
- Specified by:
visitMethodInvocation
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitMethodInvocation
in classSimpleTreeVisitor<Tree,
Void>
-
visitBinary
- 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
- Specified by:
visitUnary
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitUnary
in classSimpleTreeVisitor<Tree,
Void>
-
visitConditionalExpression
- Specified by:
visitConditionalExpression
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitConditionalExpression
in classSimpleTreeVisitor<Tree,
Void>
-
visitNewArray
- Specified by:
visitNewArray
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitNewArray
in classSimpleTreeVisitor<Tree,
Void>
-
visitNewClass
- Specified by:
visitNewClass
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitNewClass
in classSimpleTreeVisitor<Tree,
Void>
-
visitClass
- Specified by:
visitClass
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitClass
in classSimpleTreeVisitor<Tree,
Void>
-
visitArrayType
- 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
- Specified by:
visitUnionType
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitUnionType
in classSimpleTreeVisitor<Tree,
Void>
-
visitWildcard
- 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
- 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
- Specified by:
visitIdentifier
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitIdentifier
in classSimpleTreeVisitor<Tree,
Void>
-
template
-
visitTry
- Specified by:
visitTry
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitTry
in classSimpleTreeVisitor<Tree,
Void>
-
visitCatch
- Specified by:
visitCatch
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitCatch
in classSimpleTreeVisitor<Tree,
Void>
-
visitExpressionStatement
- Specified by:
visitExpressionStatement
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitExpressionStatement
in classSimpleTreeVisitor<Tree,
Void>
-
visitReturn
- Specified by:
visitReturn
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitReturn
in classSimpleTreeVisitor<Tree,
Void>
-
visitWhileLoop
- Specified by:
visitWhileLoop
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitWhileLoop
in classSimpleTreeVisitor<Tree,
Void>
-
visitVariable
- Specified by:
visitVariable
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitVariable
in classSimpleTreeVisitor<Tree,
Void>
-
visitEmptyStatement
- Specified by:
visitEmptyStatement
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitEmptyStatement
in classSimpleTreeVisitor<Tree,
Void>
-
visitForLoop
- 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
- Specified by:
visitBreak
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitBreak
in classSimpleTreeVisitor<Tree,
Void>
-
visitContinue
- Specified by:
visitContinue
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitContinue
in classSimpleTreeVisitor<Tree,
Void>
-
visitBlock
- Specified by:
visitBlock
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitBlock
in classSimpleTreeVisitor<Tree,
Void>
-
visitThrow
- Specified by:
visitThrow
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitThrow
in classSimpleTreeVisitor<Tree,
Void>
-
visitDoWhileLoop
- 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
- Specified by:
visitIf
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitIf
in classSimpleTreeVisitor<Tree,
Void>
-
visitAssert
- Specified by:
visitAssert
in interfaceTreeVisitor<Tree,
Void> - Overrides:
visitAssert
in classSimpleTreeVisitor<Tree,
Void>
-
defaultAction
- Overrides:
defaultAction
in classSimpleTreeVisitor<Tree,
Void>
-
template
-
annotationMap
public static com.google.common.collect.ImmutableClassToInstanceMap<Annotation> annotationMap(com.sun.tools.javac.code.Symbol symbol)
-