Class not declared abstract
objectscriptQuality release
Id
OS0049
Rule type
Code Smell
Severity
Info
Info
SQALE characteristic
- Changeability
- Data
Remediation function
Constant/issue
Remediation cost
5min
A class with empty methods and/or the methods are declared abstract, should be abstract:
Classes with only empty class declarations, as in:
Class MyUtilityClass { ClassMethod m1() { } ClassMethod m2() [ abstract ] { /* ... */ } }
are often "utility classes", which have no other purpose than to offer a set of methods for other classes to use.
Such classes can be made abstract; if they are not, it is possible to instantiate them using:
#dim foo as MyUtilityClass set foo = ##class(MyUtilityClass).%New()
In order to prevent this, you can declare the class as abstract:
Class MyUtilityClass [ Abstract ] { // etc }