InspectionDescriptionNotFoundInspection for xml-configured inspections

This commit is contained in:
Dmitry Avdeev
2012-01-19 16:56:58 +04:00
parent efae52cb6e
commit 85b72dceb4
2 changed files with 12 additions and 13 deletions
@@ -96,11 +96,11 @@ public abstract class InspectionProfileEntry {
*/
@NonNls @NotNull
public String getShortName() {
return getShortName(getClass());
return getShortName(getClass().getSimpleName());
}
public static String getShortName(Class<? extends InspectionProfileEntry> aClass) {
return StringUtil.trimEnd(aClass.getSimpleName(), "Inspection");
public static String getShortName(String className) {
return StringUtil.trimEnd(className, "Inspection");
}
/**
@@ -16,10 +16,7 @@
package org.jetbrains.idea.devkit.inspections;
import com.intellij.codeInspection.InspectionManager;
import com.intellij.codeInspection.LocalQuickFix;
import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.codeInspection.ProblemHighlightType;
import com.intellij.codeInspection.*;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtil;
import com.intellij.openapi.project.Project;
@@ -42,7 +39,7 @@ import java.util.List;
* @author Konstantin Bulenkov
*/
public class InspectionDescriptionNotFoundInspection extends DevKitInspectionBase{
@NonNls private static final String INSPECTION_PROFILE_ENTRY = "com.intellij.codeInspection.InspectionProfileEntry";
@NonNls static final String INSPECTION_PROFILE_ENTRY = InspectionProfileEntry.class.getName();
@NonNls private static final String INSPECTION_DESCRIPTIONS = "inspectionDescriptions";
@Override
@@ -57,9 +54,11 @@ public class InspectionDescriptionNotFoundInspection extends DevKitInspectionBas
if (base == null || ! aClass.isInheritor(base, true) || isPathMethodsAreOverridden(aClass)) return null;
final PsiMethod method = findNearestMethod("getShortName", aClass);
if (method == null) return null;
final String filename = PsiUtil.getReturnedLiteral(method, aClass);
PsiMethod method = findNearestMethod("getShortName", aClass);
if (method != null && method.getContainingClass().getQualifiedName().equals(INSPECTION_PROFILE_ENTRY)) {
method = null;
}
final String filename = method == null ? InspectionProfileEntry.getShortName(aClass.getName()) : PsiUtil.getReturnedLiteral(method, aClass);
if (filename == null) return null;
@@ -83,8 +82,8 @@ public class InspectionDescriptionNotFoundInspection extends DevKitInspectionBas
}
@Nullable
private static PsiElement getProblemElement(PsiClass aClass, PsiMethod method) {
if (method.getContainingClass() == aClass) {
private static PsiElement getProblemElement(PsiClass aClass, @Nullable PsiMethod method) {
if (method != null && method.getContainingClass() == aClass) {
return PsiUtil.getReturnedExpression(method);
} else {
return aClass.getNameIdentifier();