1 // Copyright 2000-2019 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.
2 package com.intellij.psi;
4 import com.intellij.lang.jvm.JvmModifier;
5 import com.intellij.lang.jvm.JvmModifiersOwner;
6 import org.jetbrains.annotations.NonNls;
7 import org.jetbrains.annotations.NotNull;
8 import org.jetbrains.annotations.Nullable;
11 * Not all PsiModifierListOwner inheritors are JvmModifiersOwners, e.g. {@link PsiLocalVariable} or {@link PsiRequiresStatement}.
12 * This is a bridge interface between them.
14 * Known PsiModifierListOwners which are also JvmModifiersOwners:
15 * {@link PsiJvmMember} inheritors, {@link PsiParameter} and {@link PsiPackage}.
17 public interface PsiJvmModifiersOwner extends PsiModifierListOwner, JvmModifiersOwner {
21 default PsiAnnotation[] getAnnotations() {
22 return PsiModifierListOwner.super.getAnnotations();
27 default PsiAnnotation getAnnotation(@NotNull @NonNls String fqn) {
28 return PsiModifierListOwner.super.getAnnotation(fqn);
32 default boolean hasAnnotation(@NotNull @NonNls String fqn) {
33 return PsiModifierListOwner.super.hasAnnotation(fqn);
37 default boolean hasModifier(@NotNull JvmModifier modifier) {
38 return PsiModifierListOwner.super.hasModifier(modifier);
43 default PsiElement getSourceElement() {