@@ -19,11 +19,10 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #import "XMPPRoster.h" -#import "XMPPRoster_private.h" #import "XMPPRosterItem.h" #import "XMPPConnection.h" #import "XMPPIQ.h" #import "XMPPJID.h" @@ -50,12 +49,16 @@ [super dealloc]; } - (void)XMPP_addRosterItem: (XMPPRosterItem*)rosterItem { - if (rosterItem.groups.count > 0) { - for (OFString *group in rosterItem.groups) { + if ([[rosterItem groups] count] > 0) { + OFEnumerator *enumerator; + OFString *group; + + enumerator = [[rosterItem groups] objectEnumerator]; + while ((group = [enumerator nextObject]) != nil) { OFMutableArray *rosterGroup = [groups objectForKey: group]; if (rosterGroup == nil) { rosterGroup = [OFMutableArray array]; @@ -79,12 +82,15 @@ } - (OFArray*)groups { OFMutableArray *ret = [OFMutableArray array]; + OFEnumerator *enumerator; + OFString *group; - for (OFString *group in groups) + enumerator = [groups keyEnumerator]; + while ((group = [enumerator nextObject]) != nil) [ret addObject: group]; ret->isa = [OFArray class]; return ret; } @@ -108,18 +114,21 @@ 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) + stringValue: [[rosterItem JID] bareJID]]; + if ([rosterItem name] != nil) [item addAttributeWithName: @"name" - stringValue: rosterItem.name]; + stringValue: [rosterItem name]]; - for (OFString *group in rosterItem.groups) + enumerator = [[rosterItem groups] objectEnumerator]; + while ((group = [enumerator nextObject]) != nil) [item addChild: [OFXMLElement elementWithName: @"group" namespace: XMPP_NS_ROSTER stringValue: group]]; [query addChild: item]; @@ -136,15 +145,15 @@ namespace: XMPP_NS_ROSTER]; OFXMLElement *item = [OFXMLElement elementWithName: @"item" namespace: XMPP_NS_ROSTER]; [item addAttributeWithName: @"jid" - stringValue: rosterItem.JID.bareJID]; + stringValue: [[rosterItem JID] bareJID]]; [item addAttributeWithName: @"subscription" stringValue: @"remove"]; [query addChild: item]; [iq addChild: query]; [connection sendStanza: iq]; } @end