root / Classes / Folder.m @ f474d3f4
History | View | Annotate | Download (10.2 kB)
1 | 700184fb | Miltiadis Vasilakis | // |
---|---|---|---|
2 | 700184fb | Miltiadis Vasilakis | // Folder.m |
3 | 700184fb | Miltiadis Vasilakis | // OpenStack |
4 | 700184fb | Miltiadis Vasilakis | // |
5 | 700184fb | Miltiadis Vasilakis | // Created by Mike Mayo on 12/7/10. |
6 | 700184fb | Miltiadis Vasilakis | // The OpenStack project is provided under the Apache 2.0 license. |
7 | 700184fb | Miltiadis Vasilakis | // |
8 | 700184fb | Miltiadis Vasilakis | |
9 | 700184fb | Miltiadis Vasilakis | #import "Folder.h" |
10 | 700184fb | Miltiadis Vasilakis | #import "StorageObject.h" |
11 | 700184fb | Miltiadis Vasilakis | #import "NSObject+NSCoding.h" |
12 | 45f2fce6 | Miltiadis Vasilakis | #import "PithosUtilities.h" |
13 | 700184fb | Miltiadis Vasilakis | |
14 | 700184fb | Miltiadis Vasilakis | @implementation Folder |
15 | 700184fb | Miltiadis Vasilakis | |
16 | 2106f96c | Miltiadis Vasilakis | @synthesize folderObject, parent, objects, folders, objectsAndFoldersCount; |
17 | 2106f96c | Miltiadis Vasilakis | @synthesize name, sharing, contentType, lastModifiedString, metadata; |
18 | f474d3f4 | Miltiadis Vasilakis | @synthesize sortedContentsByName, sortedContentsByDate; |
19 | 700184fb | Miltiadis Vasilakis | |
20 | 98344a26 | Miltiadis Vasilakis | #pragma mark - Object lifecycle |
21 | 700184fb | Miltiadis Vasilakis | |
22 | 2106f96c | Miltiadis Vasilakis | - (id)initWithObject:(StorageObject *)anObject { |
23 | 98344a26 | Miltiadis Vasilakis | if ((self = [super init])) { |
24 | 2106f96c | Miltiadis Vasilakis | self.folderObject = anObject; |
25 | 2106f96c | Miltiadis Vasilakis | self.objects = [NSMutableDictionary dictionary]; |
26 | 2106f96c | Miltiadis Vasilakis | self.folders = [NSMutableDictionary dictionary]; |
27 | 700184fb | Miltiadis Vasilakis | } |
28 | 700184fb | Miltiadis Vasilakis | return self; |
29 | 700184fb | Miltiadis Vasilakis | } |
30 | 700184fb | Miltiadis Vasilakis | |
31 | 2106f96c | Miltiadis Vasilakis | - (id)init { |
32 | 2106f96c | Miltiadis Vasilakis | StorageObject *anObject = [[[StorageObject alloc] init] autorelease]; |
33 | 2106f96c | Miltiadis Vasilakis | return [self initWithObject:anObject]; |
34 | 2106f96c | Miltiadis Vasilakis | } |
35 | 2106f96c | Miltiadis Vasilakis | |
36 | 2106f96c | Miltiadis Vasilakis | + (id)folderWithObject:(StorageObject *)anObject { |
37 | 2106f96c | Miltiadis Vasilakis | return [[[self alloc] initWithObject:anObject] autorelease]; |
38 | 2106f96c | Miltiadis Vasilakis | } |
39 | 2106f96c | Miltiadis Vasilakis | |
40 | 98344a26 | Miltiadis Vasilakis | + (id)folder { |
41 | 98344a26 | Miltiadis Vasilakis | return [[[self alloc] init] autorelease]; |
42 | 98344a26 | Miltiadis Vasilakis | } |
43 | 98344a26 | Miltiadis Vasilakis | |
44 | f474d3f4 | Miltiadis Vasilakis | - (NSComparisonResult)compareByName:(id)item { |
45 | f474d3f4 | Miltiadis Vasilakis | return [self.name caseInsensitiveCompare:[item name]]; |
46 | f474d3f4 | Miltiadis Vasilakis | } |
47 | f474d3f4 | Miltiadis Vasilakis | |
48 | f474d3f4 | Miltiadis Vasilakis | - (NSComparisonResult)compareByDate:(id)item { |
49 | f474d3f4 | Miltiadis Vasilakis | return [self.lastModifiedString caseInsensitiveCompare:[item lastModifiedString]]; |
50 | 700184fb | Miltiadis Vasilakis | } |
51 | 700184fb | Miltiadis Vasilakis | |
52 | 98344a26 | Miltiadis Vasilakis | #pragma mark - Serialization |
53 | 98344a26 | Miltiadis Vasilakis | |
54 | 700184fb | Miltiadis Vasilakis | - (id)initWithCoder:(NSCoder *)coder { |
55 | 98344a26 | Miltiadis Vasilakis | if ((self = [super init])) { |
56 | 700184fb | Miltiadis Vasilakis | [self autoDecode:coder]; |
57 | 700184fb | Miltiadis Vasilakis | } |
58 | 700184fb | Miltiadis Vasilakis | return self; |
59 | 700184fb | Miltiadis Vasilakis | } |
60 | 700184fb | Miltiadis Vasilakis | |
61 | 98344a26 | Miltiadis Vasilakis | - (void)encodeWithCoder:(NSCoder *)coder { |
62 | 98344a26 | Miltiadis Vasilakis | [self autoEncodeWithCoder:coder]; |
63 | 98344a26 | Miltiadis Vasilakis | } |
64 | 98344a26 | Miltiadis Vasilakis | |
65 | 98344a26 | Miltiadis Vasilakis | #pragma mark - Memory management |
66 | 98344a26 | Miltiadis Vasilakis | |
67 | 98344a26 | Miltiadis Vasilakis | -(void)dealloc { |
68 | 2106f96c | Miltiadis Vasilakis | [folderObject release]; |
69 | 98344a26 | Miltiadis Vasilakis | [parent release]; |
70 | 98344a26 | Miltiadis Vasilakis | [folders release]; |
71 | 98344a26 | Miltiadis Vasilakis | [objects release]; |
72 | f474d3f4 | Miltiadis Vasilakis | [sortedContentsByName release]; |
73 | f474d3f4 | Miltiadis Vasilakis | [sortedContentsByDate release]; |
74 | 98344a26 | Miltiadis Vasilakis | [super dealloc]; |
75 | 98344a26 | Miltiadis Vasilakis | } |
76 | 98344a26 | Miltiadis Vasilakis | |
77 | 98344a26 | Miltiadis Vasilakis | #pragma mark - Properties |
78 | 700184fb | Miltiadis Vasilakis | |
79 | 2106f96c | Miltiadis Vasilakis | - (void)setName:(NSString *)aName { |
80 | 2106f96c | Miltiadis Vasilakis | self.folderObject.name = aName; |
81 | 2106f96c | Miltiadis Vasilakis | } |
82 | 2106f96c | Miltiadis Vasilakis | |
83 | 2106f96c | Miltiadis Vasilakis | - (NSString *)name { |
84 | 2106f96c | Miltiadis Vasilakis | return self.folderObject.name; |
85 | 2106f96c | Miltiadis Vasilakis | } |
86 | 2106f96c | Miltiadis Vasilakis | |
87 | 2106f96c | Miltiadis Vasilakis | - (void)setSharing:(NSString *)aSharing { |
88 | 2106f96c | Miltiadis Vasilakis | self.folderObject.sharing = aSharing; |
89 | 2106f96c | Miltiadis Vasilakis | } |
90 | 2106f96c | Miltiadis Vasilakis | |
91 | 2106f96c | Miltiadis Vasilakis | - (NSString *)sharing { |
92 | 2106f96c | Miltiadis Vasilakis | return self.folderObject.sharing; |
93 | 2106f96c | Miltiadis Vasilakis | } |
94 | 2106f96c | Miltiadis Vasilakis | |
95 | 2106f96c | Miltiadis Vasilakis | - (void)setContentType:(NSString *)aContentType { |
96 | 2106f96c | Miltiadis Vasilakis | self.folderObject.contentType = aContentType; |
97 | 2106f96c | Miltiadis Vasilakis | } |
98 | 2106f96c | Miltiadis Vasilakis | |
99 | 2106f96c | Miltiadis Vasilakis | - (NSString *)contentType { |
100 | 2106f96c | Miltiadis Vasilakis | return self.folderObject.contentType; |
101 | 2106f96c | Miltiadis Vasilakis | } |
102 | 2106f96c | Miltiadis Vasilakis | |
103 | 2106f96c | Miltiadis Vasilakis | - (void)setMetadata:(NSMutableDictionary *)aMetadata { |
104 | 2106f96c | Miltiadis Vasilakis | self.folderObject.metadata = aMetadata; |
105 | 2106f96c | Miltiadis Vasilakis | } |
106 | 2106f96c | Miltiadis Vasilakis | |
107 | 2106f96c | Miltiadis Vasilakis | - (NSMutableDictionary *)metadata { |
108 | 2106f96c | Miltiadis Vasilakis | return self.folderObject.metadata; |
109 | 2106f96c | Miltiadis Vasilakis | } |
110 | 2106f96c | Miltiadis Vasilakis | |
111 | 2106f96c | Miltiadis Vasilakis | - (void)setLastModifiedString:(NSString *)aLastModifiedString { |
112 | 2106f96c | Miltiadis Vasilakis | self.folderObject.lastModifiedString = aLastModifiedString; |
113 | 2106f96c | Miltiadis Vasilakis | } |
114 | 2106f96c | Miltiadis Vasilakis | |
115 | 2106f96c | Miltiadis Vasilakis | - (NSString *)lastModifiedString { |
116 | 2106f96c | Miltiadis Vasilakis | return self.folderObject.lastModifiedString; |
117 | 2106f96c | Miltiadis Vasilakis | } |
118 | 2106f96c | Miltiadis Vasilakis | |
119 | 700184fb | Miltiadis Vasilakis | - (void)setObjects:(NSMutableDictionary *)objs { |
120 | 98344a26 | Miltiadis Vasilakis | if (![objects isEqualToDictionary:objs]) { |
121 | e06c24cf | Miltiadis Vasilakis | [objects release]; |
122 | 98344a26 | Miltiadis Vasilakis | NSMutableDictionary *folderedFiles = [NSMutableDictionary dictionary]; |
123 | 98344a26 | Miltiadis Vasilakis | NSMutableDictionary *files = [NSMutableDictionary dictionary]; |
124 | 98344a26 | Miltiadis Vasilakis | self.folders = [[NSMutableDictionary alloc] init]; |
125 | 700184fb | Miltiadis Vasilakis | |
126 | 700184fb | Miltiadis Vasilakis | for (NSString *key in objs) { |
127 | 700184fb | Miltiadis Vasilakis | StorageObject *object = [objs objectForKey:key]; |
128 | 45f2fce6 | Miltiadis Vasilakis | BOOL objectHasTrailingSlash = NO; |
129 | 45f2fce6 | Miltiadis Vasilakis | if ([object.name hasSuffix:@"/"]) { |
130 | 45f2fce6 | Miltiadis Vasilakis | objectHasTrailingSlash = YES; |
131 | 45f2fce6 | Miltiadis Vasilakis | object.name = [object.name substringToIndex:(object.name.length - 1)]; |
132 | 45f2fce6 | Miltiadis Vasilakis | } |
133 | 45f2fce6 | Miltiadis Vasilakis | |
134 | 98344a26 | Miltiadis Vasilakis | NSRange slashRange = [object.name rangeOfString:@"/"]; |
135 | 98344a26 | Miltiadis Vasilakis | if (slashRange.location != NSNotFound) { |
136 | 700184fb | Miltiadis Vasilakis | // build up the folder structure |
137 | 98344a26 | Miltiadis Vasilakis | NSString *folderName = [object.name substringToIndex:slashRange.location]; |
138 | 98344a26 | Miltiadis Vasilakis | object.name = [object.name substringFromIndex:(slashRange.location + 1)]; |
139 | 45f2fce6 | Miltiadis Vasilakis | if (objectHasTrailingSlash) |
140 | 45f2fce6 | Miltiadis Vasilakis | object.name = [object.name stringByAppendingString:@"/"]; |
141 | 700184fb | Miltiadis Vasilakis | |
142 | 700184fb | Miltiadis Vasilakis | if (![folderedFiles objectForKey:folderName]) { |
143 | e06c24cf | Miltiadis Vasilakis | [folderedFiles setObject:[NSMutableDictionary dictionary] forKey:folderName]; |
144 | 700184fb | Miltiadis Vasilakis | } |
145 | 700184fb | Miltiadis Vasilakis | |
146 | 45f2fce6 | Miltiadis Vasilakis | NSMutableDictionary *folderFiles = [folderedFiles objectForKey:folderName]; |
147 | 45f2fce6 | Miltiadis Vasilakis | [folderFiles setObject:object forKey:object.name]; |
148 | 45f2fce6 | Miltiadis Vasilakis | } else if ([PithosUtilities isContentTypeDirectory:object.contentType]) { |
149 | 2106f96c | Miltiadis Vasilakis | Folder *folder = [Folder folderWithObject:object]; |
150 | 45f2fce6 | Miltiadis Vasilakis | if (objectHasTrailingSlash) |
151 | 2106f96c | Miltiadis Vasilakis | folder.name = [folder.name stringByAppendingString:@"/"]; |
152 | 700184fb | Miltiadis Vasilakis | folder.parent = self; |
153 | 700184fb | Miltiadis Vasilakis | [self.folders setObject:folder forKey:folder.name]; |
154 | 700184fb | Miltiadis Vasilakis | } else { |
155 | 45f2fce6 | Miltiadis Vasilakis | // put the files in this folder |
156 | 45f2fce6 | Miltiadis Vasilakis | if (objectHasTrailingSlash) |
157 | 45f2fce6 | Miltiadis Vasilakis | object.name = [object.name stringByAppendingString:@"/"]; |
158 | 700184fb | Miltiadis Vasilakis | [files setObject:object forKey:object.name]; |
159 | 700184fb | Miltiadis Vasilakis | } |
160 | 700184fb | Miltiadis Vasilakis | } |
161 | 700184fb | Miltiadis Vasilakis | |
162 | 700184fb | Miltiadis Vasilakis | // take the foldered files and recursively build the rest of the folder structure |
163 | 98344a26 | Miltiadis Vasilakis | for (NSString *folderName in [folderedFiles allKeys]) { |
164 | 2106f96c | Miltiadis Vasilakis | Folder *folder; |
165 | 38d59b6c | Miltiadis Vasilakis | StorageObject *object = [objs objectForKey:folderName]; |
166 | 98344a26 | Miltiadis Vasilakis | if (object && [PithosUtilities isContentTypeDirectory:object.contentType]) { |
167 | 2106f96c | Miltiadis Vasilakis | folder = [Folder folderWithObject:object]; |
168 | 2989bee3 | Miltiadis Vasilakis | } else { |
169 | 2106f96c | Miltiadis Vasilakis | folder = [Folder folder]; |
170 | 2106f96c | Miltiadis Vasilakis | folder.name = folderName; |
171 | 2989bee3 | Miltiadis Vasilakis | folder.metadata = [NSMutableDictionary dictionary]; |
172 | 45f2fce6 | Miltiadis Vasilakis | } |
173 | 2106f96c | Miltiadis Vasilakis | folder.parent = self; |
174 | 2106f96c | Miltiadis Vasilakis | folder.objects = [folderedFiles objectForKey:folderName]; |
175 | 700184fb | Miltiadis Vasilakis | [self.folders setObject:folder forKey:folder.name]; |
176 | 700184fb | Miltiadis Vasilakis | } |
177 | 700184fb | Miltiadis Vasilakis | |
178 | 98344a26 | Miltiadis Vasilakis | objects = [files retain]; |
179 | f474d3f4 | Miltiadis Vasilakis | [sortedContentsByName release]; |
180 | f474d3f4 | Miltiadis Vasilakis | sortedContentsByName = nil; |
181 | f474d3f4 | Miltiadis Vasilakis | [sortedContentsByDate release]; |
182 | f474d3f4 | Miltiadis Vasilakis | sortedContentsByDate = nil; |
183 | f474d3f4 | Miltiadis Vasilakis | } |
184 | f474d3f4 | Miltiadis Vasilakis | } |
185 | f474d3f4 | Miltiadis Vasilakis | |
186 | f474d3f4 | Miltiadis Vasilakis | - (NSArray *)sortedContentsByName { |
187 | f474d3f4 | Miltiadis Vasilakis | if (!sortedContentsByName) { |
188 | f474d3f4 | Miltiadis Vasilakis | NSMutableArray *contents = [[NSMutableArray alloc] initWithArray:[self.folders allValues]]; |
189 | f474d3f4 | Miltiadis Vasilakis | [contents addObjectsFromArray:[self.objects allValues]]; |
190 | f474d3f4 | Miltiadis Vasilakis | sortedContentsByName = [[NSArray alloc] initWithArray:[contents sortedArrayUsingSelector:@selector(compareByName:)]]; |
191 | 700184fb | Miltiadis Vasilakis | } |
192 | f474d3f4 | Miltiadis Vasilakis | return sortedContentsByName; |
193 | 700184fb | Miltiadis Vasilakis | } |
194 | 700184fb | Miltiadis Vasilakis | |
195 | f474d3f4 | Miltiadis Vasilakis | - (NSArray *)sortedContentsByDate { |
196 | f474d3f4 | Miltiadis Vasilakis | if (!sortedContentsByDate) { |
197 | 98344a26 | Miltiadis Vasilakis | NSMutableArray *contents = [[NSMutableArray alloc] initWithArray:[self.folders allValues]]; |
198 | 98344a26 | Miltiadis Vasilakis | [contents addObjectsFromArray:[self.objects allValues]]; |
199 | f474d3f4 | Miltiadis Vasilakis | sortedContentsByDate = [[NSArray alloc] initWithArray:[contents sortedArrayUsingSelector:@selector(compareByDate:)]]; |
200 | 700184fb | Miltiadis Vasilakis | } |
201 | f474d3f4 | Miltiadis Vasilakis | return sortedContentsByDate; |
202 | 700184fb | Miltiadis Vasilakis | } |
203 | 700184fb | Miltiadis Vasilakis | |
204 | a20544e8 | Miltiadis Vasilakis | - (NSUInteger)objectsAndFoldersCount { |
205 | a20544e8 | Miltiadis Vasilakis | return (self.objects.count + self.folders.count); |
206 | a20544e8 | Miltiadis Vasilakis | } |
207 | a20544e8 | Miltiadis Vasilakis | |
208 | 98344a26 | Miltiadis Vasilakis | #pragma mark - Actions |
209 | 700184fb | Miltiadis Vasilakis | |
210 | f474d3f4 | Miltiadis Vasilakis | - (NSArray *)sortedContentsUsingFilter:(NSString *)filter scope:(NSString *)scope |
211 | f474d3f4 | Miltiadis Vasilakis | sortType:(NSString *)sortType sortDirection:(NSString *)sortDirection { |
212 | f474d3f4 | Miltiadis Vasilakis | NSArray *sortedContents = nil; |
213 | f474d3f4 | Miltiadis Vasilakis | if ([sortType isEqualToString:@"date"]) { |
214 | f474d3f4 | Miltiadis Vasilakis | sortedContents = self.sortedContentsByDate; |
215 | f474d3f4 | Miltiadis Vasilakis | } else { |
216 | f474d3f4 | Miltiadis Vasilakis | sortedContents = self.sortedContentsByName; |
217 | f474d3f4 | Miltiadis Vasilakis | } |
218 | f474d3f4 | Miltiadis Vasilakis | if ([sortDirection isEqualToString:@"Z-A"]) { |
219 | f474d3f4 | Miltiadis Vasilakis | sortedContents = [[sortedContents reverseObjectEnumerator] allObjects]; |
220 | f474d3f4 | Miltiadis Vasilakis | } |
221 | f474d3f4 | Miltiadis Vasilakis | if (!filter || !filter.length) { |
222 | f474d3f4 | Miltiadis Vasilakis | return sortedContents; |
223 | f474d3f4 | Miltiadis Vasilakis | } |
224 | f474d3f4 | Miltiadis Vasilakis | return [sortedContents objectsAtIndexes: |
225 | f474d3f4 | Miltiadis Vasilakis | [[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, sortedContents.count)] indexesPassingTest:^(NSUInteger idx, BOOL *stop) { |
226 | f474d3f4 | Miltiadis Vasilakis | id item = [sortedContents objectAtIndex:idx]; |
227 | 2106f96c | Miltiadis Vasilakis | if ([scope isEqualToString:@"name"] || [scope isEqualToString:@"all"]) { |
228 | 2106f96c | Miltiadis Vasilakis | NSString *itemName = [item name]; |
229 | 2106f96c | Miltiadis Vasilakis | if (itemName) { |
230 | 2106f96c | Miltiadis Vasilakis | NSUInteger nameLocation = [itemName rangeOfString:filter |
231 | 2106f96c | Miltiadis Vasilakis | options:NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch].location; |
232 | 2106f96c | Miltiadis Vasilakis | if (nameLocation != NSNotFound) |
233 | 2106f96c | Miltiadis Vasilakis | return YES; |
234 | 2106f96c | Miltiadis Vasilakis | } |
235 | 2106f96c | Miltiadis Vasilakis | } |
236 | 2106f96c | Miltiadis Vasilakis | if ([scope isEqualToString:@"date"] || [scope isEqualToString:@"all"]) { |
237 | 2106f96c | Miltiadis Vasilakis | NSString *itemDate = [item lastModifiedString]; |
238 | 2106f96c | Miltiadis Vasilakis | if (itemDate) { |
239 | 2106f96c | Miltiadis Vasilakis | NSUInteger dateLocation = [itemDate rangeOfString:filter |
240 | 2106f96c | Miltiadis Vasilakis | options:NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch].location; |
241 | 2106f96c | Miltiadis Vasilakis | if (dateLocation != NSNotFound) |
242 | 2106f96c | Miltiadis Vasilakis | return YES; |
243 | 2106f96c | Miltiadis Vasilakis | } |
244 | 2106f96c | Miltiadis Vasilakis | } |
245 | 2106f96c | Miltiadis Vasilakis | if ([scope isEqualToString:@"type"] || [scope isEqualToString:@"all"]) { |
246 | 2106f96c | Miltiadis Vasilakis | NSString *itemType = [item contentType]; |
247 | 2106f96c | Miltiadis Vasilakis | if (itemType) { |
248 | 2106f96c | Miltiadis Vasilakis | NSUInteger typeLocation = [itemType rangeOfString:filter |
249 | 2106f96c | Miltiadis Vasilakis | options:NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch].location; |
250 | 2106f96c | Miltiadis Vasilakis | if (typeLocation != NSNotFound) |
251 | 2106f96c | Miltiadis Vasilakis | return YES; |
252 | 2106f96c | Miltiadis Vasilakis | } |
253 | 2106f96c | Miltiadis Vasilakis | } |
254 | 2106f96c | Miltiadis Vasilakis | // Consider searching additional metadata when the scope is all |
255 | 2106f96c | Miltiadis Vasilakis | return NO; |
256 | 2106f96c | Miltiadis Vasilakis | }]]; |
257 | 2106f96c | Miltiadis Vasilakis | } |
258 | 2106f96c | Miltiadis Vasilakis | |
259 | 700184fb | Miltiadis Vasilakis | - (NSString *)fullPath { |
260 | 98344a26 | Miltiadis Vasilakis | if (self.parent) { |
261 | 98344a26 | Miltiadis Vasilakis | return [[self.parent fullPath] stringByAppendingFormat:@"/%@", self.name]; |
262 | 98344a26 | Miltiadis Vasilakis | } else if (self.name) { |
263 | 98344a26 | Miltiadis Vasilakis | return self.name; |
264 | 98344a26 | Miltiadis Vasilakis | } else { |
265 | 98344a26 | Miltiadis Vasilakis | return @""; |
266 | 700184fb | Miltiadis Vasilakis | } |
267 | 700184fb | Miltiadis Vasilakis | } |
268 | 700184fb | Miltiadis Vasilakis | |
269 | a20544e8 | Miltiadis Vasilakis | - (void)addFolder:(Folder *)aFolder { |
270 | a20544e8 | Miltiadis Vasilakis | [self.folders setObject:aFolder forKey:aFolder.name]; |
271 | f474d3f4 | Miltiadis Vasilakis | [sortedContentsByName release]; |
272 | f474d3f4 | Miltiadis Vasilakis | sortedContentsByName = nil; |
273 | f474d3f4 | Miltiadis Vasilakis | [sortedContentsByDate release]; |
274 | f474d3f4 | Miltiadis Vasilakis | sortedContentsByDate = nil; |
275 | a20544e8 | Miltiadis Vasilakis | } |
276 | a20544e8 | Miltiadis Vasilakis | |
277 | a20544e8 | Miltiadis Vasilakis | - (void)addObject:(StorageObject *)anObject { |
278 | a20544e8 | Miltiadis Vasilakis | [self.objects setObject:anObject forKey:anObject.name]; |
279 | f474d3f4 | Miltiadis Vasilakis | [sortedContentsByName release]; |
280 | f474d3f4 | Miltiadis Vasilakis | sortedContentsByName = nil; |
281 | f474d3f4 | Miltiadis Vasilakis | [sortedContentsByDate release]; |
282 | f474d3f4 | Miltiadis Vasilakis | sortedContentsByDate = nil; |
283 | a20544e8 | Miltiadis Vasilakis | } |
284 | a20544e8 | Miltiadis Vasilakis | |
285 | a20544e8 | Miltiadis Vasilakis | - (void)removeFolder:(Folder *)aFolder { |
286 | a20544e8 | Miltiadis Vasilakis | if ([self.folders objectForKey:aFolder.name]) { |
287 | a20544e8 | Miltiadis Vasilakis | [self.folders removeObjectForKey:aFolder.name]; |
288 | f474d3f4 | Miltiadis Vasilakis | [sortedContentsByName release]; |
289 | f474d3f4 | Miltiadis Vasilakis | sortedContentsByName = nil; |
290 | f474d3f4 | Miltiadis Vasilakis | [sortedContentsByDate release]; |
291 | f474d3f4 | Miltiadis Vasilakis | sortedContentsByDate = nil; |
292 | a20544e8 | Miltiadis Vasilakis | } |
293 | a20544e8 | Miltiadis Vasilakis | } |
294 | a20544e8 | Miltiadis Vasilakis | |
295 | a20544e8 | Miltiadis Vasilakis | - (void)removeObject:(StorageObject *)anObject { |
296 | a20544e8 | Miltiadis Vasilakis | if ([self.objects objectForKey:anObject.name]) { |
297 | a20544e8 | Miltiadis Vasilakis | [self.objects removeObjectForKey:anObject.name]; |
298 | f474d3f4 | Miltiadis Vasilakis | [sortedContentsByName release]; |
299 | f474d3f4 | Miltiadis Vasilakis | sortedContentsByName = nil; |
300 | f474d3f4 | Miltiadis Vasilakis | [sortedContentsByDate release]; |
301 | f474d3f4 | Miltiadis Vasilakis | sortedContentsByDate = nil; |
302 | a20544e8 | Miltiadis Vasilakis | } |
303 | a20544e8 | Miltiadis Vasilakis | } |
304 | a20544e8 | Miltiadis Vasilakis | |
305 | 700184fb | Miltiadis Vasilakis | @end |