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.UAnnotatedTypevisitAnnotatedType(AnnotatedTypeTree tree, Void v) com.google.errorprone.refaster.UAnnotationvisitAnnotation(AnnotationTree tree, Void v) com.google.errorprone.refaster.UArrayAccessvisitArrayAccess(ArrayAccessTree tree, Void v) com.google.errorprone.refaster.UArrayTypeTreevisitArrayType(ArrayTypeTree tree, Void v) com.google.errorprone.refaster.UAssertvisitAssert(AssertTree tree, Void v) com.google.errorprone.refaster.UAssignvisitAssignment(AssignmentTree tree, Void v) com.google.errorprone.refaster.UBinaryvisitBinary(BinaryTree tree, Void v) com.google.errorprone.refaster.UBlockvisitBlock(BlockTree tree, Void v) com.google.errorprone.refaster.UBreakvisitBreak(BreakTree tree, Void v) com.google.errorprone.refaster.UCatchvisitCatch(CatchTree tree, Void v) com.google.errorprone.refaster.UClassDeclvisitClass(ClassTree tree, Void v) com.google.errorprone.refaster.UAssignOpcom.google.errorprone.refaster.UContinuevisitContinue(ContinueTree tree, Void v) com.google.errorprone.refaster.UDoWhileLoopvisitDoWhileLoop(DoWhileLoopTree tree, Void v) com.google.errorprone.refaster.USkipvisitEmptyStatement(EmptyStatementTree tree, Void v) com.google.errorprone.refaster.UEnhancedForLoopvisitEnhancedForLoop(EnhancedForLoopTree tree, Void v) com.google.errorprone.refaster.UForLoopvisitForLoop(ForLoopTree tree, Void v) visitIdentifier(IdentifierTree tree, Void v) com.google.errorprone.refaster.UIfcom.google.errorprone.refaster.UInstanceOfvisitInstanceOf(InstanceOfTree tree, Void v) com.google.errorprone.refaster.UIntersectionTypecom.google.errorprone.refaster.ULabeledStatementcom.google.errorprone.refaster.ULambdavisitLiteral(LiteralTree tree, Void v) com.google.errorprone.refaster.UMemberReferencevisitMemberReference(MemberReferenceTree tree, Void v) visitMemberSelect(MemberSelectTree tree, Void v) com.google.errorprone.refaster.UMethodDeclvisitMethod(MethodTree decl, Void v) com.google.errorprone.refaster.UModifiersvisitModifiers(ModifiersTree modifiers, Void v) com.google.errorprone.refaster.UNewArrayvisitNewArray(NewArrayTree tree, Void v) com.google.errorprone.refaster.UNewClassvisitNewClass(NewClassTree tree, Void v) com.google.errorprone.refaster.UTypeApplycom.google.errorprone.refaster.UParensvisitParenthesized(ParenthesizedTree tree, Void v) com.google.errorprone.refaster.UPrimitiveTypeTreevisitPrimitiveType(PrimitiveTypeTree tree, Void v) visitReturn(ReturnTree tree, Void v) com.google.errorprone.refaster.USynchronizedvisitSynchronized(SynchronizedTree tree, Void v) com.google.errorprone.refaster.UThrowvisitThrow(ThrowTree tree, Void v) com.google.errorprone.refaster.UTrycom.google.errorprone.refaster.UTypeCastvisitTypeCast(TypeCastTree tree, Void v) com.google.errorprone.refaster.UTypeParametervisitTypeParameter(TypeParameterTree tree, Void v) com.google.errorprone.refaster.UUnaryvisitUnary(UnaryTree tree, Void v) com.google.errorprone.refaster.UUnionTypevisitUnionType(UnionTypeTree tree, Void v) visitVariable(VariableTree tree, Void v) com.google.errorprone.refaster.UWhileLoopvisitWhileLoop(WhileLoopTree tree, Void v) com.google.errorprone.refaster.UWildcardvisitWildcard(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 areturnstatement 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:
visitMethodin interfaceTreeVisitor<Tree,Void> - Overrides:
visitMethodin classSimpleTreeVisitor<Tree,Void>
-
visitModifiers
- Specified by:
visitModifiersin interfaceTreeVisitor<Tree,Void> - Overrides:
visitModifiersin classSimpleTreeVisitor<Tree,Void>
-
template
-
templateType
-
visitInstanceOf
- Specified by:
visitInstanceOfin interfaceTreeVisitor<Tree,Void> - Overrides:
visitInstanceOfin classSimpleTreeVisitor<Tree,Void>
-
visitPrimitiveType
public com.google.errorprone.refaster.UPrimitiveTypeTree visitPrimitiveType(PrimitiveTypeTree tree, Void v) - Specified by:
visitPrimitiveTypein interfaceTreeVisitor<Tree,Void> - Overrides:
visitPrimitiveTypein classSimpleTreeVisitor<Tree,Void>
-
visitLiteral
- Specified by:
visitLiteralin interfaceTreeVisitor<Tree,Void> - Overrides:
visitLiteralin classSimpleTreeVisitor<Tree,Void>
-
visitParenthesized
- Specified by:
visitParenthesizedin interfaceTreeVisitor<Tree,Void> - Overrides:
visitParenthesizedin classSimpleTreeVisitor<Tree,Void>
-
visitAssignment
- Specified by:
visitAssignmentin interfaceTreeVisitor<Tree,Void> - Overrides:
visitAssignmentin classSimpleTreeVisitor<Tree,Void>
-
visitArrayAccess
- Specified by:
visitArrayAccessin interfaceTreeVisitor<Tree,Void> - Overrides:
visitArrayAccessin classSimpleTreeVisitor<Tree,Void>
-
visitAnnotation
- Specified by:
visitAnnotationin interfaceTreeVisitor<Tree,Void> - Overrides:
visitAnnotationin classSimpleTreeVisitor<Tree,Void>
-
visitAnnotatedType
public com.google.errorprone.refaster.UAnnotatedType visitAnnotatedType(AnnotatedTypeTree tree, Void v) - Specified by:
visitAnnotatedTypein interfaceTreeVisitor<Tree,Void> - Overrides:
visitAnnotatedTypein classSimpleTreeVisitor<Tree,Void>
-
visitMemberSelect
- Specified by:
visitMemberSelectin interfaceTreeVisitor<Tree,Void> - Overrides:
visitMemberSelectin classSimpleTreeVisitor<Tree,Void>
-
visitMethodInvocation
- Specified by:
visitMethodInvocationin interfaceTreeVisitor<Tree,Void> - Overrides:
visitMethodInvocationin classSimpleTreeVisitor<Tree,Void>
-
visitBinary
- Specified by:
visitBinaryin interfaceTreeVisitor<Tree,Void> - Overrides:
visitBinaryin classSimpleTreeVisitor<Tree,Void>
-
visitCompoundAssignment
public com.google.errorprone.refaster.UAssignOp visitCompoundAssignment(CompoundAssignmentTree tree, Void v) - Specified by:
visitCompoundAssignmentin interfaceTreeVisitor<Tree,Void> - Overrides:
visitCompoundAssignmentin classSimpleTreeVisitor<Tree,Void>
-
visitUnary
- Specified by:
visitUnaryin interfaceTreeVisitor<Tree,Void> - Overrides:
visitUnaryin classSimpleTreeVisitor<Tree,Void>
-
visitConditionalExpression
- Specified by:
visitConditionalExpressionin interfaceTreeVisitor<Tree,Void> - Overrides:
visitConditionalExpressionin classSimpleTreeVisitor<Tree,Void>
-
visitNewArray
- Specified by:
visitNewArrayin interfaceTreeVisitor<Tree,Void> - Overrides:
visitNewArrayin classSimpleTreeVisitor<Tree,Void>
-
visitNewClass
- Specified by:
visitNewClassin interfaceTreeVisitor<Tree,Void> - Overrides:
visitNewClassin classSimpleTreeVisitor<Tree,Void>
-
visitClass
- Specified by:
visitClassin interfaceTreeVisitor<Tree,Void> - Overrides:
visitClassin classSimpleTreeVisitor<Tree,Void>
-
visitArrayType
- Specified by:
visitArrayTypein interfaceTreeVisitor<Tree,Void> - Overrides:
visitArrayTypein classSimpleTreeVisitor<Tree,Void>
-
visitParameterizedType
public com.google.errorprone.refaster.UTypeApply visitParameterizedType(ParameterizedTypeTree tree, Void v) - Specified by:
visitParameterizedTypein interfaceTreeVisitor<Tree,Void> - Overrides:
visitParameterizedTypein classSimpleTreeVisitor<Tree,Void>
-
visitUnionType
- Specified by:
visitUnionTypein interfaceTreeVisitor<Tree,Void> - Overrides:
visitUnionTypein classSimpleTreeVisitor<Tree,Void>
-
visitWildcard
- Specified by:
visitWildcardin interfaceTreeVisitor<Tree,Void> - Overrides:
visitWildcardin classSimpleTreeVisitor<Tree,Void>
-
visitIntersectionType
public com.google.errorprone.refaster.UIntersectionType visitIntersectionType(IntersectionTypeTree tree, Void v) - Specified by:
visitIntersectionTypein interfaceTreeVisitor<Tree,Void> - Overrides:
visitIntersectionTypein classSimpleTreeVisitor<Tree,Void>
-
visitTypeParameter
public com.google.errorprone.refaster.UTypeParameter visitTypeParameter(TypeParameterTree tree, Void v) - Specified by:
visitTypeParameterin interfaceTreeVisitor<Tree,Void> - Overrides:
visitTypeParameterin classSimpleTreeVisitor<Tree,Void>
-
visitTypeCast
- Specified by:
visitTypeCastin interfaceTreeVisitor<Tree,Void> - Overrides:
visitTypeCastin classSimpleTreeVisitor<Tree,Void>
-
visitLambdaExpression
public com.google.errorprone.refaster.ULambda visitLambdaExpression(LambdaExpressionTree tree, Void v) - Specified by:
visitLambdaExpressionin interfaceTreeVisitor<Tree,Void> - Overrides:
visitLambdaExpressionin classSimpleTreeVisitor<Tree,Void>
-
visitMemberReference
public com.google.errorprone.refaster.UMemberReference visitMemberReference(MemberReferenceTree tree, Void v) - Specified by:
visitMemberReferencein interfaceTreeVisitor<Tree,Void> - Overrides:
visitMemberReferencein classSimpleTreeVisitor<Tree,Void>
-
visitIdentifier
- Specified by:
visitIdentifierin interfaceTreeVisitor<Tree,Void> - Overrides:
visitIdentifierin classSimpleTreeVisitor<Tree,Void>
-
template
-
visitTry
- Specified by:
visitTryin interfaceTreeVisitor<Tree,Void> - Overrides:
visitTryin classSimpleTreeVisitor<Tree,Void>
-
visitCatch
- Specified by:
visitCatchin interfaceTreeVisitor<Tree,Void> - Overrides:
visitCatchin classSimpleTreeVisitor<Tree,Void>
-
visitExpressionStatement
- Specified by:
visitExpressionStatementin interfaceTreeVisitor<Tree,Void> - Overrides:
visitExpressionStatementin classSimpleTreeVisitor<Tree,Void>
-
visitReturn
- Specified by:
visitReturnin interfaceTreeVisitor<Tree,Void> - Overrides:
visitReturnin classSimpleTreeVisitor<Tree,Void>
-
visitWhileLoop
- Specified by:
visitWhileLoopin interfaceTreeVisitor<Tree,Void> - Overrides:
visitWhileLoopin classSimpleTreeVisitor<Tree,Void>
-
visitVariable
- Specified by:
visitVariablein interfaceTreeVisitor<Tree,Void> - Overrides:
visitVariablein classSimpleTreeVisitor<Tree,Void>
-
visitEmptyStatement
- Specified by:
visitEmptyStatementin interfaceTreeVisitor<Tree,Void> - Overrides:
visitEmptyStatementin classSimpleTreeVisitor<Tree,Void>
-
visitForLoop
- Specified by:
visitForLoopin interfaceTreeVisitor<Tree,Void> - Overrides:
visitForLoopin classSimpleTreeVisitor<Tree,Void>
-
visitLabeledStatement
public com.google.errorprone.refaster.ULabeledStatement visitLabeledStatement(LabeledStatementTree tree, Void v) - Specified by:
visitLabeledStatementin interfaceTreeVisitor<Tree,Void> - Overrides:
visitLabeledStatementin classSimpleTreeVisitor<Tree,Void>
-
visitBreak
- Specified by:
visitBreakin interfaceTreeVisitor<Tree,Void> - Overrides:
visitBreakin classSimpleTreeVisitor<Tree,Void>
-
visitContinue
- Specified by:
visitContinuein interfaceTreeVisitor<Tree,Void> - Overrides:
visitContinuein classSimpleTreeVisitor<Tree,Void>
-
visitBlock
- Specified by:
visitBlockin interfaceTreeVisitor<Tree,Void> - Overrides:
visitBlockin classSimpleTreeVisitor<Tree,Void>
-
visitThrow
- Specified by:
visitThrowin interfaceTreeVisitor<Tree,Void> - Overrides:
visitThrowin classSimpleTreeVisitor<Tree,Void>
-
visitDoWhileLoop
- Specified by:
visitDoWhileLoopin interfaceTreeVisitor<Tree,Void> - Overrides:
visitDoWhileLoopin classSimpleTreeVisitor<Tree,Void>
-
visitEnhancedForLoop
public com.google.errorprone.refaster.UEnhancedForLoop visitEnhancedForLoop(EnhancedForLoopTree tree, Void v) - Specified by:
visitEnhancedForLoopin interfaceTreeVisitor<Tree,Void> - Overrides:
visitEnhancedForLoopin classSimpleTreeVisitor<Tree,Void>
-
visitSynchronized
public com.google.errorprone.refaster.USynchronized visitSynchronized(SynchronizedTree tree, Void v) - Specified by:
visitSynchronizedin interfaceTreeVisitor<Tree,Void> - Overrides:
visitSynchronizedin classSimpleTreeVisitor<Tree,Void>
-
visitIf
- Specified by:
visitIfin interfaceTreeVisitor<Tree,Void> - Overrides:
visitIfin classSimpleTreeVisitor<Tree,Void>
-
visitAssert
- Specified by:
visitAssertin interfaceTreeVisitor<Tree,Void> - Overrides:
visitAssertin classSimpleTreeVisitor<Tree,Void>
-
defaultAction
- Overrides:
defaultActionin classSimpleTreeVisitor<Tree,Void>
-
template
-
annotationMap
public static com.google.common.collect.ImmutableClassToInstanceMap<Annotation> annotationMap(com.sun.tools.javac.code.Symbol symbol)
-