Package com.google.auto.value.processor
Class PropertyBuilderClassifier
- java.lang.Object
-
- com.google.auto.value.processor.PropertyBuilderClassifier
-
class PropertyBuilderClassifier extends java.lang.Object
Classifies methods inside builder types that return builders for properties. For example, if@AutoValue
class Foo has a methodImmutableList<String> bar()
then Foo.Builder can have a methodImmutableList.Builder<String> barBuilder()
. This class checks that a method likebarBuilder()
follows the rules, and if so constructs aPropertyBuilderClassifier.PropertyBuilder
instance with information aboutbarBuilder
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PropertyBuilderClassifier.PropertyBuilder
Information about a property builder, referenced from the autovalue.vm template.
-
Field Summary
Fields Modifier and Type Field Description private static com.google.common.collect.ImmutableSet<java.lang.String>
BUILDER_METHOD_NAMES
private BuilderMethodClassifier
builderMethodClassifier
private static java.lang.String
COM_GOOGLE_COMMON_COLLECT_IMMUTABLE
private EclipseHack
eclipseHack
private javax.lang.model.util.Elements
elementUtils
private ErrorReporter
errorReporter
private com.google.common.collect.ImmutableBiMap<javax.lang.model.element.ExecutableElement,java.lang.String>
getterToPropertyName
private javax.lang.model.util.Types
typeUtils
-
Constructor Summary
Constructors Constructor Description PropertyBuilderClassifier(ErrorReporter errorReporter, javax.lang.model.util.Types typeUtils, javax.lang.model.util.Elements elementUtils, BuilderMethodClassifier builderMethodClassifier, com.google.common.collect.ImmutableBiMap<javax.lang.model.element.ExecutableElement,java.lang.String> getterToPropertyName, EclipseHack eclipseHack)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.util.Optional<javax.lang.model.element.ExecutableElement>
addAllPutAll(javax.lang.model.element.TypeElement barBuilderTypeElement)
private java.util.Optional<javax.lang.model.element.ExecutableElement>
builderMaker(java.util.Map<java.lang.String,javax.lang.model.element.ExecutableElement> barNoArgMethods, javax.lang.model.element.TypeElement barBuilderTypeElement)
private static boolean
isNullable(javax.lang.model.element.ExecutableElement getter)
(package private) java.util.Optional<PropertyBuilderClassifier.PropertyBuilder>
makePropertyBuilder(javax.lang.model.element.ExecutableElement method, java.lang.String property)
private java.util.Map<java.lang.String,javax.lang.model.element.ExecutableElement>
noArgMethodsOf(javax.lang.model.element.TypeElement type)
-
-
-
Field Detail
-
errorReporter
private final ErrorReporter errorReporter
-
typeUtils
private final javax.lang.model.util.Types typeUtils
-
elementUtils
private final javax.lang.model.util.Elements elementUtils
-
builderMethodClassifier
private final BuilderMethodClassifier builderMethodClassifier
-
getterToPropertyName
private final com.google.common.collect.ImmutableBiMap<javax.lang.model.element.ExecutableElement,java.lang.String> getterToPropertyName
-
eclipseHack
private final EclipseHack eclipseHack
-
COM_GOOGLE_COMMON_COLLECT_IMMUTABLE
private static final java.lang.String COM_GOOGLE_COMMON_COLLECT_IMMUTABLE
-
BUILDER_METHOD_NAMES
private static final com.google.common.collect.ImmutableSet<java.lang.String> BUILDER_METHOD_NAMES
-
-
Constructor Detail
-
PropertyBuilderClassifier
PropertyBuilderClassifier(ErrorReporter errorReporter, javax.lang.model.util.Types typeUtils, javax.lang.model.util.Elements elementUtils, BuilderMethodClassifier builderMethodClassifier, com.google.common.collect.ImmutableBiMap<javax.lang.model.element.ExecutableElement,java.lang.String> getterToPropertyName, EclipseHack eclipseHack)
-
-
Method Detail
-
makePropertyBuilder
java.util.Optional<PropertyBuilderClassifier.PropertyBuilder> makePropertyBuilder(javax.lang.model.element.ExecutableElement method, java.lang.String property)
-
builderMaker
private java.util.Optional<javax.lang.model.element.ExecutableElement> builderMaker(java.util.Map<java.lang.String,javax.lang.model.element.ExecutableElement> barNoArgMethods, javax.lang.model.element.TypeElement barBuilderTypeElement)
-
noArgMethodsOf
private java.util.Map<java.lang.String,javax.lang.model.element.ExecutableElement> noArgMethodsOf(javax.lang.model.element.TypeElement type)
-
addAllPutAll
private java.util.Optional<javax.lang.model.element.ExecutableElement> addAllPutAll(javax.lang.model.element.TypeElement barBuilderTypeElement)
-
isNullable
private static boolean isNullable(javax.lang.model.element.ExecutableElement getter)
-
-