diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties
index eeb44d771326..80c3fe23ffb8 100644
--- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties
+++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties
@@ -662,7 +662,6 @@ thrown.exceptions.per.method.display.name=Method with too many exceptions declar
public.static.array.field.display.name='public static' array field
await.not.in.loop.display.name='await()' not in loop
method.names.differ.only.by.case.display.name=Method names differing only by case
-method.names.differ.only.by.case.ignore.override.option=Ignore if method is override of super method
unsecure.random.number.generation.display.name=Insecure random number generation
parameters.per.method.display.name=Method with too many parameters
parameters.per.constructor.display.name=Constructor with too many parameters
@@ -1791,7 +1790,7 @@ ignore.single.field.static.imports.option=Ignore single &field static imports
ignore.single.method.static.imports.option=Ignore single &method static imports
ignore.methods.with.boolean.return.type.option=Ignore methods with &Boolean return type
ignore.boolean.methods.in.an.interface.option=Ignore boolean methods in an @&interface
-ignore.methods.overriding.super.method=Ignore methods &overriding a super method
+ignore.methods.overriding.super.method=Ignore methods &overriding/implementing a super method
ignored.io.resource.types=Ignored I/O resource types
choose.io.resource.type.to.ignore=Choose I/O resource type to ignore
ignore.accesses.from.the.same.class=Ignore accesses from the same class
@@ -1900,7 +1899,6 @@ arrays.hash.code.quickfix=Replace with 'Arrays.hashCode()'
method.can.be.variable.arity.method.display.name=Method can be variable arity method
method.can.be.variable.arity.method.problem.descriptor=#ref() can be converted to variable arity method #loc
method.can.be.variable.arity.method.ignore.byte.short.option=Ignore methods with a last parameter of type byte[] or short[]
-method.can.be.variable.arity.method.ignore.overriding.methods=Ignore methods overriding a super method
convert.to.variable.arity.method.quickfix=Convert to variable arity method
mismatched.string.builder.query.update.display.name=Mismatched query and update of StringBuilder
mismatched.string.builder.updated.problem.descriptor=Contents of {0} #ref are updated, but never queried #loc
diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classmetrics/MethodCountInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classmetrics/MethodCountInspection.java
index 53197503432e..9de4ae97e10c 100644
--- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classmetrics/MethodCountInspection.java
+++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classmetrics/MethodCountInspection.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2010 Dave Griffith, Bas Leijdekkers
+ * Copyright 2003-2013 Dave Griffith, Bas Leijdekkers
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,6 +23,7 @@ import com.intellij.util.ui.UIUtil;
import com.siyeh.InspectionGadgetsBundle;
import com.siyeh.ig.BaseInspection;
import com.siyeh.ig.BaseInspectionVisitor;
+import com.siyeh.ig.psiutils.MethodUtils;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
@@ -38,6 +39,9 @@ public class MethodCountInspection extends BaseInspection {
@SuppressWarnings({"PublicField"})
public boolean ignoreGettersAndSetters = false;
+ @SuppressWarnings("PublicField")
+ public boolean ignoreOverridingMethods = false;
+
@Override
@NotNull
public String getID() {
@@ -53,8 +57,7 @@ public class MethodCountInspection extends BaseInspection {
@Override
public JComponent createOptionsPanel() {
final JComponent panel = new JPanel(new GridBagLayout());
- final Component label = new JLabel(
- InspectionGadgetsBundle.message("method.count.limit.option"));
+ final Component label = new JLabel(InspectionGadgetsBundle.message("method.count.limit.option"));
final JFormattedTextField valueField = prepareNumberEditor("m_limit");
final GridBagConstraints constraints = new GridBagConstraints();
@@ -68,18 +71,23 @@ public class MethodCountInspection extends BaseInspection {
constraints.insets.right = 0;
panel.add(valueField, constraints);
- final CheckBox gettersSettersCheckBox = new CheckBox(
- InspectionGadgetsBundle.message(
- "method.count.ignore.getters.setters.option"),
+ final CheckBox gettersSettersCheckBox = new CheckBox(InspectionGadgetsBundle.message("method.count.ignore.getters.setters.option"),
this, "ignoreGettersAndSetters");
constraints.gridx = 0;
constraints.gridy = 1;
- constraints.weighty = 1.0;
constraints.gridwidth = 2;
- constraints.anchor = GridBagConstraints.NORTHWEST;
+ constraints.anchor = GridBagConstraints.WEST;
panel.add(gettersSettersCheckBox, constraints);
+ final CheckBox overridingMethodCheckBox =
+ new CheckBox(InspectionGadgetsBundle.message("ignore.methods.overriding.super.method"), this, "ignoreOverridingMethods");
+
+ constraints.weighty = 1.0;
+ constraints.gridy = 2;
+ constraints.anchor = GridBagConstraints.NORTHWEST;
+ panel.add(overridingMethodCheckBox, constraints);
+
return panel;
}
@@ -88,8 +96,7 @@ public class MethodCountInspection extends BaseInspection {
@NotNull
public String buildErrorString(Object... infos) {
final Integer count = (Integer)infos[0];
- return InspectionGadgetsBundle.message(
- "too.many.methods.problem.descriptor", count);
+ return InspectionGadgetsBundle.message("too.many.methods.problem.descriptor", count);
}
@Override
@@ -101,7 +108,6 @@ public class MethodCountInspection extends BaseInspection {
@Override
public void visitClass(@NotNull PsiClass aClass) {
- // note: no call to super
final int methodCount = calculateTotalMethodCount(aClass);
if (methodCount <= m_limit) {
return;
@@ -117,8 +123,12 @@ public class MethodCountInspection extends BaseInspection {
continue;
}
if (ignoreGettersAndSetters) {
- if (PropertyUtil.isSimpleGetter(method) ||
- PropertyUtil.isSimpleSetter(method)) {
+ if (PropertyUtil.isSimpleGetter(method) || PropertyUtil.isSimpleSetter(method)) {
+ continue;
+ }
+ }
+ if (ignoreOverridingMethods) {
+ if (MethodUtils.hasSuper(method)) {
continue;
}
}
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/migration/MethodCanBeVariableArityMethodInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/migration/MethodCanBeVariableArityMethodInspection.java
index 175b0efd09fa..ef1591864c0e 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/migration/MethodCanBeVariableArityMethodInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/migration/MethodCanBeVariableArityMethodInspection.java
@@ -19,13 +19,13 @@ import com.intellij.codeInspection.ProblemDescriptor;
import com.intellij.codeInspection.ui.MultipleCheckboxOptionsPanel;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
-import com.intellij.psi.search.searches.SuperMethodsSearch;
import com.intellij.psi.util.PsiUtil;
import com.siyeh.InspectionGadgetsBundle;
import com.siyeh.ig.BaseInspection;
import com.siyeh.ig.BaseInspectionVisitor;
import com.siyeh.ig.InspectionGadgetsFix;
import com.siyeh.ig.psiutils.LibraryUtil;
+import com.siyeh.ig.psiutils.MethodUtils;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;
@@ -57,7 +57,7 @@ public class MethodCanBeVariableArityMethodInspection extends BaseInspection {
final MultipleCheckboxOptionsPanel panel = new MultipleCheckboxOptionsPanel(this);
panel.addCheckbox(InspectionGadgetsBundle.message("method.can.be.variable.arity.method.ignore.byte.short.option"),
"ignoreByteAndShortArrayParameters");
- panel.addCheckbox(InspectionGadgetsBundle.message("method.can.be.variable.arity.method.ignore.overriding.methods"),
+ panel.addCheckbox(InspectionGadgetsBundle.message("ignore.methods.overriding.super.method"),
"ignoreOverridingMethods");
return panel;
}
@@ -149,7 +149,7 @@ public class MethodCanBeVariableArityMethodInspection extends BaseInspection {
if (LibraryUtil.isOverrideOfLibraryMethod(method)) {
return;
}
- if (ignoreOverridingMethods && SuperMethodsSearch.search(method, null, true, false).findFirst() != null) {
+ if (ignoreOverridingMethods && MethodUtils.hasSuper(method)) {
return;
}
registerMethodError(method);
diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/naming/MethodNamesDifferOnlyByCaseInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/naming/MethodNamesDifferOnlyByCaseInspection.java
index b570d2149b11..2739510e3af1 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/naming/MethodNamesDifferOnlyByCaseInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/naming/MethodNamesDifferOnlyByCaseInspection.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2012 Dave Griffith, Bas Leijdekkers
+ * Copyright 2003-2013 Dave Griffith, Bas Leijdekkers
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -54,7 +54,7 @@ public class MethodNamesDifferOnlyByCaseInspection extends BaseInspection {
@Override
public JComponent createOptionsPanel() {
- return new SingleCheckboxOptionsPanel(InspectionGadgetsBundle.message("method.names.differ.only.by.case.ignore.override.option"),
+ return new SingleCheckboxOptionsPanel(InspectionGadgetsBundle.message("ignore.methods.overriding.super.method"),
this, "ignoreIfMethodIsOverride");
}
diff --git a/plugins/InspectionGadgets/src/inspectionDescriptions/MethodCanBeVariableArityMethod.html b/plugins/InspectionGadgets/src/inspectionDescriptions/MethodCanBeVariableArityMethod.html
index 1c5b2557364c..0c97059e474b 100644
--- a/plugins/InspectionGadgets/src/inspectionDescriptions/MethodCanBeVariableArityMethod.html
+++ b/plugins/InspectionGadgets/src/inspectionDescriptions/MethodCanBeVariableArityMethod.html
@@ -9,7 +9,7 @@ language level of 5.0 or higher.
Use the first checkbox below to not offer to convert byte[] or short[] parameters to vararg.
-Use the second checkbox below to ignore methods overriding a method in a super class. +Use the second checkbox below to ignore methods overriding or implementing a method from a superclass.
New in 10.5