What's the fastest way to check if one class is a subclass of another
I need to check if one class is a subclass of another (either direct or indirect).
For example:
Class Package.ClassA Extends %Library.Persistent { } Class Package.ClassB Extends Package.ClassA { } Class Package.ClassC Extends Package.ClassB { }
In this example Package.ClassC is a subclass of 3 classes: %Library.Persistent, Package.ClassA, Package.ClassB.
So any of these checks should return 1:
Write ##class(Some.System.Class).IsSubclass("Package.ClassC", "%Library.Persistent") Write ##class(Some.System.Class).IsSubclass("Package.ClassC", " Package.ClassA") Write ##class(Some.System.Class).IsSubclass("Package.ClassC", " Package.ClassB")