-
Notifications
You must be signed in to change notification settings - Fork 0
/
BNGrowlProjectStatusWrapper.m
60 lines (49 loc) · 2.37 KB
/
BNGrowlProjectStatusWrapper.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//
// BNGrowlProjectStatusWrapper.m
// Flare
//
// Created by Nick Paulson on 7/29/10.
// Copyright 2010 Linebreak. All rights reserved.
//
#import "BNGrowlProjectStatusWrapper.h"
@interface BNGrowlProjectStatusWrapper ()
@property (retain, readwrite) BNProject *project;
@property (retain, readwrite) BNStatus *status;
@property (assign, readwrite, getter=isSingleStatus) BOOL singleStatus;
@end
static NSString * const BNGrowlProjectStatusWrapperProjectKey = @"BNGrowlProjectStatusWrapperProjectKey";
static NSString * const BNGrowlProjectStatusWrapperStatusKey = @"BNGrowlProjectStatusWrapperStatusKey";
static NSString * const BNGrowlProjectStatusWrapperSingleStatusKey = @"BNGrowlProjectStatusWrapperSingleStatusKey";
@implementation BNGrowlProjectStatusWrapper
@synthesize project, status, singleStatus;
- (id)initWithProject:(BNProject *)aProject status:(BNStatus *)aStatus singleStatus:(BOOL)isSingle {
if (self = [super init]) {
self.project = aProject;
self.status = aStatus;
self.singleStatus = isSingle;
}
return self;
}
+ (BNGrowlProjectStatusWrapper *)wrapperWithProject:(BNProject *)aProject status:(BNStatus *)aStatus singleStatus:(BOOL)isSingle {
return [[[[self class] alloc] initWithProject:aProject status:aStatus singleStatus:isSingle] autorelease];
}
- (id)initWithPropertyList:(NSDictionary *)propList {
BNProject *theProject = [NSKeyedUnarchiver unarchiveObjectWithData:[propList objectForKey:BNGrowlProjectStatusWrapperProjectKey]];
BNStatus *theStatus = [NSKeyedUnarchiver unarchiveObjectWithData:[propList objectForKey:BNGrowlProjectStatusWrapperStatusKey]];
BOOL single = [[propList objectForKey:BNGrowlProjectStatusWrapperSingleStatusKey] boolValue];
return [self initWithProject:theProject status:theStatus singleStatus:single];
}
+ (BNGrowlProjectStatusWrapper *)wrapperWithPropertyList:(NSDictionary *)propList {
return [[[[self class] alloc] initWithPropertyList:propList] autorelease];
}
- (NSDictionary *)propertyListRepresentation {
return [NSDictionary dictionaryWithObjectsAndKeys:[NSKeyedArchiver archivedDataWithRootObject:self.project], BNGrowlProjectStatusWrapperProjectKey,
[NSKeyedArchiver archivedDataWithRootObject:self.status], BNGrowlProjectStatusWrapperStatusKey,
[NSNumber numberWithBool:self.singleStatus], BNGrowlProjectStatusWrapperSingleStatusKey, nil];
}
- (void)dealloc {
self.project = nil;
self.status = nil;
[super dealloc];
}
@end