Design Checks
DesignForExtension
Checks that classes are designed for extension (subclass creation).
FinalClass
Ensures that identifies classes that can be effectively declared as final are
explicitly marked as final.
HideUtilityClassConstructor
Makes sure that utility classes (classes that contain only static methods or fields in
their API) do not have a public constructor.
InnerTypeLast
Checks nested (internal) classes/interfaces are declared at the bottom of the primary
(top-level) class after all init and static init blocks, method, constructor and field
declarations.
InterfaceIsType
Implements Joshua Bloch, Effective Java, Item 17 - Use Interfaces only to define
types.
MutableException
Ensures that exception classes (classes with names conforming to some pattern and
explicitly extending classes with names conforming to other pattern) are immutable,
that is, that they have only final fields.
OneTopLevelClass
Checks that each top-level class, interface, enum or annotation resides in a source
file of its own.
SealedShouldHavePermitsList
Checks that sealed classes and interfaces have a permits list.
ThrowsCount
Restricts throws statements to a specified count.
VisibilityModifier
Checks visibility of class members.