docs: def getClassAlias(self, klass):
          """
          Gets a class alias based on the supplied C{klass}. If one is not found
          in the global context, one is created locally.
  
          If you supply a string alias and the class is not registered,
          L{pyamf.UnknownClassAlias} will be raised.
  
          @param klass: A class object or string alias.
          @return: The L{pyamf.ClassAlias} instance that describes C{klass}
          """
          try:
              return self._class_aliases[klass]
          except KeyError:
              pass
  
          try:
              alias = self._class_aliases[klass] = pyamf.get_class_alias(klass)
          except pyamf.UnknownClassAlias:
              if isinstance(klass, python.str_types):
                  raise
  
              # no alias has been found yet .. check subclasses
              alias = util.get_class_alias(klass) or pyamf.ClassAlias
              meta = util.get_class_meta(klass)
              alias = alias(klass, defer=True, **meta)
  
              self._class_aliases[klass] = alias
  
          return alias