Changeset 410
- Timestamp:
- 01/21/03 23:45:19 (6 years ago)
- Files:
-
- trunk/RBTelepathy/RBTelepathy/Packet/Elements.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/RBTelepathy/RBTelepathy/Packet/Elements.py
r408 r410 27 27 from RBFoundation.XMLClassBuilder import XMLClassBuilderObjectMixin 28 28 from RBFoundation.XMLObjectify import BaseObjectifiedXML, ObjectifiedXML 29 from URIAddressimport URIAddress29 import URIAddress 30 30 31 31 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 42 42 self._owner = owner 43 43 44 def OnUpdateContent(self): 45 pass 46 47 def _toXML(self, *args, **kw): 48 self.OnUpdateContent() 49 return BaseObjectifiedXML._toXML(self, *args, **kw) 50 51 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 52 53 class RootElementBase(PacketElementBase): 44 54 def OnStreamData(self, data, OnPacketComplete=None): 45 55 if OnPacketComplete is not None: … … 53 63 return '' 54 64 55 def OnUpdateContent(self):56 pass57 58 def _toXML(self, *args, **kw):59 self.OnUpdateContent()60 return BaseObjectifiedXML._toXML(self, *args, **kw)61 62 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~63 #~ Messages64 65 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 65 66 66 class Message(PacketElementBase):67 class StreamRootElement(PacketElementBase): 67 68 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 69 #~ OnStreamData adaptor … … 95 96 return ''.join(results) 96 97 97 #~ Utility Methods~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~98 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 99 100 class RouteableRootElement(PacketElementBase): 99 101 def GetAddresses(self, nodename='to'): 100 102 existing = self._getElements(node=nodename, namespace=self.__namespace__) … … 128 130 129 131 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 #~ Message Supporting elements131 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~132 132 133 133 class URIAddressElement(PacketElementBase): 134 def _xmlInitStarted(self):135 try:136 self.addr = self._attributes['addr']137 except KeyError:138 if not hasattr(self, 'addr'):139 raise KeyError, '"%s" element has no attribute "addr"' % (self.__node__,)140 else:141 self.addr = URIAddress(self.addr)142 143 134 def OnUpdateContent(self): 144 135 PacketElementBase.OnUpdateContent(self) 145 self._attributes['addr'] = str(self.addr) 136 if self._addr is None: 137 try: del self._attributes['addr'] 138 except KeyError: pass 139 else: self._attributes['addr'] = str(self._addr) 146 140 141 #~ addr property ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 143 def _get_addr(self): 144 if self._addr is None: 145 self._addr = URIAddress.URIAddress(self._attributes.get('addr', '')) 146 return self._addr 147 def _set_addr(self, value): self._addr = value 148 def _del_addr(self, value): del self._addr 149 addr = property(_get_addr, _set_addr, _del_addr) 150 _addr = None 151
