diff options
Diffstat (limited to 'plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classmetrics/MethodCountInspection.java')
-rw-r--r-- | plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classmetrics/MethodCountInspection.java | 36 |
1 files changed, 23 insertions, 13 deletions
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; } } |