ClassFanOutComplexity should treat annotations and enums as classes (bug 1109205)
This commit is contained in:
parent
cbe261351b
commit
08a286dbec
|
|
@ -129,6 +129,8 @@ public abstract class AbstractClassCouplingCheck extends Check
|
|||
break;
|
||||
case TokenTypes.CLASS_DEF:
|
||||
case TokenTypes.INTERFACE_DEF:
|
||||
case TokenTypes.ANNOTATION_DEF:
|
||||
case TokenTypes.ENUM_DEF:
|
||||
visitClassDef(aAST);
|
||||
break;
|
||||
case TokenTypes.TYPE:
|
||||
|
|
@ -151,6 +153,8 @@ public abstract class AbstractClassCouplingCheck extends Check
|
|||
switch (aAST.getType()) {
|
||||
case TokenTypes.CLASS_DEF:
|
||||
case TokenTypes.INTERFACE_DEF:
|
||||
case TokenTypes.ANNOTATION_DEF:
|
||||
case TokenTypes.ENUM_DEF:
|
||||
leaveClassDef();
|
||||
break;
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -46,9 +46,11 @@ public final class ClassFanOutComplexityCheck extends AbstractClassCouplingCheck
|
|||
TokenTypes.PACKAGE_DEF,
|
||||
TokenTypes.CLASS_DEF,
|
||||
TokenTypes.INTERFACE_DEF,
|
||||
TokenTypes.ENUM_DEF,
|
||||
TokenTypes.TYPE,
|
||||
TokenTypes.LITERAL_NEW,
|
||||
TokenTypes.LITERAL_THROWS,
|
||||
TokenTypes.ANNOTATION_DEF,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
// someexamples of 1.5 extensions
|
||||
|
||||
@interface MyAnnotation {
|
||||
String name();
|
||||
}
|
||||
|
||||
@MyAnnotation(name = "ABC")
|
||||
public class Input15Extensions
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
enum Enum1
|
||||
{
|
||||
A, B, C;
|
||||
Enum1() {}
|
||||
public String toString() {
|
||||
return ""; //some custom implementation
|
||||
}
|
||||
}
|
||||
|
|
@ -18,4 +18,15 @@ public class ClassFanOutComplexityCheckTest extends BaseCheckTestCase {
|
|||
|
||||
verify(checkConfig, getPath("metrics" + File.separator +"ClassCouplingCheckTestInput.java"), expected);
|
||||
}
|
||||
|
||||
public void test15() throws Exception {
|
||||
DefaultConfiguration checkConfig = createCheckConfig(ClassFanOutComplexityCheck.class);
|
||||
|
||||
checkConfig.addAttribute("max", "0");
|
||||
|
||||
String[] expected = {
|
||||
};
|
||||
|
||||
verify(checkConfig, getPath("Input15Extensions.java"), expected);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,6 +69,9 @@
|
|||
<li>ModifiedControlVariable check changed to work with for-each
|
||||
correctly (1101851)</li>
|
||||
|
||||
<li>Annotations and enums are classes too and should be treated so by
|
||||
ClassFanOutComplexity checks (bug 1109205)</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue