1.1 --- a/classfile.py Wed Dec 08 23:02:46 2004 +0100
1.2 +++ b/classfile.py Thu Dec 09 02:17:22 2004 +0100
1.3 @@ -58,6 +58,11 @@
1.4 # Useful mix-ins.
1.5
1.6 class PythonMethodUtils:
1.7 + symbol_sep = "___" # was "$"
1.8 + type_sep = "__" # replaces "/"
1.9 + array_sep = "_array_" # was "[]"
1.10 + base_seps = ("_", "_") # was "<" and ">"
1.11 +
1.12 def get_python_name(self):
1.13 name = self.get_name()
1.14 if str(name) == "<init>":
1.15 @@ -66,22 +71,22 @@
1.16 return "__clinit__"
1.17 else:
1.18 name = str(name)
1.19 - return name + "$" + self._get_descriptor_as_name()
1.20 + return name + self.symbol_sep + self._get_descriptor_as_name()
1.21
1.22 def _get_descriptor_as_name(self):
1.23 l = []
1.24 for descriptor_type in self.get_descriptor()[0]:
1.25 l.append(self._get_type_as_name(descriptor_type))
1.26 - return "$".join(l)
1.27 + return self.symbol_sep.join(l)
1.28
1.29 def _get_type_as_name(self, descriptor_type, s=""):
1.30 base_type, object_type, array_type = descriptor_type
1.31 if base_type == "L":
1.32 - return object_type + s
1.33 + return object_type.replace("/", self.type_sep) + s
1.34 elif base_type == "[":
1.35 - return self._get_type_as_name(array_type, s + "[]")
1.36 + return self._get_type_as_name(array_type, s + self.array_sep)
1.37 else:
1.38 - return "<" + base_type + ">" + s
1.39 + return self.base_seps[0] + base_type + self.base_seps[1] + s
1.40
1.41 class PythonNameUtils:
1.42 def get_python_name(self):