Java annotation mapper refactoring (constant names)
This commit is contained in:
+17
-17
@@ -38,17 +38,17 @@ import java.util.EnumSet
|
|||||||
|
|
||||||
public object JavaAnnotationMapper {
|
public object JavaAnnotationMapper {
|
||||||
|
|
||||||
private val javaTargetFqName = FqName(javaClass<Target>().canonicalName)
|
private val JAVA_TARGET_FQ_NAME = FqName(javaClass<Target>().canonicalName)
|
||||||
private val javaRetentionFqName = FqName(javaClass<Retention>().canonicalName)
|
private val JAVA_RETENTION_FQ_NAME = FqName(javaClass<Retention>().canonicalName)
|
||||||
private val javaDeprecatedFqName = FqName(javaClass<Deprecated>().canonicalName)
|
private val JAVA_DEPRECATED_FQ_NAME = FqName(javaClass<Deprecated>().canonicalName)
|
||||||
private val javaDocumentedFqName = FqName(javaClass<Documented>().canonicalName)
|
private val JAVA_DOCUMENTED_FQ_NAME = FqName(javaClass<Documented>().canonicalName)
|
||||||
// Java8-specific thing
|
// Java8-specific thing
|
||||||
private val javaRepeatableFqName = FqName("java.lang.annotation.Repeatable")
|
private val JAVA_REPEATABLE_FQ_NAME = FqName("java.lang.annotation.Repeatable")
|
||||||
|
|
||||||
public fun mapOrResolveJavaAnnotation(annotation: JavaAnnotation, c: LazyJavaResolverContext): AnnotationDescriptor? =
|
public fun mapOrResolveJavaAnnotation(annotation: JavaAnnotation, c: LazyJavaResolverContext): AnnotationDescriptor? =
|
||||||
when (annotation.classId) {
|
when (annotation.classId) {
|
||||||
ClassId.topLevel(javaTargetFqName) -> JavaTargetAnnotationDescriptor(annotation, c)
|
ClassId.topLevel(JAVA_TARGET_FQ_NAME) -> JavaTargetAnnotationDescriptor(annotation, c)
|
||||||
ClassId.topLevel(javaRetentionFqName), ClassId.topLevel(javaDeprecatedFqName) -> null
|
ClassId.topLevel(JAVA_RETENTION_FQ_NAME), ClassId.topLevel(JAVA_DEPRECATED_FQ_NAME) -> null
|
||||||
else -> c.resolveAnnotation(annotation)
|
else -> c.resolveAnnotation(annotation)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,9 +58,9 @@ public object JavaAnnotationMapper {
|
|||||||
): AnnotationDescriptor? {
|
): AnnotationDescriptor? {
|
||||||
if (kotlinName == KotlinBuiltIns.FQ_NAMES.annotation) {
|
if (kotlinName == KotlinBuiltIns.FQ_NAMES.annotation) {
|
||||||
// Construct kotlin.annotation.annotation from Retention & Repeatable
|
// Construct kotlin.annotation.annotation from Retention & Repeatable
|
||||||
val retentionAnnotation = annotationOwner.findAnnotation(javaRetentionFqName)
|
val retentionAnnotation = annotationOwner.findAnnotation(JAVA_RETENTION_FQ_NAME)
|
||||||
val repeatableAnnotation = annotationOwner.findAnnotation(javaRepeatableFqName)
|
val repeatableAnnotation = annotationOwner.findAnnotation(JAVA_REPEATABLE_FQ_NAME)
|
||||||
val documentedAnnotation = annotationOwner.findAnnotation(javaDocumentedFqName)
|
val documentedAnnotation = annotationOwner.findAnnotation(JAVA_DOCUMENTED_FQ_NAME)
|
||||||
return if (retentionAnnotation != null || repeatableAnnotation != null || documentedAnnotation != null) {
|
return if (retentionAnnotation != null || repeatableAnnotation != null || documentedAnnotation != null) {
|
||||||
JavaRetentionRepeatableAnnotationDescriptor(retentionAnnotation, repeatableAnnotation != null,
|
JavaRetentionRepeatableAnnotationDescriptor(retentionAnnotation, repeatableAnnotation != null,
|
||||||
documentedAnnotation != null, c)
|
documentedAnnotation != null, c)
|
||||||
@@ -70,7 +70,7 @@ public object JavaAnnotationMapper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (kotlinName == KotlinBuiltIns.FQ_NAMES.deprecated) {
|
if (kotlinName == KotlinBuiltIns.FQ_NAMES.deprecated) {
|
||||||
val javaAnnotation = annotationOwner.findAnnotation(javaDeprecatedFqName)
|
val javaAnnotation = annotationOwner.findAnnotation(JAVA_DEPRECATED_FQ_NAME)
|
||||||
if (javaAnnotation != null || annotationOwner.isDeprecatedInJavaDoc) {
|
if (javaAnnotation != null || annotationOwner.isDeprecatedInJavaDoc) {
|
||||||
return JavaDeprecatedAnnotationDescriptor(javaAnnotation, c)
|
return JavaDeprecatedAnnotationDescriptor(javaAnnotation, c)
|
||||||
}
|
}
|
||||||
@@ -84,14 +84,14 @@ public object JavaAnnotationMapper {
|
|||||||
|
|
||||||
// kotlin.annotation.annotation is treated separately
|
// kotlin.annotation.annotation is treated separately
|
||||||
private val kotlinToJavaNameMap: Map<FqName, FqName> =
|
private val kotlinToJavaNameMap: Map<FqName, FqName> =
|
||||||
mapOf(KotlinBuiltIns.FQ_NAMES.target to javaTargetFqName)
|
mapOf(KotlinBuiltIns.FQ_NAMES.target to JAVA_TARGET_FQ_NAME)
|
||||||
|
|
||||||
public val javaToKotlinNameMap: Map<FqName, FqName> =
|
public val javaToKotlinNameMap: Map<FqName, FqName> =
|
||||||
mapOf(javaTargetFqName to KotlinBuiltIns.FQ_NAMES.target,
|
mapOf(JAVA_TARGET_FQ_NAME to KotlinBuiltIns.FQ_NAMES.target,
|
||||||
javaRetentionFqName to KotlinBuiltIns.FQ_NAMES.annotation,
|
JAVA_RETENTION_FQ_NAME to KotlinBuiltIns.FQ_NAMES.annotation,
|
||||||
javaDeprecatedFqName to KotlinBuiltIns.FQ_NAMES.deprecated,
|
JAVA_DEPRECATED_FQ_NAME to KotlinBuiltIns.FQ_NAMES.deprecated,
|
||||||
javaRepeatableFqName to KotlinBuiltIns.FQ_NAMES.annotation,
|
JAVA_REPEATABLE_FQ_NAME to KotlinBuiltIns.FQ_NAMES.annotation,
|
||||||
javaDocumentedFqName to KotlinBuiltIns.FQ_NAMES.annotation)
|
JAVA_DOCUMENTED_FQ_NAME to KotlinBuiltIns.FQ_NAMES.annotation)
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class AbstractJavaAnnotationDescriptor(
|
abstract class AbstractJavaAnnotationDescriptor(
|
||||||
|
|||||||
Reference in New Issue
Block a user