114 lines
3.8 KiB
XML
114 lines
3.8 KiB
XML
<?xml version="1.0"?>
|
|
<!DOCTYPE module PUBLIC
|
|
"-//Puppy Crawl//DTD Check Configuration 1.1//EN"
|
|
"http://www.puppycrawl.com/dtds/configuration_1_1.dtd">
|
|
|
|
<!--
|
|
|
|
A Checkstyle configuration that checks against the recommendations
|
|
in Joshua Bloch, Effective Java (highly recommended read!)
|
|
|
|
This file does NOT duplicate the checks for whitespace settings,
|
|
placement of curly braces, etc. Only the rules that are explicitly
|
|
mentioned in the book are enforced.
|
|
|
|
Currently the amount of rules that can be automatically checked by
|
|
Checkstyle is not very large, but adding more checks of this quality
|
|
is a high priority goal for the development team.
|
|
|
|
-->
|
|
|
|
<module name="Checker">
|
|
|
|
<module name="TreeWalker">
|
|
|
|
<!-- Item 4 - Avoid creating duplicate objects -->
|
|
<module name="IllegalInstantiation">
|
|
<property name="classes" value="java.lang.Boolean, java.lang.String"/>
|
|
</module>
|
|
|
|
<!-- Item 6 - Avoid finalizers -->
|
|
<!-- this will not find violations that contain linebreaks -->
|
|
<module name="GenericIllegalRegexp">
|
|
<property name="format"
|
|
value="((public)|(protected))\s+void\s+finalize\(\s*\)"/>
|
|
</module>
|
|
|
|
<!-- Item 8 - Always override hashCode when you override equals -->
|
|
<module name="EqualsHashCode"/>
|
|
|
|
<!-- Item 12 - Make all fields private -->
|
|
<module name="VisibilityModifier"/>
|
|
|
|
<!-- Item 15 - Design and document for inheritance or else prohibit it -->
|
|
<!-- the module actually implements a very strict rule, it would be
|
|
interesting to know whether Joshua meant what checkstyle implements.
|
|
We feel this implementation is well suited as a warning,
|
|
i.e. if you get error messages from this check you should be
|
|
able to name a good reason to implement your code the way you do it,
|
|
especially if you are designing a library and not an application. -->
|
|
<module name="DesignForExtension">
|
|
<property name="severity" value="warning"/>
|
|
</module>
|
|
|
|
<!-- Item 17 - Use interfaces only to define types -->
|
|
<module name="InterfaceIsType"/>
|
|
|
|
<!-- Item 25 - Design method signatures carefully -->
|
|
<!-- Avoid long parameter lists -->
|
|
<module name="ParameterNumber">
|
|
<property name="max" value="3"/>
|
|
</module>
|
|
|
|
<!-- Item 26 - Use overloading judiciously -->
|
|
<!-- rfe #659735 -->
|
|
|
|
<!-- Item 27 - Return zero-length array, not nulls -->
|
|
<!-- no rfe yet -->
|
|
|
|
<!-- Item 28 - Write doc comments for all exposed API elements -->
|
|
<module name="JavadocType">
|
|
<property name="scope" value="protected"/>
|
|
</module>
|
|
<module name="JavadocMethod"> <!-- also covers Item 44 -->
|
|
<property name="scope" value="protected"/>
|
|
</module>
|
|
<module name="JavadocVariable">
|
|
<property name="scope" value="protected"/>
|
|
</module>
|
|
|
|
<!-- Item 29 - Minimize the scope of local variables -->
|
|
<!-- no rfe yet -->
|
|
|
|
|
|
<!-- Item 38 - Adhere to generally accepted naming conventions -->
|
|
<module name="PackageName">
|
|
<!-- no uppercase letters, between 2 and 8 characters -->
|
|
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]{1,7})*$"/>
|
|
</module>
|
|
<module name="TypeName"/>
|
|
<module name="ConstantName"/>
|
|
<module name="LocalFinalVariableName"/>
|
|
<module name="LocalVariableName"/>
|
|
<module name="MemberName"/>
|
|
<module name="MethodName"/>
|
|
<module name="ParameterName"/>
|
|
<module name="StaticVariableName"/>
|
|
|
|
<!-- Item 47 - Don't ignore exceptions -->
|
|
<module name="EmptyBlock">
|
|
<property name="tokens" value="LITERAL_CATCH"/>
|
|
<!-- require a comment, change to stmt to require a statement -->
|
|
<property name="option" value="text"/>
|
|
</module>
|
|
|
|
<!-- Item 50 - Never invoke wait outside a loop -->
|
|
<!-- rfe #712798 -->
|
|
|
|
<!-- Item 57 - Provide a readResolve method when necessary -->
|
|
<!-- no rfe yet -->
|
|
|
|
</module>
|
|
|
|
</module>
|