diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/j2me/FieldRepeatedlyAccessedInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/j2me/FieldRepeatedlyAccessedInspection.java index 571365d425d3..fc1b75e9a383 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/j2me/FieldRepeatedlyAccessedInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/j2me/FieldRepeatedlyAccessedInspection.java @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Dave Griffith, Bas Leijdekkers + * Copyright 2003-2010 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. @@ -15,34 +15,36 @@ */ package com.siyeh.ig.j2me; +import com.intellij.codeInspection.ui.SingleCheckboxOptionsPanel; import com.intellij.psi.*; import com.siyeh.InspectionGadgetsBundle; import com.siyeh.ig.BaseInspection; import com.siyeh.ig.BaseInspectionVisitor; -import com.siyeh.ig.performance.VariableAccessVisitor; import com.siyeh.ig.psiutils.ExpressionUtils; -import com.intellij.codeInspection.ui.SingleCheckboxOptionsPanel; import org.jetbrains.annotations.NotNull; -import javax.swing.*; +import javax.swing.JComponent; import java.util.Set; public class FieldRepeatedlyAccessedInspection extends BaseInspection { - + /** @noinspection PublicField*/ public boolean m_ignoreFinalFields = false; + @Override @NotNull public String getID(){ return "FieldRepeatedlyAccessedInMethod"; } + @Override @NotNull public String getDisplayName() { return InspectionGadgetsBundle.message( "field.repeatedly.accessed.in.method.display.name"); } + @Override @NotNull public String buildErrorString(Object... arg) { final String fieldName = ((PsiNamedElement) arg[0]).getName(); @@ -51,12 +53,14 @@ public class FieldRepeatedlyAccessedInspection extends BaseInspection { fieldName); } + @Override public JComponent createOptionsPanel() { return new SingleCheckboxOptionsPanel(InspectionGadgetsBundle.message( "field.repeatedly.accessed.in.method.ignore.option"), this, "m_ignoreFinalFields"); } + @Override public BaseInspectionVisitor buildVisitor() { return new FieldRepeatedlyAccessedVisitor(); } @@ -72,8 +76,11 @@ public class FieldRepeatedlyAccessedInspection extends BaseInspection { method.accept(visitor); final Set fields = visitor.getOveraccessedFields(); for(PsiField field : fields){ - if(ExpressionUtils.isConstant(field) || m_ignoreFinalFields && - field.hasModifierProperty(PsiModifier.FINAL)){ + if(ExpressionUtils.isConstant(field)){ + continue; + } + if(m_ignoreFinalFields && + field.hasModifierProperty(PsiModifier.FINAL)){ continue; } registerError(nameIdentifier, field); diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/performance/VariableAccessVisitor.java b/plugins/InspectionGadgets/src/com/siyeh/ig/j2me/VariableAccessVisitor.java similarity index 87% rename from plugins/InspectionGadgets/src/com/siyeh/ig/performance/VariableAccessVisitor.java rename to plugins/InspectionGadgets/src/com/siyeh/ig/j2me/VariableAccessVisitor.java index 79646864e4de..cde48d586c32 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/performance/VariableAccessVisitor.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/j2me/VariableAccessVisitor.java @@ -1,5 +1,5 @@ /* - * Copyright 2003-2005 Dave Griffith + * Copyright 2003-2010 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. @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.siyeh.ig.performance; +package com.siyeh.ig.j2me; import com.intellij.psi.*; import com.siyeh.ig.psiutils.ControlFlowUtils; @@ -21,17 +21,17 @@ import org.jetbrains.annotations.NotNull; import java.util.*; -public class VariableAccessVisitor extends JavaRecursiveElementVisitor { +class VariableAccessVisitor extends JavaRecursiveElementVisitor { private final Map m_accessCounts = new HashMap(2); private final Set m_overAccessedFields = new HashSet(2); - @Override public void visitReferenceExpression(@NotNull PsiReferenceExpression ref) { + @Override public void visitReferenceExpression( + @NotNull PsiReferenceExpression ref) { super.visitReferenceExpression(ref); final PsiExpression qualifier = ref.getQualifierExpression(); - if (qualifier != null && !(qualifier instanceof PsiThisExpression)) { return; } @@ -51,7 +51,7 @@ public class VariableAccessVisitor extends JavaRecursiveElementVisitor { final Integer count = accessCounts.get(field); if (count == null) { accessCounts.put(field, 1); - } else if (count == 1) { + } else if (count.intValue() == 1) { accessCounts.put(field, 2); } else { overAccessedFields.add(field);