From 5516234bd1576a9f8292ae3fe24c350cd32d1bef Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Tue, 17 Apr 2018 16:25:38 +0300 Subject: [PATCH] [jvm-lang] deprecate JvmModifiersOwner#getModifiers Also remove JvmModifier#EMPTY_ARRAY --- .../src/com/intellij/lang/jvm/JvmModifier.java | 6 ++---- .../com/intellij/lang/jvm/JvmModifiersOwner.java | 10 +++++++++- .../com/intellij/psi/PsiJvmConversionHelper.java | 15 +++------------ .../com/intellij/psi/PsiModifierListOwner.java | 6 ------ 4 files changed, 14 insertions(+), 23 deletions(-) diff --git a/java/java-psi-api/src/com/intellij/lang/jvm/JvmModifier.java b/java/java-psi-api/src/com/intellij/lang/jvm/JvmModifier.java index 4ace0b7bc078..2cd80eceab87 100644 --- a/java/java-psi-api/src/com/intellij/lang/jvm/JvmModifier.java +++ b/java/java-psi-api/src/com/intellij/lang/jvm/JvmModifier.java @@ -1,4 +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.lang.jvm; public enum JvmModifier { @@ -16,7 +16,5 @@ public enum JvmModifier { STRICTFP, TRANSIENT, VOLATILE, - TRANSITIVE; - - public static final JvmModifier[] EMPTY_ARRAY = new JvmModifier[0]; + TRANSITIVE } diff --git a/java/java-psi-api/src/com/intellij/lang/jvm/JvmModifiersOwner.java b/java/java-psi-api/src/com/intellij/lang/jvm/JvmModifiersOwner.java index b0838d08aa88..e613af82fc18 100644 --- a/java/java-psi-api/src/com/intellij/lang/jvm/JvmModifiersOwner.java +++ b/java/java-psi-api/src/com/intellij/lang/jvm/JvmModifiersOwner.java @@ -3,13 +3,21 @@ package com.intellij.lang.jvm; import org.jetbrains.annotations.NotNull; +import static com.intellij.util.containers.ContainerUtil.filter; + /** * Represents an element which has modifiers and annotations. */ public interface JvmModifiersOwner extends JvmAnnotatedElement { + /** + * @deprecated To be removed in 2018.3 + */ + @Deprecated @NotNull - JvmModifier[] getModifiers(); + default JvmModifier[] getModifiers() { + return filter(JvmModifier.values(), this::hasModifier).toArray(new JvmModifier[0]); + } /** * Checks if the element effectively has the specified modifier. diff --git a/java/java-psi-api/src/com/intellij/psi/PsiJvmConversionHelper.java b/java/java-psi-api/src/com/intellij/psi/PsiJvmConversionHelper.java index ea38ed227dc1..5a70ad0a11e8 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiJvmConversionHelper.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiJvmConversionHelper.java @@ -8,7 +8,9 @@ import com.intellij.openapi.diagnostic.Logger; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.*; +import java.util.Collections; +import java.util.EnumMap; +import java.util.Map; import static com.intellij.psi.PsiType.getJavaLangObject; import static com.intellij.psi.PsiType.getTypeByName; @@ -53,17 +55,6 @@ class PsiJvmConversionHelper { return list != null && list.hasAnnotation(fqn); } - @NotNull - static JvmModifier[] getListModifiers(@NotNull PsiModifierListOwner modifierListOwner) { - final Set result = EnumSet.noneOf(JvmModifier.class); - MODIFIERS.forEach((jvm, psi) -> { - if (modifierListOwner.hasModifierProperty(psi)) { - result.add(jvm); - } - }); - return result.toArray(JvmModifier.EMPTY_ARRAY); - } - static boolean hasListModifier(@NotNull PsiModifierListOwner modifierListOwner, @NotNull JvmModifier modifier) { return modifierListOwner.hasModifierProperty(MODIFIERS.get(modifier)); } diff --git a/java/java-psi-api/src/com/intellij/psi/PsiModifierListOwner.java b/java/java-psi-api/src/com/intellij/psi/PsiModifierListOwner.java index 19dbd9086039..aa04ccae4663 100644 --- a/java/java-psi-api/src/com/intellij/psi/PsiModifierListOwner.java +++ b/java/java-psi-api/src/com/intellij/psi/PsiModifierListOwner.java @@ -49,12 +49,6 @@ public interface PsiModifierListOwner extends PsiElement, JvmModifiersOwner { return hasListAnnotation(this, fqn); } - @NotNull - @Override - default JvmModifier[] getModifiers() { - return getListModifiers(this); - } - @Override default boolean hasModifier(@NotNull JvmModifier modifier) { return hasListModifier(this, modifier);