From cf8c4c482d7311076c4ee673e266a7790af47fd5 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Thu, 22 Jan 2015 10:52:02 -0500 Subject: [PATCH] Add static method in iCalPerson for partstate --- SOPE/NGCards/iCalPerson.h | 2 + SOPE/NGCards/iCalPerson.m | 79 ++++++++++++++++++++++----------------- 2 files changed, 47 insertions(+), 34 deletions(-) diff --git a/SOPE/NGCards/iCalPerson.h b/SOPE/NGCards/iCalPerson.h index 4aac91d14..fbb8e25bd 100644 --- a/SOPE/NGCards/iCalPerson.h +++ b/SOPE/NGCards/iCalPerson.h @@ -44,6 +44,8 @@ typedef enum { @interface iCalPerson : CardElement ++ (NSString *) descriptionForParticipationStatus: (iCalPersonPartStat) _status; + /* accessors */ - (void)setCn:(NSString *)_s; diff --git a/SOPE/NGCards/iCalPerson.m b/SOPE/NGCards/iCalPerson.m index fbcc92570..7904fd0f8 100644 --- a/SOPE/NGCards/iCalPerson.m +++ b/SOPE/NGCards/iCalPerson.m @@ -25,6 +25,48 @@ @implementation iCalPerson ++ (NSString *) descriptionForParticipationStatus: (iCalPersonPartStat) _status +{ + NSString *stat; + + switch (_status) { + case iCalPersonPartStatUndefined: + stat = @""; + break; + case iCalPersonPartStatAccepted: + stat = @"ACCEPTED"; + break; + case iCalPersonPartStatDeclined: + stat = @"DECLINED"; + break; + case iCalPersonPartStatTentative: + stat = @"TENTATIVE"; + break; + case iCalPersonPartStatDelegated: + stat = @"DELEGATED"; + break; + case iCalPersonPartStatCompleted: + stat = @"COMPLETED"; + break; + case iCalPersonPartStatInProcess: + stat = @"IN-PROCESS"; + break; + case iCalPersonPartStatExperimental: + case iCalPersonPartStatOther: +// [NSException raise:NSInternalInconsistencyException +// format:@"Attempt to set meaningless " +// @"participationStatus (%d)!", _status]; + stat = nil; /* keep compiler happy */ + break; + default: + stat = @"NEEDS-ACTION"; + break; + } + + return stat; +} + + /* accessors */ - (void) setCn: (NSString *) _s @@ -132,44 +174,13 @@ { NSString *stat; - switch (_status) { - case iCalPersonPartStatUndefined: - stat = @""; - break; - case iCalPersonPartStatAccepted: - stat = @"ACCEPTED"; - break; - case iCalPersonPartStatDeclined: - stat = @"DECLINED"; - break; - case iCalPersonPartStatTentative: - stat = @"TENTATIVE"; - break; - case iCalPersonPartStatDelegated: - stat = @"DELEGATED"; - break; - case iCalPersonPartStatCompleted: - stat = @"COMPLETED"; - break; - case iCalPersonPartStatInProcess: - stat = @"IN-PROCESS"; - break; - case iCalPersonPartStatExperimental: - case iCalPersonPartStatOther: -// [NSException raise:NSInternalInconsistencyException -// format:@"Attempt to set meaningless " -// @"participationStatus (%d)!", _status]; - stat = nil; /* keep compiler happy */ - break; - default: - stat = @"NEEDS-ACTION"; - break; - } + stat = [iCalPerson descriptionForParticipationStatus: _status]; + if (stat) [self setPartStat:stat]; } -- (iCalPersonPartStat)participationStatus { +- (iCalPersonPartStat) participationStatus { NSString *stat; stat = [[self partStat] uppercaseString];