-- getSuperClassIntances
-- gets all the instances of a given superclass
-- R. Annema - SplutterFish, LLC
fn getSuperClassIntances superClass base:false = (
local classesStr = stringStream ""
showclass ("*:" + superClass as string) to:classesStr
classesStr = classesStr as string
local classes = filterString classesStr "\n"
for i = classes.count to 1 by -1 do (
local class = (filterString classes[i] " ")[1]
try ( classes[i] = execute class )
catch ( deleteItem classes i )
)
local classInstances = #()
for class in classes do (
classInstances += try (getClassInstances class ); catch ( #() )
)
if (base == false) do (
for i = 1 to classInstances.count do (
local classInstance = classInstances[i]
local dependents = refs.dependents classInstance
for dependent in dependents do (
if (classInstance == dependent) do ( -- WARNING: This comparison is side-specific. 'dependent == classInstance' will always result in 'false'.
classInstances[i] = dependent
)
)
)
)
classInstances
)