public class UpdateActionGenerator extends Object
HasUpdateAction
.Modifier and Type | Field and Description |
---|---|
protected Elements |
elements |
protected Messager |
messager |
protected Types |
types |
protected TypeUtils |
typeUtils |
Constructor and Description |
---|
UpdateActionGenerator(Elements elements,
Types types,
Messager messager) |
Modifier and Type | Method and Description |
---|---|
protected void |
addSuppressWarnings(com.squareup.javapoet.MethodSpec.Builder builder) |
protected void |
copyDeprecatedAnnotation(PropertyGenModel property,
com.squareup.javapoet.MethodSpec.Builder methodSpecBuilder) |
protected void |
copyDeprecatedAnnotation(PropertyGenModel property,
com.squareup.javapoet.TypeSpec.Builder typeSpecBuilder) |
protected void |
copyJsonAnnotation(PropertyGenModel property,
com.squareup.javapoet.MethodSpec.Builder builder) |
protected com.squareup.javapoet.MethodSpec |
createConstructor(List<PropertyGenModel> properties) |
protected com.squareup.javapoet.MethodSpec |
createConstructor(List<PropertyGenModel> properties,
com.squareup.javapoet.ClassName actionName,
String actionString,
Modifier... modifiers) |
protected com.squareup.javapoet.MethodSpec |
createConstructor(List<PropertyGenModel> properties,
List<Modifier> modifiers) |
protected com.squareup.javapoet.MethodSpec |
createCopyFactoryMethod(TypeElement typeElement,
com.squareup.javapoet.ClassName returnType,
List<ExecutableElement> propertyMethods) |
protected com.squareup.javapoet.MethodSpec |
createCopyFactoryMethod(TypeElement typeElement,
com.squareup.javapoet.ClassName returnType,
List<ExecutableElement> propertyMethods,
List<PropertyGenModel> propertyGenModels) |
protected com.squareup.javapoet.MethodSpec |
createDefaultConstructor(List<Modifier> modifiers) |
protected com.squareup.javapoet.MethodSpec |
createFactoryMethod(FactoryMethod factoryMethod,
List<PropertyGenModel> properties,
com.squareup.javapoet.ClassName returnType) |
protected com.squareup.javapoet.MethodSpec |
createFactoryMethod(List<PropertyGenModel> properties,
com.squareup.javapoet.ClassName returnType,
List<String> parameterNames,
String methodName,
boolean useLowercaseBooleans) |
protected List<com.squareup.javapoet.MethodSpec> |
createFactoryMethods(FactoryMethod[] factoryMethods,
List<PropertyGenModel> properties,
com.squareup.javapoet.ClassName returnType) |
protected com.squareup.javapoet.FieldSpec |
createField(PropertyGenModel property) |
protected com.squareup.javapoet.FieldSpec |
createField(PropertyGenModel property,
List<Modifier> modifiers) |
protected com.squareup.javapoet.FieldSpec |
createField(PropertyGenModel property,
Modifier modifier) |
protected com.squareup.javapoet.FieldSpec.Builder |
createFieldBuilder(PropertyGenModel property,
Modifier modifier) |
protected com.squareup.javapoet.MethodSpec |
createGetMethod(PropertyGenModel propertyGenModel) |
protected com.squareup.javapoet.AnnotationSpec |
createJsonPropertyAnnotation(String jsonName) |
protected com.squareup.javapoet.ParameterSpec |
createParameter(PropertyGenModel property,
boolean useLowercaseBooleans,
boolean copyNullable) |
protected com.squareup.javapoet.ParameterSpec |
createParameter(PropertyGenModel property,
com.squareup.javapoet.TypeName parameterType,
boolean copyNullable) |
protected List<com.squareup.javapoet.ParameterSpec> |
createParameters(List<PropertyGenModel> properties,
boolean useLowercaseBooleans,
boolean copyNullable) |
protected com.squareup.javapoet.MethodSpec |
createWithMethod(List<PropertyGenModel> properties,
PropertyGenModel propertyGenModel,
com.squareup.javapoet.ClassName returnType) |
protected String |
escapeJavaKeyword(String name)
Escapes the given name with an
"_" if it's a java keyword (e.g. |
com.squareup.javapoet.JavaFile |
generate(T annotatedElement)
Generates code for the given annotated type element.
|
com.squareup.javapoet.TypeSpec |
generateType(ExecutableElement annotatedTypeElement) |
protected com.squareup.javapoet.TypeSpec |
generateUpdateAction(ExecutableElement propertyMethod) |
protected com.squareup.javapoet.TypeSpec |
generateUpdateAction(ExecutableElement propertyMethod,
HasUpdateAction hasUpdateActionInstance) |
protected List<ExecutableElement> |
getAllPropertyMethodsSorted(TypeElement typeElement)
Returns all property methods - including inherited methods - sorted by their property name.
|
protected String |
getPackageName(Element annotatedTypeElement) |
protected List<PropertyGenModel> |
getPropertyGenModels(List<ExecutableElement> propertyMethods) |
protected List<ExecutableElement> |
getPropertyMethodsSorted(TypeElement typeElement)
Returns property methods - not included inherited methods - sorted by their property name.
|
protected final Elements elements
protected final Types types
protected final Messager messager
protected final TypeUtils typeUtils
public com.squareup.javapoet.TypeSpec generateType(ExecutableElement annotatedTypeElement)
protected com.squareup.javapoet.TypeSpec generateUpdateAction(ExecutableElement propertyMethod)
protected com.squareup.javapoet.TypeSpec generateUpdateAction(ExecutableElement propertyMethod, HasUpdateAction hasUpdateActionInstance)
protected com.squareup.javapoet.MethodSpec createConstructor(List<PropertyGenModel> properties, com.squareup.javapoet.ClassName actionName, String actionString, Modifier... modifiers)
protected com.squareup.javapoet.MethodSpec createGetMethod(PropertyGenModel propertyGenModel)
protected com.squareup.javapoet.MethodSpec createWithMethod(List<PropertyGenModel> properties, PropertyGenModel propertyGenModel, com.squareup.javapoet.ClassName returnType)
protected com.squareup.javapoet.FieldSpec createField(PropertyGenModel property, Modifier modifier)
public final com.squareup.javapoet.JavaFile generate(T annotatedElement)
annotatedElement
- the annotated type elementprotected com.squareup.javapoet.FieldSpec createField(PropertyGenModel property)
protected com.squareup.javapoet.FieldSpec.Builder createFieldBuilder(PropertyGenModel property, Modifier modifier)
protected String escapeJavaKeyword(String name)
"_"
if it's a java keyword (e.g. default
.name
- the name to escapeprotected List<ExecutableElement> getAllPropertyMethodsSorted(TypeElement typeElement)
typeElement
- the type elementPropertyGenModel.getPropertyName(ExecutableElement)
protected List<ExecutableElement> getPropertyMethodsSorted(TypeElement typeElement)
typeElement
- the type elementPropertyGenModel.getPropertyName(ExecutableElement)
protected List<PropertyGenModel> getPropertyGenModels(List<ExecutableElement> propertyMethods)
protected void copyJsonAnnotation(PropertyGenModel property, com.squareup.javapoet.MethodSpec.Builder builder)
protected void addSuppressWarnings(com.squareup.javapoet.MethodSpec.Builder builder)
protected void copyDeprecatedAnnotation(PropertyGenModel property, com.squareup.javapoet.TypeSpec.Builder typeSpecBuilder)
protected void copyDeprecatedAnnotation(PropertyGenModel property, com.squareup.javapoet.MethodSpec.Builder methodSpecBuilder)
protected com.squareup.javapoet.ParameterSpec createParameter(PropertyGenModel property, boolean useLowercaseBooleans, boolean copyNullable)
property
- the property to generate the parameteruseLowercaseBooleans
- FactoryMethod.useLowercaseBooleans()
copyNullable
- if true, an existing Nullable
annotation on the model will be copied to the parameterprotected com.squareup.javapoet.ParameterSpec createParameter(PropertyGenModel property, com.squareup.javapoet.TypeName parameterType, boolean copyNullable)
protected com.squareup.javapoet.FieldSpec createField(PropertyGenModel property, List<Modifier> modifiers)
protected com.squareup.javapoet.MethodSpec createDefaultConstructor(List<Modifier> modifiers)
protected com.squareup.javapoet.MethodSpec createConstructor(List<PropertyGenModel> properties, List<Modifier> modifiers)
protected List<com.squareup.javapoet.ParameterSpec> createParameters(List<PropertyGenModel> properties, boolean useLowercaseBooleans, boolean copyNullable)
protected com.squareup.javapoet.MethodSpec createConstructor(List<PropertyGenModel> properties)
protected com.squareup.javapoet.AnnotationSpec createJsonPropertyAnnotation(String jsonName)
protected List<com.squareup.javapoet.MethodSpec> createFactoryMethods(FactoryMethod[] factoryMethods, List<PropertyGenModel> properties, com.squareup.javapoet.ClassName returnType)
protected com.squareup.javapoet.MethodSpec createFactoryMethod(FactoryMethod factoryMethod, List<PropertyGenModel> properties, com.squareup.javapoet.ClassName returnType)
protected com.squareup.javapoet.MethodSpec createFactoryMethod(List<PropertyGenModel> properties, com.squareup.javapoet.ClassName returnType, List<String> parameterNames, String methodName, boolean useLowercaseBooleans)
protected com.squareup.javapoet.MethodSpec createCopyFactoryMethod(TypeElement typeElement, com.squareup.javapoet.ClassName returnType, List<ExecutableElement> propertyMethods)
protected com.squareup.javapoet.MethodSpec createCopyFactoryMethod(TypeElement typeElement, com.squareup.javapoet.ClassName returnType, List<ExecutableElement> propertyMethods, List<PropertyGenModel> propertyGenModels)