From 3b2fe616fd26e9a2022f41589d7062ab12db3768 Mon Sep 17 00:00:00 2001 From: Eugene Susla Date: Tue, 6 Aug 2019 18:47:14 -0700 Subject: Use dataclass codegen on a few initial framework classes Test: presubmit Change-Id: Ide3c21596f6489fdb1db8f72e1436a01b10f56ed --- .../codegen/src/com/android/codegen/ClassPrinter.kt | 20 +++++++++++++++----- tools/codegen/src/com/android/codegen/FieldInfo.kt | 1 - tools/codegen/src/com/android/codegen/Generators.kt | 8 +++++++- .../android/codegen/InputSignaturesComputation.kt | 2 +- 4 files changed, 23 insertions(+), 8 deletions(-) (limited to 'tools/codegen/src') diff --git a/tools/codegen/src/com/android/codegen/ClassPrinter.kt b/tools/codegen/src/com/android/codegen/ClassPrinter.kt index f1645ea9a3bb..04105599a161 100644 --- a/tools/codegen/src/com/android/codegen/ClassPrinter.kt +++ b/tools/codegen/src/com/android/codegen/ClassPrinter.kt @@ -122,9 +122,13 @@ class ClassPrinter( if (cliArgs.contains("--$kebabCase")) return true val annotationKey = "gen$upperCamelCase" + val annotationHiddenKey = "genHidden$upperCamelCase" if (dataClassAnnotationFeatures.containsKey(annotationKey)) { return dataClassAnnotationFeatures[annotationKey]!! } + if (dataClassAnnotationFeatures.containsKey(annotationHiddenKey)) { + return dataClassAnnotationFeatures[annotationHiddenKey]!! + } if (cliArgs.contains("--all")) return true if (hidden) return true @@ -144,11 +148,17 @@ class ClassPrinter( } } - val FeatureFlag.hidden - get(): Boolean = when { - cliArgs.contains("--hidden-$kebabCase") -> true - this == FeatureFlag.BUILD_UPON -> FeatureFlag.BUILDER.hidden - else -> false + val FeatureFlag.hidden: Boolean + get(): Boolean { + val annotationHiddenKey = "genHidden$upperCamelCase" + if (dataClassAnnotationFeatures.containsKey(annotationHiddenKey)) { + return dataClassAnnotationFeatures[annotationHiddenKey]!! + } + return when { + cliArgs.contains("--hidden-$kebabCase") -> true + this == FeatureFlag.BUILD_UPON -> FeatureFlag.BUILDER.hidden + else -> false + } } var currentIndent = INDENT_SINGLE diff --git a/tools/codegen/src/com/android/codegen/FieldInfo.kt b/tools/codegen/src/com/android/codegen/FieldInfo.kt index 74e79489ad7d..dc062e1b0283 100644 --- a/tools/codegen/src/com/android/codegen/FieldInfo.kt +++ b/tools/codegen/src/com/android/codegen/FieldInfo.kt @@ -85,7 +85,6 @@ data class FieldInfo( classInfo.classAst.methods.find { it.nameAsString == "default$NameUpperCamel" && it.parameters.isEmpty() }?.run { return "$nameAsString()" } - if (FieldClass == "List") return "${classPrinter.memberRef("java.util.Collections.emptyList")}()" return null } val hasDefault get() = defaultExpr != null diff --git a/tools/codegen/src/com/android/codegen/Generators.kt b/tools/codegen/src/com/android/codegen/Generators.kt index c6e0a064f9b4..914e475cfe41 100644 --- a/tools/codegen/src/com/android/codegen/Generators.kt +++ b/tools/codegen/src/com/android/codegen/Generators.kt @@ -68,12 +68,15 @@ fun ClassPrinter.generateConstDef(consts: List +"$name${if_(!isLast, ",")}" @@ -85,6 +88,9 @@ fun ClassPrinter.generateConstDef(consts: List args.joinToString(", ") {getFullClassName(it)}}?.let { "<$it>" } ?: "") + }) + (type.typeArguments.orElse(null)?.let { args -> args.joinToString(",") {getFullClassName(it)}}?.let { "<$it>" } ?: "") } else getFullClassName(type.asString()) } -- cgit v1.2.3-59-g8ed1b