Use XMPPJID for from and to.

This commit is contained in:
Jonathan Schleifer 2011-02-19 17:40:41 +01:00
parent f3109b1c7a
commit 613400a718
3 changed files with 27 additions and 24 deletions

View file

@ -23,23 +23,25 @@
#import <ObjFW/ObjFW.h>
@class XMPPJID;
/**
* \brief A class describing an XMPP Stanza.
*/
@interface XMPPStanza: OFXMLElement
{
/// The value of the stanza's from attribute
OFString *from;
XMPPJID *from;
/// The value of the stanza's to attribute
OFString *to;
XMPPJID *to;
/// The value of the stanza's type attribute
OFString *type;
/// The value of the stanza's id attribute
OFString *ID;
}
@property (copy) OFString *from;
@property (copy) OFString *to;
@property (copy) XMPPJID *from;
@property (copy) XMPPJID *to;
@property (copy) OFString *type;
@property (copy) OFString *ID;

View file

@ -22,6 +22,7 @@
*/
#import "XMPPStanza.h"
#import "XMPPJID.h"
@implementation XMPPStanza
@synthesize from;
@ -118,14 +119,13 @@
namespace: elem.namespace];
@try {
OFXMLAttribute *attr;
OFXMLElement *el;
for (attr in elem.attributes) {
for (OFXMLAttribute *attr in elem.attributes) {
if ([attr.name isEqual: @"from"])
[self setFrom: [attr stringValue]];
[self setFrom: [XMPPJID JIDWithString:
[attr stringValue]]];
else if ([attr.name isEqual: @"to"])
[self setTo: [attr stringValue]];
[self setTo: [XMPPJID JIDWithString:
[attr stringValue]]];
else if ([attr.name isEqual: @"type"])
[self setType: [attr stringValue]];
else if ([attr.name isEqual: @"id"])
@ -134,7 +134,7 @@
[self addAttribute: attr];
}
for (el in elem.children)
for (OFXMLElement *el in elem.children)
[self addChild: el];
} @catch (id e) {
[self release];
@ -154,31 +154,31 @@
[super dealloc];
}
- (void)setFrom: (OFString*)from_
- (void)setFrom: (XMPPJID*)from_
{
OFString* old = from;
XMPPJID *old = from;
from = [from_ copy];
[old release];
[self removeAttributeForName: @"from"];
[self addAttributeWithName: @"from"
stringValue: from_];
stringValue: from_.fullJID];
}
- (void)setTo: (OFString*)to_
- (void)setTo: (XMPPJID*)to_
{
OFString* old = to;
XMPPJID *old = to;
to = [to_ copy];
[old release];
[self removeAttributeForName: @"to"];
[self addAttributeWithName: @"to"
stringValue: to];
stringValue: to_.fullJID];
}
- (void)setType: (OFString*)type_
{
OFString* old = type;
OFString *old = type;
type = [type_ copy];
[old release];