mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[jvm-lang] don't use Enum#valueOf for JvmModifier
This commit is contained in:
@@ -1,29 +1,16 @@
|
||||
/*
|
||||
* Copyright 2000-2017 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
// 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.
|
||||
package com.intellij.psi;
|
||||
|
||||
import com.intellij.lang.jvm.JvmClassKind;
|
||||
import com.intellij.lang.jvm.JvmModifier;
|
||||
import com.intellij.lang.jvm.types.JvmReferenceType;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.EnumSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import static com.intellij.psi.PsiType.getJavaLangObject;
|
||||
@@ -32,6 +19,21 @@ import static com.intellij.psi.PsiType.getTypeByName;
|
||||
class PsiJvmConversionHelper {
|
||||
|
||||
private static final Logger LOG = Logger.getInstance(PsiJvmConversionHelper.class);
|
||||
private static final Map<String, JvmModifier> MODIFIERS = ContainerUtil.<String, JvmModifier>immutableMapBuilder()
|
||||
.put(PsiModifier.PUBLIC, JvmModifier.PUBLIC)
|
||||
.put(PsiModifier.PROTECTED, JvmModifier.PROTECTED)
|
||||
.put(PsiModifier.PRIVATE, JvmModifier.PRIVATE)
|
||||
.put(PsiModifier.PACKAGE_LOCAL, JvmModifier.PACKAGE_LOCAL)
|
||||
.put(PsiModifier.STATIC, JvmModifier.STATIC)
|
||||
.put(PsiModifier.ABSTRACT, JvmModifier.ABSTRACT)
|
||||
.put(PsiModifier.FINAL, JvmModifier.FINAL)
|
||||
.put(PsiModifier.NATIVE, JvmModifier.NATIVE)
|
||||
.put(PsiModifier.SYNCHRONIZED, JvmModifier.SYNCHRONIZED)
|
||||
.put(PsiModifier.STRICTFP, JvmModifier.STRICTFP)
|
||||
.put(PsiModifier.TRANSIENT, JvmModifier.TRANSIENT)
|
||||
.put(PsiModifier.VOLATILE, JvmModifier.VOLATILE)
|
||||
.put(PsiModifier.TRANSITIVE, JvmModifier.TRANSITIVE)
|
||||
.build();
|
||||
|
||||
@NotNull
|
||||
static PsiAnnotation[] getListAnnotations(@NotNull PsiModifierListOwner modifierListOwner) {
|
||||
@@ -42,16 +44,11 @@ class PsiJvmConversionHelper {
|
||||
@NotNull
|
||||
static JvmModifier[] getListModifiers(@NotNull PsiModifierListOwner modifierListOwner) {
|
||||
final Set<JvmModifier> result = EnumSet.noneOf(JvmModifier.class);
|
||||
for (@NonNls String modifier : PsiModifier.MODIFIERS) {
|
||||
if (modifierListOwner.hasModifierProperty(modifier)) {
|
||||
String jvmName = modifier.toUpperCase();
|
||||
JvmModifier jvmModifier = JvmModifier.valueOf(jvmName);
|
||||
result.add(jvmModifier);
|
||||
MODIFIERS.forEach((psi, jvm) -> {
|
||||
if (modifierListOwner.hasModifierProperty(psi)) {
|
||||
result.add(jvm);
|
||||
}
|
||||
}
|
||||
if (modifierListOwner.hasModifierProperty(PsiModifier.PACKAGE_LOCAL)) {
|
||||
result.add(JvmModifier.PACKAGE_LOCAL);
|
||||
}
|
||||
});
|
||||
return result.toArray(JvmModifier.EMPTY_ARRAY);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user