From cd09f2bcb89b5f607d88ec735a40bbb182dfbeda Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Tue, 2 Aug 2016 22:46:31 +0300 Subject: [PATCH] Kapt: Minor, refactor JeAnnotationMirror:getElementValues() (cherry picked from commit 649b938) --- .../java/model/elements/JeAnnotationMirror.kt | 22 ++++++------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/elements/JeAnnotationMirror.kt b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/elements/JeAnnotationMirror.kt index 76c9b8f69cf..c8e249d2c2b 100644 --- a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/elements/JeAnnotationMirror.kt +++ b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/elements/JeAnnotationMirror.kt @@ -33,27 +33,19 @@ class JeAnnotationMirror(val psi: PsiAnnotation) : AnnotationMirror { return JeDeclaredType(PsiTypesUtil.getClassType(psiClass), psiClass) } - override fun getElementValues(): Map { - val annotationClass = resolveAnnotationClass() ?: return emptyMap() - - return mutableMapOf().apply { - for (attribute in psi.parameterList.attributes) { - val attributeValue = attribute.value ?: continue - val method = annotationClass.methods.firstOrNull { - it is PsiAnnotationMethod && it.name == attribute.name - } ?: return emptyMap() - put(JeMethodExecutableElement(method), JeAnnotationValue(attributeValue)) - } - } - } + override fun getElementValues(): Map = getElementValues(false) + + fun getAllElementValues(): Map = getElementValues(true) - fun getAllElementValues(): Map { + private fun getElementValues(withDefaults: Boolean): Map { val annotationClass = resolveAnnotationClass() ?: return emptyMap() return mutableMapOf().apply { for (method in annotationClass.methods) { method as? PsiAnnotationMethod ?: continue - val attributeValue = psi.findAttributeValue(method.name) ?: method.defaultValue ?: continue + val attributeValue = psi.findDeclaredAttributeValue(method.name) + ?: (if (withDefaults) method.defaultValue else null) + ?: continue put(JeMethodExecutableElement(method), JeAnnotationValue(attributeValue)) } }