Note: there seems to be a big bug in Checkstyle and it seems that it's 
currently counting java.lang classes even though it should not.
See 
https://sourceforge.net/tracker/?func=detail&aid=3575496&group_id=29721&atid=397078
 which I have just opened.

I propose that while waiting for this bug to be fixed we use a specific 
checkstyle exclude *only for this check* when needed and put in comment  TODO 
to remove it when 
https://sourceforge.net/tracker/?func=detail&aid=3575496&group_id=29721&atid=397078
 is fixed.

Thanks
-Vincent

On Sep 10, 2012, at 4:59 PM, Vincent Massol <[email protected]> wrote:

> Hi devs,
> 
> I wanted to understand how Checkstyle computes the Class Fan out so I 
> debugged it.
> 
> Here are my findings:
> 
> * Some classes are excluded by default:
> 
>        mIgnoredClassNames.add("boolean");
>        mIgnoredClassNames.add("byte");
>        mIgnoredClassNames.add("char");
>        mIgnoredClassNames.add("double");
>        mIgnoredClassNames.add("float");
>        mIgnoredClassNames.add("int");
>        mIgnoredClassNames.add("long");
>        mIgnoredClassNames.add("short");
>        mIgnoredClassNames.add("void");
>        mIgnoredClassNames.add("Boolean");
>        mIgnoredClassNames.add("Byte");
>        mIgnoredClassNames.add("Character");
>        mIgnoredClassNames.add("Double");
>        mIgnoredClassNames.add("Float");
>        mIgnoredClassNames.add("Integer");
>        mIgnoredClassNames.add("Long");
>        mIgnoredClassNames.add("Object");
>        mIgnoredClassNames.add("Short");
>        mIgnoredClassNames.add("String");
>        mIgnoredClassNames.add("StringBuffer");
>        mIgnoredClassNames.add("Void");
>        mIgnoredClassNames.add("ArrayIndexOutOfBoundsException");
>        mIgnoredClassNames.add("Exception");
>        mIgnoredClassNames.add("RuntimeException");
>        mIgnoredClassNames.add("IllegalArgumentException");
>        mIgnoredClassNames.add("IllegalStateException");
>        mIgnoredClassNames.add("IndexOutOfBoundsException");
>        mIgnoredClassNames.add("NullPointerException");
>        mIgnoredClassNames.add("Throwable");
>        mIgnoredClassNames.add("SecurityException");
>        mIgnoredClassNames.add("UnsupportedOperationException");
> 
> * All classes in java.lang.* are excluded too
> * Annotation classes are not counted
> * Classes in the same package are counted (they won't appear in import since 
> it's in the same package so don't count imports to get class fan out)
> * Static method calls are not counted. So for example StringUtils from 
> Commons Lang never counts for class Fan out
> * Enums are not counted (no new XXX() done. That's why static method calls 
> are not counted too BTW)
> * Classes used in class extend or implement are not counted too.
> 
> Hope it helps
> -Vincent
> 

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to