Monotone-Parent: 8ea40d552410068dacd853937f3e093dd5b29756

Monotone-Revision: 3252d3ae419d872510cc6160d8489bad8cfe70fa

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2006-08-09T20:58:00
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2006-08-09 20:58:00 +00:00
parent 3831049f50
commit 325bab8269
3 changed files with 120 additions and 0 deletions

View File

@ -1,3 +1,17 @@
2006-08-09 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* SoObjects/Contacts/NGLdapEntry+Contact.m ([NGLdapEntry
-singleAttributeWithName:key]): new method that returns the first
object associated with an ldap key (where generally one value is
returned by key).
([NGLdapEntry
-asDictionaryWithAttributeNames:attributeNamesandCName:cName]):
map the entry into an NSDictionary for processing by
UIxContactsListViewBase.m with the least possible overhead.
* SoObjects/Contacts/NGLdapEntry+Contact.[hm]: new class
extension.
2006-08-04 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* SoObjects/SOGo/SOGoUserFolder.m ([SOGoUserFolder

View File

@ -0,0 +1,40 @@
/* NGLdapEntry+Contact.h - this file is part of SOGo
*
* Copyright (C) 2006 Inverse groupe conseil
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This file is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#ifndef NGLDAPENTRY_CONTACT_H
#define NGLDAPENTRY_CONTACT_H
#import <NGLdap/NGLdapEntry.h>
@class NSArray;
@class NSDictionary;
@class NSString;
@interface NGLdapEntry (SOGoContactExtension)
- (NSString *) singleAttributeWithName: (NSString *) key;
- (NSDictionary *) asDictionaryWithAttributeNames: (NSArray *) attributes
andCName: (NSString *) cName;
@end
#endif /* NGLDAPENTRY_CONTACT_H */

View File

@ -0,0 +1,66 @@
/* NGLdapEntry+Contact.m - this file is part of SOGo
*
* Copyright (C) 2006 Inverse groupe conseil
*
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This file is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#import <Foundation/NSArray.h>
#import <Foundation/NSDictionary.h>
#import <Foundation/NSString.h>
#import <NGLdap/NGLdapAttribute.h>
#import "NGLdapEntry+Contact.h"
@implementation NGLdapEntry (SOGoContactExtension)
- (NSString *) singleAttributeWithName: (NSString *) key
{
return [[self attributeWithName: key]
stringValueAtIndex: 0];
}
- (NSDictionary *) asDictionaryWithAttributeNames: (NSArray *) attributeNames
andCName: (NSString *) cName
{
NSMutableDictionary *valuesDict;
NSEnumerator *attrEnum;
NSString *attribute;
if (!attributeNames)
attributeNames = [self attributeNames];
valuesDict = [NSMutableDictionary dictionaryWithCapacity: [attributeNames count]];
attrEnum = [attributeNames objectEnumerator];
attribute = [attrEnum nextObject];
while (attribute)
{
[valuesDict setObject: [[self attributeWithName: attribute]
stringValueAtIndex: 0]
forKey: attribute];
attribute = [attrEnum nextObject];
}
[valuesDict setObject: [[self attributeWithName: cName]
stringValueAtIndex: 0]
forKey: @"c_name"];
return valuesDict;
}
@end