diff options
author | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-03-06 18:54:35 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-03-06 18:54:35 +0000 |
commit | 32fedd8fe8fed71c7d8ce635fae2e952f0dede5c (patch) | |
tree | 0196d639314f5e89a2a28e407dba1bc15d566cee /tools/codegen/src | |
parent | 308c5758112cfb04c0fecf77304c883613b9ac04 (diff) | |
parent | 8f562219c80d2f7a56c87bee65304b25006ab11d (diff) |
Merge "Generate @NonNull setter args and @MaySetToNull to opt out" into rvc-dev am: 8f562219c8
Change-Id: I464a488dee61ef60b450d709a3c88fa66f9a783b
Diffstat (limited to 'tools/codegen/src')
5 files changed, 16 insertions, 5 deletions
diff --git a/tools/codegen/src/com/android/codegen/ClassPrinter.kt b/tools/codegen/src/com/android/codegen/ClassPrinter.kt index c7c80bab67bf..b90e1bb3e7e7 100644 --- a/tools/codegen/src/com/android/codegen/ClassPrinter.kt +++ b/tools/codegen/src/com/android/codegen/ClassPrinter.kt @@ -100,7 +100,7 @@ class ClassPrinter( ?: emptyMap() val internalAnnotations = setOf(ParcelWith, DataClassEnum, PluralOf, UnsupportedAppUsage, - DataClassSuppressConstDefs) + DataClassSuppressConstDefs, MaySetToNull, Each, DataClass) val knownNonValidationAnnotations = internalAnnotations + Each + Nullable /** diff --git a/tools/codegen/src/com/android/codegen/FieldInfo.kt b/tools/codegen/src/com/android/codegen/FieldInfo.kt index ebfbbd8163b5..02ebaef90f0b 100644 --- a/tools/codegen/src/com/android/codegen/FieldInfo.kt +++ b/tools/codegen/src/com/android/codegen/FieldInfo.kt @@ -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 diff --git a/tools/codegen/src/com/android/codegen/Generators.kt b/tools/codegen/src/com/android/codegen/Generators.kt index 8fe243ff68cb..5a96cf1d9bdb 100644 --- a/tools/codegen/src/com/android/codegen/Generators.kt +++ b/tools/codegen/src/com/android/codegen/Generators.kt @@ -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();" diff --git a/tools/codegen/src/com/android/codegen/ImportsProvider.kt b/tools/codegen/src/com/android/codegen/ImportsProvider.kt index c830aaa0df3d..27dd9587db25 100644 --- a/tools/codegen/src/com/android/codegen/ImportsProvider.kt +++ b/tools/codegen/src/com/android/codegen/ImportsProvider.kt @@ -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") } diff --git a/tools/codegen/src/com/android/codegen/SharedConstants.kt b/tools/codegen/src/com/android/codegen/SharedConstants.kt index 74c86f4551f8..6f740cd663e3 100644 --- a/tools/codegen/src/com/android/codegen/SharedConstants.kt +++ b/tools/codegen/src/com/android/codegen/SharedConstants.kt @@ -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" |