blob: 4eee9c29edc31959e5522c1fb558b1f3a9d856ea [file] [log] [blame]
/*
* Copyright 2000-2013 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.
*/
package com.intellij.codeInspection;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.TextRange;
import com.intellij.profile.codeInspection.InspectionProfileManager;
import com.intellij.profile.codeInspection.InspectionProjectProfileManager;
import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
public abstract class InspectionManagerBase extends InspectionManager {
private final Project myProject;
@NonNls protected String myCurrentProfileName;
public InspectionManagerBase(Project project) {
myProject = project;
}
@Override
@NotNull
public Project getProject() {
return myProject;
}
@Override
@NotNull
public CommonProblemDescriptor createProblemDescriptor(@NotNull String descriptionTemplate, QuickFix... fixes) {
return new CommonProblemDescriptorImpl(fixes, descriptionTemplate);
}
@Override
@NotNull
public ProblemDescriptor createProblemDescriptor(@NotNull PsiElement psiElement,
@NotNull String descriptionTemplate,
LocalQuickFix fix,
@NotNull ProblemHighlightType highlightType,
boolean onTheFly) {
LocalQuickFix[] quickFixes = fix != null ? new LocalQuickFix[]{fix} : null;
return createProblemDescriptor(psiElement, descriptionTemplate, onTheFly, quickFixes, highlightType);
}
@Override
@NotNull
public ProblemDescriptor createProblemDescriptor(@NotNull PsiElement psiElement,
@NotNull String descriptionTemplate,
boolean onTheFly,
LocalQuickFix[] fixes,
@NotNull ProblemHighlightType highlightType) {
return createProblemDescriptor(psiElement, descriptionTemplate, fixes, highlightType, onTheFly, false);
}
@Override
@NotNull
public ProblemDescriptor createProblemDescriptor(@NotNull PsiElement psiElement,
@NotNull String descriptionTemplate,
LocalQuickFix[] fixes,
@NotNull ProblemHighlightType highlightType,
boolean onTheFly,
boolean isAfterEndOfLine) {
return new ProblemDescriptorBase(psiElement, psiElement, descriptionTemplate, fixes, highlightType, isAfterEndOfLine, null, true, onTheFly);
}
@Override
@NotNull
public ProblemDescriptor createProblemDescriptor(@NotNull PsiElement startElement,
@NotNull PsiElement endElement,
@NotNull String descriptionTemplate,
@NotNull ProblemHighlightType highlightType,
boolean onTheFly,
LocalQuickFix... fixes) {
return new ProblemDescriptorBase(startElement, endElement, descriptionTemplate, fixes, highlightType, false, null, true, onTheFly);
}
@NotNull
@Override
public ProblemDescriptor createProblemDescriptor(@NotNull final PsiElement psiElement,
final TextRange rangeInElement,
@NotNull final String descriptionTemplate,
@NotNull final ProblemHighlightType highlightType,
boolean onTheFly,
final LocalQuickFix... fixes) {
return new ProblemDescriptorBase(psiElement, psiElement, descriptionTemplate, fixes, highlightType, false, rangeInElement, true, onTheFly);
}
@NotNull
@Override
public ProblemDescriptor createProblemDescriptor(@NotNull PsiElement psiElement,
@NotNull String descriptionTemplate,
boolean showTooltip,
@NotNull ProblemHighlightType highlightType,
boolean onTheFly,
LocalQuickFix... fixes) {
return new ProblemDescriptorBase(psiElement, psiElement, descriptionTemplate, fixes, highlightType, false, null, showTooltip, onTheFly);
}
@Override
@Deprecated
@NotNull
public ProblemDescriptor createProblemDescriptor(@NotNull PsiElement psiElement,
@NotNull String descriptionTemplate,
LocalQuickFix fix,
@NotNull ProblemHighlightType highlightType) {
LocalQuickFix[] quickFixes = fix != null ? new LocalQuickFix[]{fix} : null;
return createProblemDescriptor(psiElement, descriptionTemplate, false, quickFixes, highlightType);
}
@Override
@Deprecated
@NotNull
public ProblemDescriptor createProblemDescriptor(@NotNull PsiElement psiElement,
@NotNull String descriptionTemplate,
LocalQuickFix[] fixes,
@NotNull ProblemHighlightType highlightType) {
return createProblemDescriptor(psiElement, descriptionTemplate, fixes, highlightType, false, false);
}
@Override
@Deprecated
@NotNull
public ProblemDescriptor createProblemDescriptor(@NotNull PsiElement psiElement,
@NotNull String descriptionTemplate,
LocalQuickFix[] fixes,
@NotNull ProblemHighlightType highlightType,
boolean isAfterEndOfLine) {
return createProblemDescriptor(psiElement, descriptionTemplate, fixes, highlightType, true, isAfterEndOfLine);
}
@Override
@Deprecated
@NotNull
public ProblemDescriptor createProblemDescriptor(@NotNull PsiElement startElement,
@NotNull PsiElement endElement,
@NotNull String descriptionTemplate,
@NotNull ProblemHighlightType highlightType,
LocalQuickFix... fixes) {
return createProblemDescriptor(startElement, endElement, descriptionTemplate, highlightType, true, fixes);
}
@NotNull
@Override
@Deprecated
public ProblemDescriptor createProblemDescriptor(@NotNull final PsiElement psiElement,
final TextRange rangeInElement,
@NotNull final String descriptionTemplate,
@NotNull final ProblemHighlightType highlightType,
final LocalQuickFix... fixes) {
return createProblemDescriptor(psiElement, rangeInElement, descriptionTemplate, highlightType, true, fixes);
}
@NotNull
@Deprecated
@Override
public ProblemDescriptor createProblemDescriptor(@NotNull PsiElement psiElement,
@NotNull String descriptionTemplate,
boolean showTooltip,
@NotNull ProblemHighlightType highlightType,
LocalQuickFix... fixes) {
return createProblemDescriptor(psiElement, descriptionTemplate, showTooltip, highlightType, true, fixes);
}
public String getCurrentProfile() {
if (myCurrentProfileName == null) {
final InspectionProjectProfileManager profileManager = InspectionProjectProfileManager.getInstance(getProject());
myCurrentProfileName = profileManager.getProjectProfile();
if (myCurrentProfileName == null) {
myCurrentProfileName = InspectionProfileManager.getInstance().getRootProfile().getName();
}
}
return myCurrentProfileName;
}
}