class BuilderSpec.Builder
extends java.lang.Object
AutoValue.Builder
class or interface.Modifier and Type | Field and Description |
---|---|
private javax.lang.model.element.TypeElement |
builderTypeElement |
Constructor and Description |
---|
Builder(javax.lang.model.element.TypeElement builderTypeElement) |
Modifier and Type | Method and Description |
---|---|
(package private) void |
defineVars(AutoValueTemplateVars vars,
TypeSimplifier typeSimplifier,
com.google.common.collect.ImmutableBiMap<javax.lang.model.element.ExecutableElement,java.lang.String> getterToPropertyName) |
private com.google.common.collect.ImmutableMap<java.lang.String,BuilderSpec.PropertyBuilder> |
makeBuilderPropertyBuilderMap(BuilderMethodClassifier classifier,
TypeSimplifier typeSimplifier,
com.google.common.collect.ImmutableBiMap<javax.lang.model.element.ExecutableElement,java.lang.String> getterToPropertyName) |
(package private) java.util.Set<javax.lang.model.type.TypeMirror> |
referencedTypes() |
(package private) com.google.common.collect.ImmutableSet<javax.lang.model.element.ExecutableElement> |
toBuilderMethods(javax.lang.model.util.Types typeUtils,
java.util.Set<javax.lang.model.element.ExecutableElement> abstractMethods)
Finds any methods in the set that return the builder type.
|
private final javax.lang.model.element.TypeElement builderTypeElement
com.google.common.collect.ImmutableSet<javax.lang.model.element.ExecutableElement> toBuilderMethods(javax.lang.model.util.Types typeUtils, java.util.Set<javax.lang.model.element.ExecutableElement> abstractMethods)
<A, B>
, then the return type of the method must be Builder<A, B>
with
the same parameter names. We enforce elsewhere that the names and bounds of the builder
parameters must be the same as those of the @AutoValue class. Here's a correct example:
@AutoValue abstract class Foo<A extends Number, B> {
abstract int someProperty();
abstract Builder<A, B> toBuilder();
interface Builder<A extends Number, B> {...}
}
We currently impose that there cannot be more than one such method.
java.util.Set<javax.lang.model.type.TypeMirror> referencedTypes()
void defineVars(AutoValueTemplateVars vars, TypeSimplifier typeSimplifier, com.google.common.collect.ImmutableBiMap<javax.lang.model.element.ExecutableElement,java.lang.String> getterToPropertyName)
private com.google.common.collect.ImmutableMap<java.lang.String,BuilderSpec.PropertyBuilder> makeBuilderPropertyBuilderMap(BuilderMethodClassifier classifier, TypeSimplifier typeSimplifier, com.google.common.collect.ImmutableBiMap<javax.lang.model.element.ExecutableElement,java.lang.String> getterToPropertyName)