Move NoopAnnotationManager into model package
The `NoopAnnotationManager` is used by a test class in the `model`
package.
Bug: 287241408
Test: ./gradlew
Change-Id: Ic0f080fb4a68884c6441fc9171eb1e42604bf59d
diff --git a/src/main/java/com/android/tools/metalava/model/AnnotationManager.kt b/src/main/java/com/android/tools/metalava/model/AnnotationManager.kt
index 99a8dfd..f2983cf 100644
--- a/src/main/java/com/android/tools/metalava/model/AnnotationManager.kt
+++ b/src/main/java/com/android/tools/metalava/model/AnnotationManager.kt
@@ -153,3 +153,40 @@
*/
protected abstract fun computeAnnotationInfo(annotationItem: AnnotationItem): AnnotationInfo
}
+
+/**
+ * A no op implementation of [AnnotationManager] that is suitable for use by the deprecated,
+ * external use only `ApiFile.parseApi(String,String,Boolean?)` and the for test only
+ * `ApiFile.parseApi(String,String,ClassResolver?)` methods.
+ *
+ * This is used when loading an API signature from a text file and makes the following assumptions:
+ * * The annotation names are correct and do not need mapping into another form.
+ * * The annotations can be used in all stubs.
+ */
+class NoOpAnnotationManager : BaseAnnotationManager() {
+
+ override fun getKeyForAnnotationItem(annotationItem: AnnotationItem): String {
+ // Just use the qualified name as the key as [computeAnnotationInfo] does not use anything
+ // else.
+ return annotationItem.qualifiedName!!
+ }
+
+ override fun computeAnnotationInfo(annotationItem: AnnotationItem): AnnotationInfo {
+ return AnnotationInfo(annotationItem.qualifiedName!!)
+ }
+
+ override fun normalizeInputName(qualifiedName: String?): String? {
+ return qualifiedName
+ }
+
+ override fun normalizeOutputName(qualifiedName: String?, target: AnnotationTarget): String? {
+ return qualifiedName
+ }
+
+ override fun computeTargets(
+ annotation: AnnotationItem,
+ classFinder: (String) -> ClassItem?
+ ): Set<AnnotationTarget> = ANNOTATION_IN_ALL_STUBS
+
+ override val typedefMode: TypedefMode = TypedefMode.NONE
+}
diff --git a/src/main/java/com/android/tools/metalava/model/text/ApiFile.kt b/src/main/java/com/android/tools/metalava/model/text/ApiFile.kt
index 1640a37..4937a54 100644
--- a/src/main/java/com/android/tools/metalava/model/text/ApiFile.kt
+++ b/src/main/java/com/android/tools/metalava/model/text/ApiFile.kt
@@ -17,13 +17,8 @@
import com.android.tools.metalava.model.ANDROIDX_NONNULL
import com.android.tools.metalava.model.ANDROIDX_NULLABLE
-import com.android.tools.metalava.model.ANNOTATION_IN_ALL_STUBS
-import com.android.tools.metalava.model.AnnotationInfo
-import com.android.tools.metalava.model.AnnotationItem
import com.android.tools.metalava.model.AnnotationItem.Companion.unshortenAnnotation
import com.android.tools.metalava.model.AnnotationManager
-import com.android.tools.metalava.model.AnnotationTarget
-import com.android.tools.metalava.model.BaseAnnotationManager
import com.android.tools.metalava.model.ClassItem
import com.android.tools.metalava.model.ClassResolver
import com.android.tools.metalava.model.DefaultModifierList
@@ -36,9 +31,9 @@
import com.android.tools.metalava.model.JAVA_LANG_STRING
import com.android.tools.metalava.model.JAVA_LANG_THROWABLE
import com.android.tools.metalava.model.MethodItem
+import com.android.tools.metalava.model.NoOpAnnotationManager
import com.android.tools.metalava.model.TypeParameterList
import com.android.tools.metalava.model.TypeParameterList.Companion.NONE
-import com.android.tools.metalava.model.TypedefMode
import com.android.tools.metalava.model.VisibilityLevel
import com.android.tools.metalava.model.javaUnescapeString
import com.android.tools.metalava.model.text.TextTypeItem.Companion.isPrimitive
@@ -1468,43 +1463,6 @@
}
}
-/**
- * A no op implementation of [AnnotationManager] that is suitable for use by the deprecated,
- * external use only `ApiFile.parseApi(String,String,Boolean?)` and the for test only
- * `ApiFile.parseApi(String,String,ClassResolver?)` methods.
- *
- * This is used when loading an API signature from a text file and makes the following assumptions:
- * * The annotation names are correct and do not need mapping into another form.
- * * The annotations can be used in all stubs.
- */
-internal class NoOpAnnotationManager : BaseAnnotationManager() {
-
- override fun getKeyForAnnotationItem(annotationItem: AnnotationItem): String {
- // Just use the qualified name as the key as [computeAnnotationInfo] does not use anything
- // else.
- return annotationItem.qualifiedName!!
- }
-
- override fun computeAnnotationInfo(annotationItem: AnnotationItem): AnnotationInfo {
- return AnnotationInfo(annotationItem.qualifiedName!!)
- }
-
- override fun normalizeInputName(qualifiedName: String?): String? {
- return qualifiedName
- }
-
- override fun normalizeOutputName(qualifiedName: String?, target: AnnotationTarget): String? {
- return qualifiedName
- }
-
- override fun computeTargets(
- annotation: AnnotationItem,
- classFinder: (String) -> ClassItem?
- ): Set<AnnotationTarget> = ANNOTATION_IN_ALL_STUBS
-
- override val typedefMode: TypedefMode = TypedefMode.NONE
-}
-
private fun DefaultModifierList.addAnnotations(annotationSources: List<String>) {
if (annotationSources.isEmpty()) {
return
diff --git a/src/test/java/com/android/tools/metalava/model/DefaultAnnotationItemTest.kt b/src/test/java/com/android/tools/metalava/model/DefaultAnnotationItemTest.kt
index 51e6f3e..6d5ff64 100644
--- a/src/test/java/com/android/tools/metalava/model/DefaultAnnotationItemTest.kt
+++ b/src/test/java/com/android/tools/metalava/model/DefaultAnnotationItemTest.kt
@@ -16,7 +16,6 @@
package com.android.tools.metalava.model
-import com.android.tools.metalava.model.text.NoOpAnnotationManager
import java.io.File
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNotNull