From a5838d63b05a24cb8a136dcae175eafe497a8a9e Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Thu, 10 Jul 2008 21:33:12 +0000 Subject: [PATCH] Monotone-Parent: 787c46567335b28e25cd348f6f90eaa1ffd70f30 Monotone-Revision: 16bafd35c923b43175977acf723114a90f37d677 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2008-07-10T21:33:12 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 4 ++++ SoObjects/SOGo/NSString+DAV.h | 1 + SoObjects/SOGo/NSString+DAV.m | 17 +++++++++++++++++ 3 files changed, 22 insertions(+) diff --git a/ChangeLog b/ChangeLog index 4a1d197cd..3d1eab226 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2008-07-10 Wolfgang Sourdeau + * SoObjects/SOGo/NSString+DAV.m ([NSString -asWebDAVTuple]): new + method that parses a webdav tag in the form "{ns:}tag" and returns + a dictionary. + * SoObjects/Appointments/SOGoUserFolder+Appointments.m ([SOGoUserFolder -davPrincipalPropertySearch:queryContext]): new method to answer to "principal-property-search" report. diff --git a/SoObjects/SOGo/NSString+DAV.h b/SoObjects/SOGo/NSString+DAV.h index 068e8f8ba..0292ff940 100644 --- a/SoObjects/SOGo/NSString+DAV.h +++ b/SoObjects/SOGo/NSString+DAV.h @@ -31,6 +31,7 @@ - (NSString *) asWebDavStringWithNamespaces: (NSMutableDictionary *) namespaces; +- (NSDictionary *) asWebDAVTuple; @end diff --git a/SoObjects/SOGo/NSString+DAV.m b/SoObjects/SOGo/NSString+DAV.m index 25d886618..2c0b06073 100644 --- a/SoObjects/SOGo/NSString+DAV.m +++ b/SoObjects/SOGo/NSString+DAV.m @@ -20,6 +20,8 @@ * Boston, MA 02111-1307, USA. */ +#import + #import #import "NSString+DAV.h" @@ -32,4 +34,19 @@ return [self stringByEscapingXMLString]; } +#warning we should use the same nomenclature as the webdav values... +- (NSDictionary *) asWebDAVTuple +{ + NSString *namespace, *nodeName; + NSRange nsEnd; + + nsEnd = [self rangeOfString: @"}"]; + namespace = [self substringFromRange: NSMakeRange (1, nsEnd.location - 1)]; + nodeName = [self substringFromIndex: nsEnd.location + 1]; + + return [NSDictionary dictionaryWithObjectsAndKeys: namespace, @"ns", + nodeName, @"method", nil]; +} + + @end