Merge "Generate @NonNull setter args and @MaySetToNull to opt out" into rvc-dev

This commit is contained in:
Eugene Susla
2020-03-06 18:53:24 +00:00
committed by Android (Google) Code Review
13 changed files with 74 additions and 50 deletions

View File

@@ -100,7 +100,7 @@ class ClassPrinter(
?: emptyMap()
val internalAnnotations = setOf(ParcelWith, DataClassEnum, PluralOf, UnsupportedAppUsage,
DataClassSuppressConstDefs)
DataClassSuppressConstDefs, MaySetToNull, Each, DataClass)
val knownNonValidationAnnotations = internalAnnotations + Each + Nullable
/**

View File

@@ -147,9 +147,19 @@ data class FieldInfo(
val sParcelling by lazy { customParcellingClass?.let { "sParcellingFor$NameUpperCamel" } }
val SetterParamType = if (isArray) "$FieldInnerType..." else Type
val annotatedTypeForSetterParam by lazy {
(annotationsNoInternal + SetterParamType).joinToString(" ")
val annotationsForSetterParam by lazy {
buildList<String> {
addAll(annotationsNoInternal)
classPrinter {
if ("@$Nullable" in annotations
&& "@$MaySetToNull" !in annotations) {
remove("@$Nullable")
add("@$NonNull")
}
}
}.joinToString(" ")
}
val annotatedTypeForSetterParam by lazy { "$annotationsForSetterParam $SetterParamType" }
// Utilities

View File

@@ -315,7 +315,7 @@ private fun ClassPrinter.generateBuilderSetters(visibility: String) {
generateBuilderMethod(
name = setterName,
defVisibility = visibility,
paramAnnotations = annotationsNoInternal.joinToString(" "),
paramAnnotations = annotationsForSetterParam,
paramTypes = listOf(SetterParamType),
genJavadoc = { generateFieldJavadoc() }) {
+"checkNotUsed();"

View File

@@ -39,6 +39,7 @@ interface ImportsProvider {
val ParcelWith: String get() { return classRef("com.android.internal.util.DataClass.ParcelWith") }
val PluralOf: String get() { return classRef("com.android.internal.util.DataClass.PluralOf") }
val Each: String get() { return classRef("com.android.internal.util.DataClass.Each") }
val MaySetToNull: String get() { return classRef("com.android.internal.util.DataClass.MaySetToNull") }
val DataClassGenerated: String get() { return classRef("com.android.internal.util.DataClass.Generated") }
val DataClassSuppressConstDefs: String get() { return classRef("com.android.internal.util.DataClass.SuppressConstDefsGeneration") }
val DataClassSuppress: String get() { return classRef("com.android.internal.util.DataClass.Suppress") }

View File

@@ -1,7 +1,7 @@
package com.android.codegen
const val CODEGEN_NAME = "codegen"
const val CODEGEN_VERSION = "1.0.14"
const val CODEGEN_VERSION = "1.0.15"
const val CANONICAL_BUILDER_CLASS = "Builder"
const val BASE_BUILDER_CLASS = "BaseBuilder"