mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
EA-19923 (CCE: MoveAnonymousToInnerClassFix.doFix)
This commit is contained in:
+16
-4
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2008 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.
|
||||
@@ -27,34 +27,41 @@ public class AnonymousClassComplexityInspection
|
||||
|
||||
private static final int DEFAULT_COMPLEXITY_LIMIT = 3;
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String getID() {
|
||||
return "OverlyComplexAnonymousInnerClass";
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String getDisplayName() {
|
||||
return InspectionGadgetsBundle.message(
|
||||
"overly.complex.anonymous.inner.class.display.name");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getDefaultLimit() {
|
||||
return DEFAULT_COMPLEXITY_LIMIT;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getConfigurationLabel() {
|
||||
return InspectionGadgetsBundle.message(
|
||||
"cyclomatic.complexity.limit.option");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InspectionGadgetsFix buildFix(Object... infos) {
|
||||
return new MoveAnonymousToInnerClassFix();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean buildQuickFixesOnlyForOnTheFlyErrors() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String buildErrorString(Object... infos) {
|
||||
final Integer totalComplexity = (Integer)infos[0];
|
||||
@@ -63,6 +70,7 @@ public class AnonymousClassComplexityInspection
|
||||
totalComplexity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseInspectionVisitor buildVisitor() {
|
||||
return new ClassComplexityVisitor();
|
||||
}
|
||||
@@ -73,7 +81,11 @@ public class AnonymousClassComplexityInspection
|
||||
// no call to super, to prevent double counting
|
||||
}
|
||||
|
||||
@Override public void visitAnonymousClass(@NotNull PsiAnonymousClass aClass) {
|
||||
@Override public void visitAnonymousClass(
|
||||
@NotNull PsiAnonymousClass aClass) {
|
||||
if (aClass instanceof PsiEnumConstantInitializer) {
|
||||
return;
|
||||
}
|
||||
final int totalComplexity = calculateTotalComplexity(aClass);
|
||||
if (totalComplexity <= getLimit()) {
|
||||
return;
|
||||
@@ -95,7 +107,7 @@ public class AnonymousClassComplexityInspection
|
||||
final ComplexityVisitor visitor = new ComplexityVisitor();
|
||||
int complexity = 0;
|
||||
final PsiClassInitializer[] initializers = aClass.getInitializers();
|
||||
for(final PsiClassInitializer initializer : initializers){
|
||||
for (final PsiClassInitializer initializer : initializers) {
|
||||
visitor.reset();
|
||||
initializer.accept(visitor);
|
||||
complexity += visitor.getComplexity();
|
||||
@@ -106,7 +118,7 @@ public class AnonymousClassComplexityInspection
|
||||
private int calculateComplexityForMethods(PsiMethod[] methods) {
|
||||
final ComplexityVisitor visitor = new ComplexityVisitor();
|
||||
int complexity = 0;
|
||||
for(final PsiMethod method : methods){
|
||||
for (final PsiMethod method : methods) {
|
||||
visitor.reset();
|
||||
method.accept(visitor);
|
||||
complexity += visitor.getComplexity();
|
||||
|
||||
+17
-4
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2003-2008 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.
|
||||
@@ -17,6 +17,7 @@ package com.siyeh.ig.classmetrics;
|
||||
|
||||
import com.intellij.psi.PsiAnonymousClass;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiEnumConstantInitializer;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.siyeh.InspectionGadgetsBundle;
|
||||
import com.siyeh.ig.BaseInspectionVisitor;
|
||||
@@ -29,33 +30,40 @@ public class AnonymousClassMethodCountInspection
|
||||
|
||||
private static final int DEFAULT_METHOD_COUNT_LIMIT = 1;
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String getID(){
|
||||
return "AnonymousInnerClassWithTooManyMethods";
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String getDisplayName() {
|
||||
return InspectionGadgetsBundle.message(
|
||||
"anonymous.inner.class.with.too.many.methods.display.name");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getDefaultLimit() {
|
||||
return DEFAULT_METHOD_COUNT_LIMIT;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getConfigurationLabel() {
|
||||
return InspectionGadgetsBundle.message("method.count.limit.option");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InspectionGadgetsFix buildFix(Object... infos) {
|
||||
return new MoveAnonymousToInnerClassFix();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean buildQuickFixesOnlyForOnTheFlyErrors() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String buildErrorString(Object... infos) {
|
||||
final Integer count = (Integer)infos[0];
|
||||
@@ -64,6 +72,7 @@ public class AnonymousClassMethodCountInspection
|
||||
count);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseInspectionVisitor buildVisitor() {
|
||||
return new AnonymousClassMethodCountVisitor();
|
||||
}
|
||||
@@ -75,7 +84,11 @@ public class AnonymousClassMethodCountInspection
|
||||
// no call to super, to prevent double counting
|
||||
}
|
||||
|
||||
@Override public void visitAnonymousClass(@NotNull PsiAnonymousClass aClass) {
|
||||
@Override public void visitAnonymousClass(
|
||||
@NotNull PsiAnonymousClass aClass) {
|
||||
if (aClass instanceof PsiEnumConstantInitializer) {
|
||||
return;
|
||||
}
|
||||
final int totalMethodCount = calculateTotalMethodCount(aClass);
|
||||
if (totalMethodCount <= getLimit()) {
|
||||
return;
|
||||
@@ -86,8 +99,8 @@ public class AnonymousClassMethodCountInspection
|
||||
private int calculateTotalMethodCount(PsiClass aClass) {
|
||||
final PsiMethod[] methods = aClass.getMethods();
|
||||
int totalCount = 0;
|
||||
for(final PsiMethod method : methods){
|
||||
if(!method.isConstructor()){
|
||||
for (final PsiMethod method : methods) {
|
||||
if (!method.isConstructor()) {
|
||||
totalCount++;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user