From b6dbb1a1b2e4531d55a4880f0d3f545e84dec0df Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Wed, 14 Feb 2018 17:01:26 +0300 Subject: [PATCH] extract getStringAttributeValue(PsiAnnotationMemberValue) --- .../com/intellij/codeInsight/AnnotationUtil.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/java/java-psi-api/src/com/intellij/codeInsight/AnnotationUtil.java b/java/java-psi-api/src/com/intellij/codeInsight/AnnotationUtil.java index e59cbd18f79c..0414a666eb63 100644 --- a/java/java-psi-api/src/com/intellij/codeInsight/AnnotationUtil.java +++ b/java/java-psi-api/src/com/intellij/codeInsight/AnnotationUtil.java @@ -1,6 +1,4 @@ -/* - * Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. - */ +// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.codeInsight; import com.intellij.openapi.project.Project; @@ -480,9 +478,9 @@ public class AnnotationUtil { @Nullable public static String getStringAttributeValue(@NotNull PsiAnnotation anno, @Nullable final String attributeName) { PsiAnnotationMemberValue attrValue = anno.findAttributeValue(attributeName); - Object constValue = JavaPsiFacade.getInstance(anno.getProject()).getConstantEvaluationHelper().computeConstantExpression(attrValue); - return constValue instanceof String ? (String)constValue : null; + return attrValue == null ? null : getStringAttributeValue(attrValue); } + @Nullable public static Boolean getBooleanAttributeValue(@NotNull PsiAnnotation anno, @Nullable final String attributeName) { PsiAnnotationMemberValue attrValue = anno.findAttributeValue(attributeName); @@ -500,7 +498,13 @@ public class AnnotationUtil { @Nullable public static String getDeclaredStringAttributeValue(@NotNull PsiAnnotation anno, @Nullable final String attributeName) { PsiAnnotationMemberValue attrValue = anno.findDeclaredAttributeValue(attributeName); - Object constValue = JavaPsiFacade.getInstance(anno.getProject()).getConstantEvaluationHelper().computeConstantExpression(attrValue); + return attrValue == null ? null : getStringAttributeValue(attrValue); + } + + @Nullable + public static String getStringAttributeValue(@NotNull PsiAnnotationMemberValue attrValue) { + PsiConstantEvaluationHelper evaluationHelper = JavaPsiFacade.getInstance(attrValue.getProject()).getConstantEvaluationHelper(); + Object constValue = evaluationHelper.computeConstantExpression(attrValue); return constValue instanceof String ? (String)constValue : null; }