@@ -40,28 +40,28 @@ #import "namespaces.h" OF_ASSUME_NONNULL_BEGIN @interface XMPPRoster () -- (void)XMPP_updateRosterItem: (XMPPRosterItem *)rosterItem; -- (void)XMPP_handleInitialRosterForConnection: (XMPPConnection *)connection +- (void)xmpp_updateRosterItem: (XMPPRosterItem *)rosterItem; +- (void)xmpp_handleInitialRosterForConnection: (XMPPConnection *)connection IQ: (XMPPIQ *)IQ; -- (XMPPRosterItem *)XMPP_rosterItemWithXMLElement: (OFXMLElement *)element; +- (XMPPRosterItem *)xmpp_rosterItemWithXMLElement: (OFXMLElement *)element; @end OF_ASSUME_NONNULL_END @implementation XMPPRoster @synthesize connection = _connection, dataStorage = _dataStorage; @synthesize rosterItems = _rosterItems; -- init +- (instancetype)init { OF_INVALID_INIT_METHOD } -- initWithConnection: (XMPPConnection *)connection +- (instancetype)initWithConnection: (XMPPConnection *)connection { self = [super init]; @try { _rosterItems = [[OFMutableDictionary alloc] init]; @@ -112,11 +112,11 @@ [iq addChild: query]; [_connection sendIQ: iq callbackTarget: self - selector: @selector(XMPP_handleInitialRosterForConnection: + selector: @selector(xmpp_handleInitialRosterForConnection: IQ:)]; } - (bool)connection: (XMPPConnection *)connection didReceiveIQ: (XMPPIQ *)IQ @@ -142,18 +142,18 @@ element = [rosterElement elementForName: @"item" namespace: XMPP_NS_ROSTER]; if (element != nil) { - rosterItem = [self XMPP_rosterItemWithXMLElement: element]; + rosterItem = [self xmpp_rosterItemWithXMLElement: element]; [_delegates broadcastSelector: @selector( roster:didReceiveRosterItem:) withObject: self withObject: rosterItem]; - [self XMPP_updateRosterItem: rosterItem]; + [self xmpp_updateRosterItem: rosterItem]; } if ([_connection supportsRosterVersioning]) { OFString *ver = [[rosterElement attributeForName: @"ver"] stringValue]; @@ -178,21 +178,18 @@ ID: [_connection generateStanzaID]]; OFXMLElement *query = [OFXMLElement elementWithName: @"query" namespace: XMPP_NS_ROSTER]; OFXMLElement *item = [OFXMLElement elementWithName: @"item" namespace: XMPP_NS_ROSTER]; - OFEnumerator *enumerator; - OFString *group; [item addAttributeWithName: @"jid" stringValue: [[rosterItem JID] bareJID]]; if ([rosterItem name] != nil) [item addAttributeWithName: @"name" stringValue: [rosterItem name]]; - enumerator = [[rosterItem groups] objectEnumerator]; - while ((group = [enumerator nextObject]) != nil) + for (OFString *group in [rosterItem groups]) [item addChild: [OFXMLElement elementWithName: @"group" namespace: XMPP_NS_ROSTER stringValue: group]]; [query addChild: item]; @@ -238,11 +235,11 @@ @throw [OFInvalidArgumentException exception]; _dataStorage = dataStorage; } -- (void)XMPP_updateRosterItem: (XMPPRosterItem *)rosterItem +- (void)xmpp_updateRosterItem: (XMPPRosterItem *)rosterItem { if ([_connection supportsRosterVersioning]) { OFMutableDictionary *items = [[[_dataStorage dictionaryForPath: @"roster.items"] mutableCopy] autorelease]; @@ -278,15 +275,13 @@ forKey: [[rosterItem JID] bareJID]]; else [_rosterItems removeObjectForKey: [[rosterItem JID] bareJID]]; } -- (XMPPRosterItem *)XMPP_rosterItemWithXMLElement: (OFXMLElement *)element +- (XMPPRosterItem *)xmpp_rosterItemWithXMLElement: (OFXMLElement *)element { OFString *subscription; - OFEnumerator *groupEnumerator; - OFXMLElement *groupElement; OFMutableArray *groups = [OFMutableArray array]; XMPPRosterItem *rosterItem = [XMPPRosterItem rosterItem]; [rosterItem setJID: [XMPPJID JIDWithString: [[element attributeForName: @"jid"] stringValue]]]; [rosterItem setName: @@ -302,36 +297,31 @@ ![subscription isEqual: @"remove"]) subscription = @"none"; [rosterItem setSubscription: subscription]; - groupEnumerator = [[element - elementsForName: @"group" - namespace: XMPP_NS_ROSTER] objectEnumerator]; - while ((groupElement = [groupEnumerator nextObject]) != nil) + for (OFXMLElement *groupElement in + [element elementsForName: @"group" + namespace: XMPP_NS_ROSTER]) [groups addObject: [groupElement stringValue]]; if ([groups count] > 0) [rosterItem setGroups: groups]; return rosterItem; } -- (void)XMPP_handleInitialRosterForConnection: (XMPPConnection *)connection +- (void)xmpp_handleInitialRosterForConnection: (XMPPConnection *)connection IQ: (XMPPIQ *)IQ { OFXMLElement *rosterElement = [IQ elementForName: @"query" namespace: XMPP_NS_ROSTER]; if ([connection supportsRosterVersioning]) { if (rosterElement == nil) { - OFDictionary *items = [_dataStorage - dictionaryForPath: @"roster.items"]; - OFEnumerator *enumerator = [items objectEnumerator]; - OFDictionary *item; - - while ((item = [enumerator nextObject]) != nil) { + for (OFDictionary *item in + [_dataStorage dictionaryForPath: @"roster.items"]) { XMPPRosterItem *rosterItem; XMPPJID *JID; rosterItem = [XMPPRosterItem rosterItem]; JID = [XMPPJID JIDWithString: @@ -358,13 +348,13 @@ if (![[element name] isEqual: @"item"] || ![[element namespace] isEqual: XMPP_NS_ROSTER]) continue; - rosterItem = [self XMPP_rosterItemWithXMLElement: element]; + rosterItem = [self xmpp_rosterItemWithXMLElement: element]; - [self XMPP_updateRosterItem: rosterItem]; + [self xmpp_updateRosterItem: rosterItem]; objc_autoreleasePoolPop(pool); } if ([connection supportsRosterVersioning] && rosterElement != nil) {