Since Checkstyle 5.8
Checks that each top-level class, interface, enum or annotation resides in a source file of its own. Official description of a 'top-level' term: 7.6. Top Level Type Declarations. If file doesn't contain public class, interface, enum or annotation, top-level type is the first type in file.
To configure the check:
<module name="Checker"> <module name="TreeWalker"> <module name="OneTopLevelClass"/> </module> </module>
ATTENTION: This Check does not support customization of validated tokens, so do not use the "tokens" property.
An example of code with violations:
public class Example1 { // OK, first top-level class // methods } class ViolationExample1 { // violation, "has to reside in its own source file." // methods }
An example of code without public top-level type:
class Example2 { // OK, first top-level class // methods } class ViolationExample2 { // violation, "has to reside in its own source file." // methods }
An example of code without violations:
public class Example3 { // OK, only one top-level class // methods }
All messages can be customized if the default message doesn't suit you. Please see the documentation to learn how to.
com.puppycrawl.tools.checkstyle.checks.design