All Downloads are FREE. Search and download functionalities are using the official Maven repository.

resources.report.rules.pmd.ClassWithOnlyPrivateConstructorsShouldBeFinal.html Maven / Gradle / Ivy

Go to download

Sanity4J was created to simplify running multiple static code analysis tools on the Java projects. It provides a single entry point to run all the selected tools and produce a consolidated report, which presents all findings in an easily accessible manner.

There is a newer version: 1.1.1
Show newest version


ClassWithOnlyPrivateConstructorsShouldBeFinal


ClassWithOnlyPrivateConstructorsShouldBeFinal

A class with only private constructors should be final, unless the private constructor is called by a inner class.

This rule is defined by the following XPath expression:

TypeDeclaration[count(../TypeDeclaration) = 1]/ClassOrInterfaceDeclaration
[@Final = 'false']
[count(./ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration/ConstructorDeclaration[@Private = 'true']) >= 1 ]
[count(./ClassOrInterfaceBody/ClassOrInterfaceBodyDeclaration/ConstructorDeclaration[@Public = 'true'])  = 0 ]
[not(.//ClassOrInterfaceDeclaration)]
             

Example:

                
public class Foo {  //Should be final
    private Foo() { }
}
     
            




© 2015 - 2024 Weber Informatics LLC | Privacy Policy