diff options
author | Eugene Susla <eugenesusla@google.com> | 2019-08-06 18:47:14 -0700 |
---|---|---|
committer | Eugene Susla <eugenesusla@google.com> | 2019-08-06 21:29:29 -0700 |
commit | 3b2fe616fd26e9a2022f41589d7062ab12db3768 (patch) | |
tree | 45bb66fe665961ce1fe7cccf35733a534e08fd71 /tools/codegen | |
parent | c7ccc2cd5e45c695b50844654d1c6bd53c5194a4 (diff) |
Use dataclass codegen on a few initial framework classes
Test: presubmit
Change-Id: Ide3c21596f6489fdb1db8f72e1436a01b10f56ed
Diffstat (limited to 'tools/codegen')
4 files changed, 23 insertions, 8 deletions
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<Pair<VariableDeclarator, FieldDec } } - val visibility = if (consts[0].second.isPublic) "public" else "/* package-*/" + val visibility = if (consts[0].second.isPublic) "public" else "/* package-private */" val Retention = classRef("java.lang.annotation.Retention") val RetentionPolicySource = memberRef("java.lang.annotation.RetentionPolicy.SOURCE") val ConstDef = classRef("android.annotation.${type.capitalize()}Def") + if (FeatureFlag.CONST_DEFS.hidden) { + +"/** @hide */" + } "@$ConstDef(${if_(flag, "flag = true, ")}prefix = \"${prefix}_\", value = {" { names.forEachLastAware { name, isLast -> +"$name${if_(!isLast, ",")}" @@ -85,6 +88,9 @@ fun ClassPrinter.generateConstDef(consts: List<Pair<VariableDeclarator, FieldDec +"" if (type == "int") { + if (FeatureFlag.CONST_DEFS.hidden) { + +"/** @hide */" + } +GENERATED_MEMBER_HEADER val methodDefLine = "$visibility static String ${AnnotationName.decapitalize()}ToString(" + "@$AnnotationName int value)" diff --git a/tools/codegen/src/com/android/codegen/InputSignaturesComputation.kt b/tools/codegen/src/com/android/codegen/InputSignaturesComputation.kt index 1e7a2674006b..ee2706bb4ba2 100644 --- a/tools/codegen/src/com/android/codegen/InputSignaturesComputation.kt +++ b/tools/codegen/src/com/android/codegen/InputSignaturesComputation.kt @@ -97,7 +97,7 @@ private fun ClassPrinter.getFullClassName(type: Type): String { getFullClassName(buildString { type.scope.ifPresent { append(it).append(".") } append(type.nameAsString) - }) + (type.typeArguments.orElse(null)?.let { args -> args.joinToString(", ") {getFullClassName(it)}}?.let { "<$it>" } ?: "") + }) + (type.typeArguments.orElse(null)?.let { args -> args.joinToString(",") {getFullClassName(it)}}?.let { "<$it>" } ?: "") } else getFullClassName(type.asString()) } |