Skip to content

Commit c8dd7ad

Browse files
author
Troy Melhase
committed
Adds config handler for class, interface and enum bases.
1 parent b1af8ac commit c8dd7ad

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

java2python/compiler/template.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,9 @@ class Class(ClassMethodSharedMixin, Base):
403403

404404
def iterBases(self):
405405
""" Yields the base classes for this type. """
406-
return iter(self.bases or ['object'])
406+
for handler in self.configHandlers('Base'):
407+
for base in handler(self):
408+
yield base
407409

408410
def iterDecl(self):
409411
""" Yields the declaration for this type. """

java2python/config/default.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,13 @@
4848
basic.simpleDocString,
4949
]
5050

51+
classBaseHandlers = [
52+
basic.defaultBases,
53+
]
54+
55+
interfaceBaseHandlers = [
56+
basic.zopeInterfaceBases,
57+
]
5158

5259
# These generators are called after a class has been completely
5360
# generated. The class content sorter sorts the methods of a class by

java2python/mod/basic.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,3 +172,10 @@ def zopeInterfaceMethodMutator(obj):
172172
if method.parameters and method.parameters[0]['name'] == 'self':
173173
method.parameters.pop(0)
174174

175+
176+
def defaultBases(obj):
177+
return iter(obj.bases or ['object'])
178+
179+
180+
def zopeInterfaceBases(obj):
181+
return ['zope.interface.Interface']

0 commit comments

Comments
 (0)