Update of /cvsroot/webware/Webware/MiddleKit/Core
In directory usw-pr-cvs1:/tmp/cvs-serv16511/Core
Modified Files:
Klass.py
Log Message:
added convenience methods isKindOfKlassNamed() and lookupAncestorKlass()
Index: Klass.py
===================================================================
RCS file: /cvsroot/webware/Webware/MiddleKit/Core/Klass.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** Klass.py 26 Sep 2001 02:11:59 -0000 1.5
--- Klass.py 8 Feb 2002 03:34:56 -0000 1.6
***************
*** 106,109 ****
--- 106,139 ----
+ ## Ancestors ##
+
+ def lookupAncestorKlass(self, name, default=NoDefault):
+ """
+ Searches for and returns the ancestor klass with the given
+ name. Raises an exception if no such klass exists, unless a
+ default is specified (in which case it is returned).
+ """
+ if self._superklass:
+ if self._superklass.name()==name:
+ return self._superklass
+ else:
+ return self._superklass.lookupAncestorKlass(name, default)
+ else:
+ if default is NoDefault:
+ raise KeyError, name
+ else:
+ return default
+
+ def isKindOfKlassNamed(self, name):
+ """
+ Returns true if the klass is the same as, or inherits from,
+ the klass with the given name.
+ """
+ if self.name()==name:
+ return 1
+ else:
+ return klass.lookupAncestorKlass(name) is not None
+
+
## Subklasses ##
|