Class AutoValueSupport
java.lang.Object
org.checkerframework.checker.calledmethods.builder.AutoValueSupport
- All Implemented Interfaces:
 BuilderFrameworkSupport
AutoValue support for the Called Methods Checker. This class adds 
@CalledMethods
 annotations to the code generated by AutoValue.- 
Constructor Summary
ConstructorsConstructorDescriptionAutoValueSupport(CalledMethodsAnnotatedTypeFactory atypeFactory) Create a new AutoValueSupport. - 
Method Summary
Modifier and TypeMethodDescriptiongetAllAbstractMethods(TypeElement classElement) Get all the abstract methods for a class.voidhandleBuilderBuildMethod(AnnotatedTypeMirror.AnnotatedExecutableType builderBuildType) Hook for adding annotations to a build() method (i.e.voidhandleConstructor(NewClassTree tree, AnnotatedTypeMirror type) This method modifies the type of a copy constructor generated by AutoValue to match the type of the AutoValue toBuilder method, and has no effect iftreeis a call to any other constructor.voidhandleToBuilderMethod(AnnotatedTypeMirror.AnnotatedExecutableType toBuilderType) Hook for supporting a builder framework'stoBuilderroutine.booleanisBuilderBuildMethod(ExecutableElement candidateBuildElement) Returns true if a method is abuildmethod on aBuildertype for the builder framework.booleanisToBuilderMethod(ExecutableElement candidateToBuilderElement) Returns true if a method is atoBuildermethod on a type generated by the builder framework. 
- 
Constructor Details
- 
AutoValueSupport
Create a new AutoValueSupport.- Parameters:
 atypeFactory- the typechecker's type factory
 
 - 
 - 
Method Details
- 
handleConstructor
This method modifies the type of a copy constructor generated by AutoValue to match the type of the AutoValue toBuilder method, and has no effect iftreeis a call to any other constructor.- Specified by:
 handleConstructorin interfaceBuilderFrameworkSupport- Parameters:
 tree- an AST for a constructor calltype- type of the call expression
 - 
isBuilderBuildMethod
Description copied from interface:BuilderFrameworkSupportReturns true if a method is abuildmethod on aBuildertype for the builder framework.- Specified by:
 isBuilderBuildMethodin interfaceBuilderFrameworkSupport- Parameters:
 candidateBuildElement- a method- Returns:
 trueifcandidateBuildElementis abuildmethod on aBuildertype for the builder framework
 - 
handleBuilderBuildMethod
Description copied from interface:BuilderFrameworkSupportHook for adding annotations to a build() method (i.e. a finalizer) generated by a builder framework.For
buildmethods onBuildertypes, implementations of this method should determine the required properties and add a correspondingCalledMethodsannotation to the type of the receiver parameter.- Specified by:
 handleBuilderBuildMethodin interfaceBuilderFrameworkSupport- Parameters:
 builderBuildType- the type of a method that is thebuildmethod (as determined byBuilderFrameworkSupport.isBuilderBuildMethod(ExecutableElement)) for a builder
 - 
isToBuilderMethod
Description copied from interface:BuilderFrameworkSupportReturns true if a method is atoBuildermethod on a type generated by the builder framework.- Specified by:
 isToBuilderMethodin interfaceBuilderFrameworkSupport- Parameters:
 candidateToBuilderElement- a method- Returns:
 trueifcandidateToBuilderElementis atoBuildermethod on a type generated by the builder framework
 - 
handleToBuilderMethod
Description copied from interface:BuilderFrameworkSupportHook for supporting a builder framework'stoBuilderroutine. Typically, the returned Builder has had all of its required setters invoked. So, implementations of this method should add aCalledMethodsannotation capturing this fact.- Specified by:
 handleToBuilderMethodin interfaceBuilderFrameworkSupport- Parameters:
 toBuilderType- the type of a method that is thetoBuildermethod (as determined byBuilderFrameworkSupport.isToBuilderMethod(ExecutableElement)) for a type that has an associated builder
 - 
getAllAbstractMethods
Get all the abstract methods for a class. This includes inherited abstract methods that are not overridden by the class or a superclass. There is no guarantee that this method will work as intended on code that implements an interface (which AutoValue classes are not supposed to do: https://github.com/google/auto/blob/master/value/userguide/howto.md#inherit).- Parameters:
 classElement- the class- Returns:
 - list of all abstract methods
 
 
 -