class PropertyBuilderClassifier
extends java.lang.Object
@AutoValue
class Foo has a method ImmutableList<String> bar()
then
Foo.Builder can have a method ImmutableList.Builder<String> barBuilder()
. This class
checks that a method like barBuilder()
follows the rules, and if so constructs a
PropertyBuilderClassifier.PropertyBuilder
instance with information about barBuilder
.Modifier and Type | Class and Description |
---|---|
static class |
PropertyBuilderClassifier.PropertyBuilder
Information about a property builder, referenced from the autovalue.vm template.
|
Modifier and Type | Field and 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 TypeSimplifier |
typeSimplifier |
private javax.lang.model.util.Types |
typeUtils |
Constructor and 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,
TypeSimplifier typeSimplifier,
EclipseHack eclipseHack) |
Modifier and Type | Method and Description |
---|---|
private com.google.common.base.Optional<javax.lang.model.element.ExecutableElement> |
addAllPutAll(javax.lang.model.element.TypeElement barBuilderTypeElement) |
private com.google.common.base.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) com.google.common.base.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) |
private final ErrorReporter errorReporter
private final javax.lang.model.util.Types typeUtils
private final javax.lang.model.util.Elements elementUtils
private final BuilderMethodClassifier builderMethodClassifier
private final com.google.common.collect.ImmutableBiMap<javax.lang.model.element.ExecutableElement,java.lang.String> getterToPropertyName
private final TypeSimplifier typeSimplifier
private final EclipseHack eclipseHack
private static final java.lang.String COM_GOOGLE_COMMON_COLLECT_IMMUTABLE
private static final com.google.common.collect.ImmutableSet<java.lang.String> BUILDER_METHOD_NAMES
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, TypeSimplifier typeSimplifier, EclipseHack eclipseHack)
com.google.common.base.Optional<PropertyBuilderClassifier.PropertyBuilder> makePropertyBuilder(javax.lang.model.element.ExecutableElement method, java.lang.String property)
private com.google.common.base.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 java.util.Map<java.lang.String,javax.lang.model.element.ExecutableElement> noArgMethodsOf(javax.lang.model.element.TypeElement type)
private com.google.common.base.Optional<javax.lang.model.element.ExecutableElement> addAllPutAll(javax.lang.model.element.TypeElement barBuilderTypeElement)
private static boolean isNullable(javax.lang.model.element.ExecutableElement getter)