Is there a way in Unicon to determine the inheritance chain of a
class instance at runtime. For example, suppose I have something
like:
class A ()
method callback()
...
end
class B : A ()
end
procedure main()
a := B()
f(a)
end
# Is there someway to write something like:
procedure f(a)
if instanceof(B, a) then a.callback()
end
Actually, it might be nice if there were some 'default' methods
declared on classes - with instanceof() being one of them,
so that the above procedure f() could be written as:
procedure f(a)
B.instanceof(a).callback()
end
B.instanceof(a) would just fail if B isn't in the inheritance chain for
the class instance in a, and [because it seems useful] produce that
class instance from a otherwise.
Note that in this case, instanceof() is a method defined on the
class instead of the class instance - I don't know of any methods
defined this way currently in Icon, and so it might be, uh,
"interesting" to implement...
[I'm *not* interested in digging through the record implementation of
a class to figure the inheritance chain - I'd like to see this a
something provided by Unicon without requiring the user to understand
how classes are implemented!]
--
Steve Wampler <[EMAIL PROTECTED]>
National Solar Observatory
-------------------------------------------------------
This SF.net email is sponsored by: Scholarships for Techies!
Can't afford IT training? All 2003 ictp students receive scholarships.
Get hands-on training in Microsoft, Cisco, Sun, Linux/UNIX, and more.
www.ictp.com/training/sourceforge.asp
_______________________________________________
Unicon-group mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/unicon-group