mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[groovy] booleanValue() and stringValue() for annotation member value
This commit is contained in:
+6
@@ -18,6 +18,7 @@ package org.jetbrains.plugins.groovy.lang.psi.impl
|
||||
import com.intellij.codeInsight.AnnotationUtil
|
||||
import com.intellij.psi.PsiAnnotation
|
||||
import com.intellij.psi.PsiAnnotationMemberValue
|
||||
import com.intellij.psi.PsiLiteral
|
||||
import com.intellij.psi.PsiNameValuePair
|
||||
|
||||
fun PsiAnnotation.findDeclaredDetachedValue(attributeName: String?): PsiAnnotationMemberValue? {
|
||||
@@ -28,3 +29,8 @@ fun PsiAnnotation.findDeclaredDetachedValue(attributeName: String?): PsiAnnotati
|
||||
else -> styleAttribute.value
|
||||
}
|
||||
}
|
||||
|
||||
fun PsiAnnotationMemberValue?.booleanValue() = (this as? PsiLiteral)?.value as? Boolean
|
||||
|
||||
fun PsiAnnotationMemberValue?.stringValue() = (this as? PsiLiteral)?.value as? String
|
||||
|
||||
|
||||
+2
-2
@@ -20,9 +20,9 @@ import com.intellij.psi.PsiClassType
|
||||
import com.intellij.psi.PsiModifier
|
||||
import com.intellij.psi.PsiType
|
||||
import org.jetbrains.plugins.groovy.lang.psi.api.auxiliary.modifiers.GrModifierFlags
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.GrAnnotationUtil
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.PsiImplUtil
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.findDeclaredDetachedValue
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.stringValue
|
||||
import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrMethodWrapper
|
||||
import org.jetbrains.plugins.groovy.transformations.AstTransformationSupport
|
||||
import org.jetbrains.plugins.groovy.transformations.TransformationContext
|
||||
@@ -35,7 +35,7 @@ class ListenerListTransformationSupport : AstTransformationSupport {
|
||||
val annotation = PsiImplUtil.getAnnotation(field, listenerListFqn) ?: continue
|
||||
val listenerType = field.getListenerType() as? PsiClassType ?: continue
|
||||
val listenerClass = listenerType.resolve() ?: continue
|
||||
val declaredName = GrAnnotationUtil.getString(annotation.findDeclaredDetachedValue("name"))
|
||||
val declaredName = annotation.findDeclaredDetachedValue("name").stringValue()
|
||||
val name = StringUtil.nullize(declaredName) ?: listenerClass.name ?: continue
|
||||
context += context.memberBuilder.method("add${name.capitalize()}") {
|
||||
addModifier(GrModifierFlags.PUBLIC_MASK)
|
||||
|
||||
Reference in New Issue
Block a user