Add support for error conditions that include data.

This commit is contained in:
Lance Stout
2012-06-16 14:12:13 -07:00
parent ff6fc44215
commit 8da387a38a
2 changed files with 40 additions and 2 deletions

View File

@@ -51,7 +51,8 @@ class Error(ElementBase):
namespace = 'jabber:client'
name = 'error'
plugin_attrib = 'error'
interfaces = set(('code', 'condition', 'text', 'type'))
interfaces = set(('code', 'condition', 'text', 'type',
'gone', 'redirect'))
sub_interfaces = set(('text',))
plugin_attrib_map = {}
plugin_tag_map = {}
@@ -135,6 +136,29 @@ class Error(ElementBase):
self._del_sub('{%s}text' % self.condition_ns)
return self
def get_gone(self):
return self._get_sub_text('{%s}gone' % self.condition_ns, '')
def get_redirect(self):
return self._get_sub_text('{%s}redirect' % self.condition_ns, '')
def set_gone(self, value):
del self['condition']
if value:
return self._set_sub_text('{%s}gone' % self.condition_ns, value)
def set_redirect(self, value):
del self['condition']
if value:
ns = self.condition_ns
return self._set_sub_text('{%s}redirect' % ns, value)
def del_gone(self):
self._del_sub('{%s}gone' % self.condition_ns)
def del_redirect(self):
self._del_sub('{%s}redirect' % self.condition_ns)
# To comply with PEP8, method names now use underscores.
# Deprecated method names are re-mapped for backwards compatibility.