aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objc/utils/NSSet+MCO.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/objc/utils/NSSet+MCO.mm')
-rw-r--r--src/objc/utils/NSSet+MCO.mm45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/objc/utils/NSSet+MCO.mm b/src/objc/utils/NSSet+MCO.mm
new file mode 100644
index 00000000..690cfe77
--- /dev/null
+++ b/src/objc/utils/NSSet+MCO.mm
@@ -0,0 +1,45 @@
+//
+// NSSet+MCO.m
+// mailcore2
+//
+// Created by Hoa V. DINH on 1/29/14.
+// Copyright (c) 2014 MailCore. All rights reserved.
+//
+
+#import "NSSet+MCO.h"
+
+#include "MCSet.h"
+#include "MCArray.h"
+#import "NSObject+MCO.h"
+
+@implementation NSSet (MCO)
+
++ (id) mco_objectWithMCObject:(mailcore::Object *)object
+{
+ return [self mco_setWithMCSet:(mailcore::Set *) object];
+}
+
++ (NSSet *) mco_setWithMCSet:(mailcore::Set *)cppSet
+{
+ if (cppSet == NULL)
+ return nil;
+
+ NSMutableSet * result = [NSMutableSet set];
+ mailcore::Array * array = cppSet->allObjects();
+ for(unsigned int i = 0 ; i < array->count() ; i ++) {
+ [result addObject:[NSObject mco_objectWithMCObject:array->objectAtIndex(i)]];
+ }
+ return result;
+}
+
+- (mailcore::Set *) mco_mcSet
+{
+ mailcore::Set * result = mailcore::Set::set();
+ NSArray * array = [self allObjects];
+ for(unsigned int i = 0 ; i < [array count] ; i ++) {
+ result->addObject([[array objectAtIndex:i] mco_mcObject]);
+ }
+ return result;
+}
+
+@end