    import os, sys

    try:
        import MiscUtils
    except:
        # When the Webware tarball unravels,
        # the components sit next to each other
        sys.path.append(os.path.abspath('..'))
        import MiscUtils
    from MiscUtils.NamedValueAccess import NamedValueAccess

    class Object(NamedValueAccess):
        """
        Object is the root class for all classes in the WebKit.

        This is a placeholder for any future functionality that might be appropriate
        for all objects in the framework.
        """

        def __init__(self):
            """ Initializes the object. Subclasses should invoke super. """
            pass

        def deprecated(self, method):
            """
            The implementation of WebKit sometimes invokes this method which prints a warning that the method you are using has been deprecated.
            This method expects that deprecated methods say so at the beginning of their doc string and terminate that msg with @.
            For example:

                DEPRECATED: Class.foo() on 01/24/01 in ver 0.5. Use Class.bar() instead. @

            Putting this information in the doc string is important for accuracy in the generated docs.

            Example call:
                self.deprecated(self.foo)
            """
            import string
            docString = method.__doc__
            if not docString:
                msg = 'DEPRECATED: %s, (no doc string)' % method
            else:
                msg = string.strip(string.split(method.__doc__, '@')[0])
            print msg

        # 2000-05-21 ce: Sometimes used for debugging:
        #
        #def __del__(self):
        #   print '>> del', self