summaryrefslogtreecommitdiff
path: root/xml/xml-psi-api/src/com/intellij/codeInspection/XmlSuppressableInspectionTool.java
diff options
context:
space:
mode:
Diffstat (limited to 'xml/xml-psi-api/src/com/intellij/codeInspection/XmlSuppressableInspectionTool.java')
-rw-r--r--xml/xml-psi-api/src/com/intellij/codeInspection/XmlSuppressableInspectionTool.java87
1 files changed, 47 insertions, 40 deletions
diff --git a/xml/xml-psi-api/src/com/intellij/codeInspection/XmlSuppressableInspectionTool.java b/xml/xml-psi-api/src/com/intellij/codeInspection/XmlSuppressableInspectionTool.java
index 5292a1ac6af1..a46cd41085fa 100644
--- a/xml/xml-psi-api/src/com/intellij/codeInspection/XmlSuppressableInspectionTool.java
+++ b/xml/xml-psi-api/src/com/intellij/codeInspection/XmlSuppressableInspectionTool.java
@@ -16,6 +16,7 @@
package com.intellij.codeInspection;
+import com.intellij.codeInsight.daemon.HighlightDisplayKey;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiTreeUtil;
@@ -23,39 +24,31 @@ import com.intellij.psi.xml.XmlFile;
import com.intellij.psi.xml.XmlTag;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
public abstract class XmlSuppressableInspectionTool extends LocalInspectionTool implements BatchSuppressableTool {
@NonNls static final String ALL = "ALL";
- @NotNull
- @Override
- public SuppressQuickFix[] getBatchSuppressActions(@Nullable PsiElement element) {
- return new SuppressQuickFix[]{new SuppressTag(), new SuppressForFile(getID()), new SuppressAllForFile()};
+ public static SuppressQuickFix[] getSuppressFixes(final String shortName) {
+ return getSuppressFixes(shortName, new DefaultXmlSuppressionProvider());
}
- @Override
- public boolean isSuppressedFor(@NotNull final PsiElement element) {
- return XmlSuppressionProvider.isSuppressed(element, getID());
+ public static SuppressQuickFix[] getSuppressFixes(final String shortName, XmlSuppressionProvider provider) {
+ final String id = HighlightDisplayKey.find(shortName).getID();
+ return new SuppressQuickFix[]{new SuppressTagStatic(id, provider), new SuppressForFile(id, provider), new SuppressAllForFile(provider)};
}
- public class SuppressTag extends SuppressTagStatic {
- public SuppressTag() {
- super(getID());
- }
- }
+ public static abstract class XmlSuppressFix implements SuppressQuickFix {
- public static class SuppressTagStatic implements SuppressQuickFix {
- private final String id;
+ protected final String myId;
+ protected final XmlSuppressionProvider myProvider;
- public SuppressTagStatic(@NotNull String id) {
- this.id = id;
+ protected XmlSuppressFix(String inspectionId, XmlSuppressionProvider suppressionProvider) {
+ myId = inspectionId;
+ myProvider = suppressionProvider;
}
- @NotNull
- @Override
- public String getName() {
- return InspectionsBundle.message("xml.suppressable.for.tag.title");
+ protected XmlSuppressFix(String id) {
+ this(id, new DefaultXmlSuppressionProvider());
}
@Override
@@ -64,52 +57,66 @@ public abstract class XmlSuppressableInspectionTool extends LocalInspectionTool
}
@Override
- public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) {
- PsiElement element = descriptor.getPsiElement();
- if (PsiTreeUtil.getParentOfType(element, XmlTag.class) == null) return;
- XmlSuppressionProvider.getProvider(element.getContainingFile()).suppressForTag(element, id);
- }
-
- @Override
@NotNull
public String getFamilyName() {
return getName();
}
}
- public static class SuppressForFile implements SuppressQuickFix {
- private final String myInspectionId;
+ public static class SuppressTagStatic extends XmlSuppressFix {
- public SuppressForFile(@NotNull String inspectionId) {
- myInspectionId = inspectionId;
+ public SuppressTagStatic(String inspectionId, XmlSuppressionProvider suppressionProvider) {
+ super(inspectionId, suppressionProvider);
+ }
+
+ public SuppressTagStatic(String id) {
+ super(id);
}
@NotNull
@Override
public String getName() {
- return InspectionsBundle.message("xml.suppressable.for.file.title");
+ return InspectionsBundle.message("xml.suppressable.for.tag.title");
}
@Override
public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) {
PsiElement element = descriptor.getPsiElement();
- if (element == null || !element.isValid() || !(element.getContainingFile() instanceof XmlFile)) return;
- XmlSuppressionProvider.getProvider(element.getContainingFile()).suppressForFile(element, myInspectionId);
+ if (PsiTreeUtil.getParentOfType(element, XmlTag.class) == null) return;
+ myProvider.suppressForTag(element, myId);
+ }
+
+ }
+
+ public static class SuppressForFile extends XmlSuppressFix {
+
+ public SuppressForFile(String inspectionId, XmlSuppressionProvider suppressionProvider) {
+ super(inspectionId, suppressionProvider);
+ }
+
+ public SuppressForFile(String id) {
+ super(id);
}
+ @NotNull
@Override
- public boolean isAvailable(@NotNull Project project, @NotNull PsiElement context) {
- return context.isValid();
+ public String getName() {
+ return InspectionsBundle.message("xml.suppressable.for.file.title");
}
@Override
- @NotNull
- public String getFamilyName() {
- return getName();
+ public void applyFix(@NotNull Project project, @NotNull ProblemDescriptor descriptor) {
+ PsiElement element = descriptor.getPsiElement();
+ if (element == null || !element.isValid() || !(element.getContainingFile() instanceof XmlFile)) return;
+ myProvider.suppressForFile(element, myId);
}
}
public static class SuppressAllForFile extends SuppressForFile {
+ public SuppressAllForFile(XmlSuppressionProvider provider) {
+ super(ALL, provider);
+ }
+
public SuppressAllForFile() {
super(ALL);
}