From 08ba033868c6d36395bd3d102b210469cd60dd70 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Thu, 10 Oct 2013 17:21:09 +0400 Subject: [PATCH] moved to analysis --- .../ThrowsRuntimeExceptionInspectionBase.java | 66 +++++++++++++++++++ .../ThrowsRuntimeExceptionInspection.java | 45 +------------ 2 files changed, 67 insertions(+), 44 deletions(-) create mode 100644 plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/errorhandling/ThrowsRuntimeExceptionInspectionBase.java diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/errorhandling/ThrowsRuntimeExceptionInspectionBase.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/errorhandling/ThrowsRuntimeExceptionInspectionBase.java new file mode 100644 index 000000000000..9ee31c3f8799 --- /dev/null +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/errorhandling/ThrowsRuntimeExceptionInspectionBase.java @@ -0,0 +1,66 @@ +/* + * 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.siyeh.ig.errorhandling; + +import com.intellij.psi.*; +import com.intellij.psi.util.InheritanceUtil; +import com.siyeh.InspectionGadgetsBundle; +import com.siyeh.ig.BaseInspection; +import com.siyeh.ig.BaseInspectionVisitor; +import org.jetbrains.annotations.Nls; +import org.jetbrains.annotations.NotNull; + +public class ThrowsRuntimeExceptionInspectionBase extends BaseInspection { + @Nls + @NotNull + @Override + public String getDisplayName() { + return InspectionGadgetsBundle.message("throws.runtime.exception.display.name"); + } + + @NotNull + @Override + protected String buildErrorString(Object... infos) { + return InspectionGadgetsBundle.message("throws.runtime.exception.problem.descriptor"); + } + + @Override + public BaseInspectionVisitor buildVisitor() { + return new ThrowsRuntimeExceptionVisitor(); + } + + private static class ThrowsRuntimeExceptionVisitor extends BaseInspectionVisitor { + + @Override + public void visitMethod(PsiMethod method) { + super.visitMethod(method); + final PsiReferenceList throwsList = method.getThrowsList(); + final PsiJavaCodeReferenceElement[] referenceElements = throwsList.getReferenceElements(); + for (PsiJavaCodeReferenceElement referenceElement : referenceElements) { + final PsiElement target = referenceElement.resolve(); + if (!(target instanceof PsiClass)) { + continue; + } + final PsiClass aClass = (PsiClass)target; + if (!InheritanceUtil.isInheritor(aClass, "java.lang.RuntimeException")) { + continue; + } + final String className = aClass.getName(); + registerError(referenceElement, className, referenceElement); + } + } + } +} diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/errorhandling/ThrowsRuntimeExceptionInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/errorhandling/ThrowsRuntimeExceptionInspection.java index c35f3ee88dc9..555b5a1fe3bb 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/errorhandling/ThrowsRuntimeExceptionInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/errorhandling/ThrowsRuntimeExceptionInspection.java @@ -25,28 +25,12 @@ import com.intellij.psi.*; import com.intellij.psi.javadoc.PsiDocComment; import com.intellij.psi.javadoc.PsiDocTag; import com.intellij.psi.javadoc.PsiDocTagValue; -import com.intellij.psi.util.InheritanceUtil; import com.intellij.util.IncorrectOperationException; import com.siyeh.InspectionGadgetsBundle; -import com.siyeh.ig.BaseInspection; -import com.siyeh.ig.BaseInspectionVisitor; import com.siyeh.ig.InspectionGadgetsFix; -import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; -public class ThrowsRuntimeExceptionInspection extends BaseInspection { - @Nls - @NotNull - @Override - public String getDisplayName() { - return InspectionGadgetsBundle.message("throws.runtime.exception.display.name"); - } - - @NotNull - @Override - protected String buildErrorString(Object... infos) { - return InspectionGadgetsBundle.message("throws.runtime.exception.problem.descriptor"); - } +public class ThrowsRuntimeExceptionInspection extends ThrowsRuntimeExceptionInspectionBase { @NotNull @Override @@ -183,31 +167,4 @@ public class ThrowsRuntimeExceptionInspection extends BaseInspection { descriptor.getPsiElement().delete(); } } - - @Override - public BaseInspectionVisitor buildVisitor() { - return new ThrowsRuntimeExceptionVisitor(); - } - - private static class ThrowsRuntimeExceptionVisitor extends BaseInspectionVisitor { - - @Override - public void visitMethod(PsiMethod method) { - super.visitMethod(method); - final PsiReferenceList throwsList = method.getThrowsList(); - final PsiJavaCodeReferenceElement[] referenceElements = throwsList.getReferenceElements(); - for (PsiJavaCodeReferenceElement referenceElement : referenceElements) { - final PsiElement target = referenceElement.resolve(); - if (!(target instanceof PsiClass)) { - continue; - } - final PsiClass aClass = (PsiClass)target; - if (!InheritanceUtil.isInheritor(aClass, "java.lang.RuntimeException")) { - continue; - } - final String className = aClass.getName(); - registerError(referenceElement, className, referenceElement); - } - } - } }