# HG changeset patch # User Paul Boddie # Date 1105396768 -3600 # Node ID 0a42c2118b55a076993ac6c5a5fd15d4d47e689a # Parent c9e71dcb6038eee4f6d36942554ee00e46d4911a Removed the special base classes and introduced retrieval of all classes including java.lang.Object and java.lang.Exception, thus requiring the special java package to be specified on the PYTHONPATH. diff -r c9e71dcb6038 -r 0a42c2118b55 bytecode.py --- a/bytecode.py Mon Jan 10 01:06:17 2005 +0100 +++ b/bytecode.py Mon Jan 10 23:39:28 2005 +0100 @@ -2245,27 +2245,24 @@ """ original_name = str(self.class_file.super_class.get_name()) - if original_name in ("java/lang/Object", "java/lang/Exception"): - return (object,) + full_this_class_name = str(self.class_file.this_class.get_python_name()) + this_class_name_parts = full_this_class_name.split(".") + this_class_module_name = ".".join(this_class_name_parts[:-1]) + full_super_class_name = str(self.class_file.super_class.get_python_name()) + super_class_name_parts = full_super_class_name.split(".") + super_class_name = super_class_name_parts[-1] + super_class_module_name = ".".join(super_class_name_parts[:-1]) + if super_class_module_name == "": + obj = global_names[super_class_name] + elif super_class_module_name == this_class_module_name: + obj = global_names[super_class_name] else: - full_this_class_name = str(self.class_file.this_class.get_python_name()) - this_class_name_parts = full_this_class_name.split(".") - this_class_module_name = ".".join(this_class_name_parts[:-1]) - full_super_class_name = str(self.class_file.super_class.get_python_name()) - super_class_name_parts = full_super_class_name.split(".") - super_class_name = super_class_name_parts[-1] - super_class_module_name = ".".join(super_class_name_parts[:-1]) - if super_class_module_name == "": - obj = global_names[super_class_name] - elif super_class_module_name == this_class_module_name: - obj = global_names[super_class_name] - else: - print "Importing", super_class_module_name, super_class_name - obj = __import__(super_class_module_name, global_names, {}, []) - for super_class_name_part in super_class_name_parts[1:] or [super_class_name]: - print "*", obj, super_class_name_part - obj = getattr(obj, super_class_name_part) - return (obj,) + print "Importing", super_class_module_name, super_class_name + obj = __import__(super_class_module_name, global_names, {}, []) + for super_class_name_part in super_class_name_parts[1:] or [super_class_name]: + print "*", obj, super_class_name_part + obj = getattr(obj, super_class_name_part) + return (obj,) def make_varnames(self, nlocals, method_is_static=0):