diff options
author | jortel <devnull@localhost> | 2010-01-21 00:18:03 +0000 |
---|---|---|
committer | jortel <devnull@localhost> | 2010-01-21 00:18:03 +0000 |
commit | 98d685d923eccabecc37ce2e680eddd4baf189d7 (patch) | |
tree | e82f41e094a8044e010aa014e4def6bbaf316258 | |
parent | 3224e14928cc00bc481ddcd98a569b74679e61a9 (diff) | |
download | suds-98d685d923eccabecc37ce2e680eddd4baf189d7.tar.gz |
Add Facade to sudsobject to be used when a true subclass is not necessary.
-rw-r--r-- | suds/sudsobject.py | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/suds/sudsobject.py b/suds/sudsobject.py index 0a4c242..1f6168d 100644 --- a/suds/sudsobject.py +++ b/suds/sudsobject.py @@ -22,7 +22,7 @@ wsdl/xsd defined types. from logging import getLogger from suds import * -from new import classobj, function, instancemethod +from new import classobj log = getLogger(__name__) @@ -211,14 +211,21 @@ class Iter: def __iter__(self): return self - - + + class Metadata(Object): def __init__(self): self.__keylist__ = [] self.__printer__ = Printer() - - + + +class Facade(Object): + def __init__(self, name): + Object.__init__(self) + md = self.__metadata__ + md.facade = name + + class Property(Object): def __init__(self, value): @@ -278,6 +285,7 @@ class Printer: """ print complex using the specified indent (n) and newline (nl). """ s = [] cls = d.__class__ + md = d.__metadata__ if d in h: s.append('(') s.append(cls.__name__) @@ -290,7 +298,10 @@ class Printer: s.append(self.indent(n)) if cls != Object: s.append('(') - s.append(cls.__name__) + if isinstance(d, Facade): + s.append(md.facade) + else: + s.append(cls.__name__) s.append(')') s.append('{') for item in d: |