Skip to content

Commit

Permalink
Adding a few more convenience methods.
Browse files Browse the repository at this point in the history
  • Loading branch information
robbiehanson committed Aug 24, 2011
1 parent d560d0f commit d10a11d
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 16 deletions.
2 changes: 2 additions & 0 deletions Core/XMPPIQ.h
Expand Up @@ -23,6 +23,7 @@
* If the type or elementID parameters are nil, those attributes will not be added. * If the type or elementID parameters are nil, those attributes will not be added.
**/ **/
+ (XMPPIQ *)iq; + (XMPPIQ *)iq;
+ (XMPPIQ *)iqWithType:(NSString *)type;
+ (XMPPIQ *)iqWithType:(NSString *)type to:(XMPPJID *)jid; + (XMPPIQ *)iqWithType:(NSString *)type to:(XMPPJID *)jid;
+ (XMPPIQ *)iqWithType:(NSString *)type to:(XMPPJID *)jid elementID:(NSString *)eid; + (XMPPIQ *)iqWithType:(NSString *)type to:(XMPPJID *)jid elementID:(NSString *)eid;
+ (XMPPIQ *)iqWithType:(NSString *)type to:(XMPPJID *)jid elementID:(NSString *)eid child:(NSXMLElement *)childElement; + (XMPPIQ *)iqWithType:(NSString *)type to:(XMPPJID *)jid elementID:(NSString *)eid child:(NSXMLElement *)childElement;
Expand All @@ -32,6 +33,7 @@
* If the type or elementID parameters are nil, those attributes will not be added. * If the type or elementID parameters are nil, those attributes will not be added.
**/ **/
- (id)init; - (id)init;
- (id)initWithType:(NSString *)type;
- (id)initWithType:(NSString *)type to:(XMPPJID *)jid; - (id)initWithType:(NSString *)type to:(XMPPJID *)jid;
- (id)initWithType:(NSString *)type to:(XMPPJID *)jid elementID:(NSString *)eid; - (id)initWithType:(NSString *)type to:(XMPPJID *)jid elementID:(NSString *)eid;
- (id)initWithType:(NSString *)type to:(XMPPJID *)jid elementID:(NSString *)eid child:(NSXMLElement *)childElement; - (id)initWithType:(NSString *)type to:(XMPPJID *)jid elementID:(NSString *)eid child:(NSXMLElement *)childElement;
Expand Down
10 changes: 10 additions & 0 deletions Core/XMPPIQ.m
Expand Up @@ -41,6 +41,11 @@ + (XMPPIQ *)iq
return [[[XMPPIQ alloc] initWithType:nil to:nil elementID:nil child:nil] autorelease]; return [[[XMPPIQ alloc] initWithType:nil to:nil elementID:nil child:nil] autorelease];
} }


+ (XMPPIQ *)iqWithType:(NSString *)type
{
return [[[XMPPIQ alloc] initWithType:type to:nil elementID:nil child:nil] autorelease];
}

+ (XMPPIQ *)iqWithType:(NSString *)type to:(XMPPJID *)jid + (XMPPIQ *)iqWithType:(NSString *)type to:(XMPPJID *)jid
{ {
return [[[XMPPIQ alloc] initWithType:type to:jid elementID:nil child:nil] autorelease]; return [[[XMPPIQ alloc] initWithType:type to:jid elementID:nil child:nil] autorelease];
Expand All @@ -61,6 +66,11 @@ - (id)init
return [self initWithType:nil to:nil elementID:nil child:nil]; return [self initWithType:nil to:nil elementID:nil child:nil];
} }


- (id)initWithType:(NSString *)type
{
return [self initWithType:type to:nil elementID:nil child:nil];
}

- (id)initWithType:(NSString *)type to:(XMPPJID *)jid - (id)initWithType:(NSString *)type to:(XMPPJID *)jid
{ {
return [self initWithType:type to:jid elementID:nil child:nil]; return [self initWithType:type to:jid elementID:nil child:nil];
Expand Down
14 changes: 13 additions & 1 deletion Core/XMPPJID.h
@@ -1,5 +1,16 @@
#import <Foundation/Foundation.h> #import <Foundation/Foundation.h>


enum XMPPJIDCompareOptions
{
XMPPJIDCompareUser = 1, // 001
XMPPJIDCompareDomain = 2, // 010
XMPPJIDCompareResource = 4, // 100

XMPPJIDCompareBare = 3, // 011
XMPPJIDCompareFull = 7, // 111
};
typedef enum XMPPJIDCompareOptions XMPPJIDCompareOptions;



@interface XMPPJID : NSObject <NSCoding, NSCopying> @interface XMPPJID : NSObject <NSCoding, NSCopying>
{ {
Expand Down Expand Up @@ -33,6 +44,7 @@
/** /**
* When you know both objects are JIDs, this method is a faster way to check equality than isEqual:. * When you know both objects are JIDs, this method is a faster way to check equality than isEqual:.
**/ **/
- (BOOL)isEqualToJID:(XMPPJID *)aJID; - (BOOL)isEqualToJID:(XMPPJID *)aJID;
- (BOOL)isEqualToJID:(XMPPJID *)aJID options:(XMPPJIDCompareOptions)mask;


@end @end
44 changes: 29 additions & 15 deletions Core/XMPPJID.m
Expand Up @@ -361,28 +361,42 @@ - (BOOL)isEqual:(id)anObject
} }


- (BOOL)isEqualToJID:(XMPPJID *)aJID - (BOOL)isEqualToJID:(XMPPJID *)aJID
{
return [self isEqualToJID:aJID options:XMPPJIDCompareFull];
}

- (BOOL)isEqualToJID:(XMPPJID *)aJID options:(XMPPJIDCompareOptions)mask
{ {
if (aJID == nil) return NO; if (aJID == nil) return NO;


if (user) { if (mask & XMPPJIDCompareUser)
if (![user isEqualToString:aJID->user]) return NO; {
} if (user) {
else { if (![user isEqualToString:aJID->user]) return NO;
if (aJID->user) return NO; }
else {
if (aJID->user) return NO;
}
} }


if (domain) { if (mask & XMPPJIDCompareDomain)
if (![domain isEqualToString:aJID->domain]) return NO; {
} if (domain) {
else { if (![domain isEqualToString:aJID->domain]) return NO;
if (aJID->domain) return NO; }
else {
if (aJID->domain) return NO;
}
} }


if (resource) { if (mask & XMPPJIDCompareResource)
if (![resource isEqualToString:aJID->resource]) return NO; {
} if (resource) {
else { if (![resource isEqualToString:aJID->resource]) return NO;
if (aJID->resource) return NO; }
else {
if (aJID->resource) return NO;
}
} }


return YES; return YES;
Expand Down

0 comments on commit d10a11d

Please sign in to comment.