diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/JavadocManagerImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/JavadocManagerImpl.java index ea0d03a9b4e6..5e940c8d1b92 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/JavadocManagerImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/JavadocManagerImpl.java @@ -39,23 +39,23 @@ public class JavadocManagerImpl implements JavadocManager { public JavadocManagerImpl(Project project) { myInfos = new ArrayList(); - myInfos.add(new SimpleDocTagInfo("author", PsiClass.class, PsiPackage.class, LanguageLevel.JDK_1_3)); - myInfos.add(new SimpleDocTagInfo("deprecated", PsiElement.class, false, LanguageLevel.JDK_1_3)); - myInfos.add(new SimpleDocTagInfo("serialData", PsiMethod.class, false, LanguageLevel.JDK_1_3)); - myInfos.add(new SimpleDocTagInfo("serialField", PsiField.class, false, LanguageLevel.JDK_1_3)); - myInfos.add(new SimpleDocTagInfo("since", PsiElement.class, PsiPackage.class, LanguageLevel.JDK_1_3)); - myInfos.add(new SimpleDocTagInfo("version", PsiClass.class, PsiPackage.class, LanguageLevel.JDK_1_3)); - myInfos.add(new SimpleDocTagInfo("apiNote", PsiElement.class, false, LanguageLevel.JDK_1_8)); - myInfos.add(new SimpleDocTagInfo("implNote", PsiElement.class, false, LanguageLevel.JDK_1_8)); - myInfos.add(new SimpleDocTagInfo("implSpec", PsiElement.class, false, LanguageLevel.JDK_1_8)); + myInfos.add(new SimpleDocTagInfo("author", LanguageLevel.JDK_1_3, false, PsiClass.class, PsiPackage.class)); + myInfos.add(new SimpleDocTagInfo("deprecated", LanguageLevel.JDK_1_3, false, PsiElement.class)); + myInfos.add(new SimpleDocTagInfo("serialData", LanguageLevel.JDK_1_3, false, PsiMethod.class)); + myInfos.add(new SimpleDocTagInfo("serialField", LanguageLevel.JDK_1_3, false, PsiField.class)); + myInfos.add(new SimpleDocTagInfo("since", LanguageLevel.JDK_1_3, false, PsiElement.class, PsiPackage.class)); + myInfos.add(new SimpleDocTagInfo("version", LanguageLevel.JDK_1_3, false, PsiClass.class, PsiPackage.class)); + myInfos.add(new SimpleDocTagInfo("apiNote", LanguageLevel.JDK_1_8, false, PsiElement.class)); + myInfos.add(new SimpleDocTagInfo("implNote", LanguageLevel.JDK_1_8, false, PsiElement.class)); + myInfos.add(new SimpleDocTagInfo("implSpec", LanguageLevel.JDK_1_8, false, PsiElement.class)); - myInfos.add(new SimpleDocTagInfo("docRoot", PsiElement.class, true, LanguageLevel.JDK_1_3)); - myInfos.add(new SimpleDocTagInfo("inheritDoc", PsiElement.class, true, LanguageLevel.JDK_1_4)); - myInfos.add(new SimpleDocTagInfo("literal", PsiElement.class, true, LanguageLevel.JDK_1_5)); - myInfos.add(new SimpleDocTagInfo("code", PsiElement.class, true, LanguageLevel.JDK_1_5)); + myInfos.add(new SimpleDocTagInfo("docRoot", LanguageLevel.JDK_1_3, true, PsiElement.class)); + myInfos.add(new SimpleDocTagInfo("inheritDoc", LanguageLevel.JDK_1_4, true, PsiElement.class)); + myInfos.add(new SimpleDocTagInfo("literal", LanguageLevel.JDK_1_5, true, PsiElement.class)); + myInfos.add(new SimpleDocTagInfo("code", LanguageLevel.JDK_1_5, true, PsiElement.class)); //Not a standard tag, but added by IDEA for inspection suppression - myInfos.add(new SimpleDocTagInfo(SuppressionUtilCore.SUPPRESS_INSPECTIONS_TAG_NAME, PsiElement.class, false, LanguageLevel.JDK_1_3)); + myInfos.add(new SimpleDocTagInfo(SuppressionUtilCore.SUPPRESS_INSPECTIONS_TAG_NAME, LanguageLevel.JDK_1_3, false, PsiElement.class)); myInfos.add(new ParamDocTagInfo()); myInfos.add(new ReturnDocTagInfo()); diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/SimpleDocTagInfo.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/SimpleDocTagInfo.java index 78eb239b42c8..56f32110020a 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/SimpleDocTagInfo.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/javadoc/SimpleDocTagInfo.java @@ -21,34 +21,24 @@ import com.intellij.psi.PsiReference; import com.intellij.psi.javadoc.JavadocTagInfo; import com.intellij.psi.javadoc.PsiDocTagValue; import com.intellij.psi.util.PsiUtil; -import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; /** * @author mike */ class SimpleDocTagInfo implements JavadocTagInfo { private final String myName; - private final Class myContext; - private final Class myAdditionalContext; + private final Class[] myContexts; private final boolean myInline; private final LanguageLevel myLanguageLevel; - public SimpleDocTagInfo(@NonNls String name, Class context, boolean isInline, LanguageLevel level) { + SimpleDocTagInfo(@NotNull String name, @NotNull LanguageLevel level, boolean isInline, @NotNull Class... contexts) { myName = name; - myContext = context; - myAdditionalContext = null; + myContexts = contexts; myInline = isInline; myLanguageLevel = level; } - public SimpleDocTagInfo(@NonNls String name, Class context, Class additionalContext, LanguageLevel level) { - myName = name; - myContext = context; - myAdditionalContext = additionalContext; - myInline = false; - myLanguageLevel = level; - } - @Override public String getName() { return myName; @@ -64,8 +54,10 @@ class SimpleDocTagInfo implements JavadocTagInfo { if (element != null && PsiUtil.getLanguageLevel(element).compareTo(myLanguageLevel) < 0) { return false; } - - return myContext.isInstance(element) || (myAdditionalContext != null && myAdditionalContext.isInstance(element)); + for (Class context : myContexts) { + if (context.isInstance(element)) return true; + } + return false; } @Override