comparison dstep/coredata/NSManagedObjectContext.d @ 16:19885b43130e

Huge update, the bridge actually works now
author Jacob Carlborg <doob@me.com>
date Sun, 03 Jan 2010 22:06:11 +0100
parents
children b9de51448c6b
comparison
equal deleted inserted replaced
15:7ff919f595d5 16:19885b43130e
1 /**
2 * Copyright: Copyright (c) 2009 Jacob Carlborg.
3 * Authors: Jacob Carlborg
4 * Version: Initial created: Sep 25, 2009
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
6 */
7 module dstep.coredata.NSManagedObjectContext;
8
9 import dstep.coredata.CoreDataDefines;
10
11 import dstep.coredata.NSFetchRequest;
12 import dstep.coredata.NSManagedObject;
13 import dstep.coredata.NSManagedObjectID;
14 import dstep.coredata.NSPersistentStore;
15 import dstep.coredata.NSPersistentStoreCoordinator;
16 import dstep.corefoundation.CFArray;
17 import dstep.corefoundation.CFDictionary;
18 import dstep.foundation.NSArray;
19 import dstep.foundation.NSCoder;
20 import dstep.foundation.NSDictionary;
21 import dstep.foundation.NSDate;
22 import dstep.foundation.NSError;
23 import dstep.foundation.NSLock;
24 import dstep.foundation.NSNotification;
25 import dstep.foundation.NSObjCRuntime;
26 import dstep.foundation.NSObject;
27 import dstep.foundation.NSUndoManager;
28 import dstep.foundation.NSSet;
29 import dstep.foundation.NSString;
30 import dstep.objc.bridge.Bridge;
31 import dstep.objc.objc;
32
33 import bindings = dstep.coredata.NSManagedObjectContext_bindings;
34
35 private
36 {
37 NSString NSManagedObjectContextDidSaveNotification_;
38 NSString NSManagedObjectContextObjectsDidChangeNotification_;
39 NSString NSInsertedObjectsKey_;
40 NSString NSUpdatedObjectsKey_;
41 NSString NSDeletedObjectsKey_;
42 NSString NSRefreshedObjectsKey_;
43 NSString NSInvalidatedObjectsKey_;
44 NSString NSInvalidatedAllObjectsKey_;
45 NSObject NSErrorMergePolicy_;
46 NSObject NSMergeByPropertyStoreTrumpMergePolicy_;
47 NSObject NSMergeByPropertyObjectTrumpMergePolicy_;
48 NSObject NSOverwriteMergePolicy_;
49 NSObject NSRollbackMergePolicy_;
50 }
51
52 NSString NSManagedObjectContextDidSaveNotification ()
53 {
54 if (NSManagedObjectContextDidSaveNotification_)
55 return NSManagedObjectContextDidSaveNotification_;
56
57 return NSManagedObjectContextDidSaveNotification_ = new NSString(bindings.NSManagedObjectContextDidSaveNotification);
58 }
59
60 NSString NSManagedObjectContextObjectsDidChangeNotification ()
61 {
62 if (NSManagedObjectContextObjectsDidChangeNotification_)
63 return NSManagedObjectContextObjectsDidChangeNotification_;
64
65 return NSManagedObjectContextObjectsDidChangeNotification_ = new NSString(bindings.NSManagedObjectContextObjectsDidChangeNotification);
66 }
67
68 NSString NSInsertedObjectsKey ()
69 {
70 if (NSInsertedObjectsKey_)
71 return NSInsertedObjectsKey_;
72
73 return NSInsertedObjectsKey_ = new NSString(bindings.NSInsertedObjectsKey);
74 }
75
76 NSString NSUpdatedObjectsKey ()
77 {
78 if (NSUpdatedObjectsKey_)
79 return NSUpdatedObjectsKey_;
80
81 return NSUpdatedObjectsKey_ = new NSString(bindings.NSUpdatedObjectsKey);
82 }
83
84 NSString NSDeletedObjectsKey ()
85 {
86 if (NSDeletedObjectsKey_)
87 return NSDeletedObjectsKey_;
88
89 return NSDeletedObjectsKey_ = new NSString(bindings.NSDeletedObjectsKey);
90 }
91
92 NSString NSRefreshedObjectsKey ()
93 {
94 if (NSRefreshedObjectsKey_)
95 return NSRefreshedObjectsKey_;
96
97 return NSRefreshedObjectsKey_ = new NSString(bindings.NSRefreshedObjectsKey);
98 }
99
100 NSString NSInvalidatedObjectsKey ()
101 {
102 if (NSInvalidatedObjectsKey_)
103 return NSInvalidatedObjectsKey_;
104
105 return NSInvalidatedObjectsKey_ = new NSString(bindings.NSInvalidatedObjectsKey);
106 }
107
108 NSString NSInvalidatedAllObjectsKey ()
109 {
110 if (NSInvalidatedAllObjectsKey_)
111 return NSInvalidatedAllObjectsKey_;
112
113 return NSInvalidatedAllObjectsKey_ = new NSString(bindings.NSInvalidatedAllObjectsKey);
114 }
115
116 NSObject NSErrorMergePolicy ()
117 {
118 if (NSErrorMergePolicy_)
119 return NSErrorMergePolicy_;
120
121 return NSErrorMergePolicy_ = new NSObject(bindings.NSErrorMergePolicy);
122 }
123
124 NSObject NSMergeByPropertyStoreTrumpMergePolicy ()
125 {
126 if (NSMergeByPropertyStoreTrumpMergePolicy_)
127 return NSMergeByPropertyStoreTrumpMergePolicy_;
128
129 return NSMergeByPropertyStoreTrumpMergePolicy_ = new NSObject(bindings.NSMergeByPropertyStoreTrumpMergePolicy);
130 }
131
132 NSObject NSMergeByPropertyObjectTrumpMergePolicy ()
133 {
134 if (NSMergeByPropertyObjectTrumpMergePolicy_)
135 return NSMergeByPropertyObjectTrumpMergePolicy_;
136
137 return NSMergeByPropertyObjectTrumpMergePolicy_ = new NSObject(bindings.NSMergeByPropertyObjectTrumpMergePolicy);
138 }
139
140 NSObject NSOverwriteMergePolicy ()
141 {
142 if (NSOverwriteMergePolicy_)
143 return NSOverwriteMergePolicy_;
144
145 return NSOverwriteMergePolicy_ = new NSObject(bindings.NSOverwriteMergePolicy);
146 }
147
148 NSObject NSRollbackMergePolicy ()
149 {
150 if (NSRollbackMergePolicy_)
151 return NSRollbackMergePolicy_;
152
153 return NSRollbackMergePolicy_ = new NSObject(bindings.NSRollbackMergePolicy);
154 }
155
156 class NSManagedObjectContext : NSObject, INSCoding, INSLocking
157 {
158 mixin (ObjcWrap);
159
160 void setPersistentStoreCoordinator (NSPersistentStoreCoordinator coordinator)
161 {
162 return invokeObjcSelf!(void, "setPersistentStoreCoordinator:", NSPersistentStoreCoordinator)(coordinator);
163 }
164
165 NSPersistentStoreCoordinator persistentStoreCoordinator ()
166 {
167 return invokeObjcSelf!(NSPersistentStoreCoordinator, "persistentStoreCoordinator");
168 }
169
170 void setUndoManager (NSUndoManager undoManager)
171 {
172 return invokeObjcSelf!(void, "setUndoManager:", NSUndoManager)(undoManager);
173 }
174
175 NSUndoManager undoManager ()
176 {
177 return invokeObjcSelf!(NSUndoManager, "undoManager");
178 }
179
180 bool hasChanges ()
181 {
182 return invokeObjcSelf!(bool, "hasChanges");
183 }
184
185 NSManagedObject objectRegisteredForID (NSManagedObjectID objectID)
186 {
187 return invokeObjcSelf!(NSManagedObject, "objectRegisteredForID:", NSManagedObjectID)(objectID);
188 }
189
190 NSManagedObject objectWithID (NSManagedObjectID objectID)
191 {
192 return invokeObjcSelf!(NSManagedObject, "objectWithID:", NSManagedObjectID)(objectID);
193 }
194
195 NSArray executeFetchRequest (NSFetchRequest request, ref NSError error)
196 {
197 id __arg1;
198
199 if (error)
200 __arg1 = error.objcObject;
201
202 NSArray result = invokeObjcSelf!(NSArray, "executeFetchRequest:error:", NSFetchRequest, id*)(request, &__arg1);
203
204 if (__arg1)
205 error = new NSError(__arg1);
206
207 return result;
208 }
209
210 NSUInteger countForFetchRequest (NSFetchRequest request, ref NSError error)
211 {
212 id __arg1;
213
214 if (error)
215 __arg1 = error.objcObject;
216
217 NSUInteger result = invokeObjcSelf!(NSUInteger, "countForFetchRequest:error:", NSFetchRequest, id*)(request, &__arg1);
218
219 if (__arg1)
220 error = new NSError(__arg1);
221
222 return result;
223 }
224
225 void insertObject (NSManagedObject object)
226 {
227 return invokeObjcSelf!(void, "insertObject:", NSManagedObject)(object);
228 }
229
230 void deleteObject (NSManagedObject object)
231 {
232 return invokeObjcSelf!(void, "deleteObject:", NSManagedObject)(object);
233 }
234
235 void refreshObject (NSManagedObject object, bool flag)
236 {
237 return invokeObjcSelf!(void, "refreshObject:mergeChanges:", NSManagedObject, bool)(object, flag);
238 }
239
240 void detectConflictsForObject (NSManagedObject object)
241 {
242 return invokeObjcSelf!(void, "detectConflictsForObject:", NSManagedObject)(object);
243 }
244
245 void observeValueForKeyPath (NSString keyPath, Object object, NSDictionary change, void* context)
246 {
247 return invokeObjcSelf!(void, "observeValueForKeyPath:ofObject:change:context:", NSString, Object, NSDictionary, void*)(keyPath, object, change, context);
248 }
249
250 void processPendingChanges ()
251 {
252 return invokeObjcSelf!(void, "processPendingChanges");
253 }
254
255 void assignObject (Object object, NSPersistentStore store)
256 {
257 return invokeObjcSelf!(void, "assignObject:toPersistentStore:", Object, NSPersistentStore)(object, store);
258 }
259
260 NSSet insertedObjects ()
261 {
262 return invokeObjcSelf!(NSSet, "insertedObjects");
263 }
264
265 NSSet updatedObjects ()
266 {
267 return invokeObjcSelf!(NSSet, "updatedObjects");
268 }
269
270 NSSet deletedObjects ()
271 {
272 return invokeObjcSelf!(NSSet, "deletedObjects");
273 }
274
275 NSSet registeredObjects ()
276 {
277 return invokeObjcSelf!(NSSet, "registeredObjects");
278 }
279
280 void undo ()
281 {
282 return invokeObjcSelf!(void, "undo");
283 }
284
285 void redo ()
286 {
287 return invokeObjcSelf!(void, "redo");
288 }
289
290 void reset ()
291 {
292 return invokeObjcSelf!(void, "reset");
293 }
294
295 void rollback ()
296 {
297 return invokeObjcSelf!(void, "rollback");
298 }
299
300 bool save (ref NSError error)
301 {
302 id __arg0;
303
304 if (error)
305 __arg0 = error.objcObject;
306
307 bool result = invokeObjcSelf!(bool, "save:", id*)(&__arg0);
308
309 if (__arg0)
310 error = new NSError(__arg0);
311
312 return result;
313 }
314
315 void lock ()
316 {
317 return invokeObjcSelf!(void, "lock");
318 }
319
320 void unlock ()
321 {
322 return invokeObjcSelf!(void, "unlock");
323 }
324
325 bool tryLock ()
326 {
327 return invokeObjcSelf!(bool, "tryLock");
328 }
329
330 bool propagatesDeletesAtEndOfEvent ()
331 {
332 return invokeObjcSelf!(bool, "propagatesDeletesAtEndOfEvent");
333 }
334
335 void setPropagatesDeletesAtEndOfEvent (bool flag)
336 {
337 return invokeObjcSelf!(void, "setPropagatesDeletesAtEndOfEvent:", bool)(flag);
338 }
339
340 bool retainsRegisteredObjects ()
341 {
342 return invokeObjcSelf!(bool, "retainsRegisteredObjects");
343 }
344
345 void setRetainsRegisteredObjects (bool flag)
346 {
347 return invokeObjcSelf!(void, "setRetainsRegisteredObjects:", bool)(flag);
348 }
349
350 double stalenessInterval ()
351 {
352 return invokeObjcSelf!(double, "stalenessInterval");
353 }
354
355 void setStalenessInterval (double expiration)
356 {
357 return invokeObjcSelf!(void, "setStalenessInterval:", double)(expiration);
358 }
359
360 void setMergePolicy (Object mergePolicy)
361 {
362 return invokeObjcSelf!(void, "setMergePolicy:", Object)(mergePolicy);
363 }
364
365 Object mergePolicy ()
366 {
367 return invokeObjcSelf!(Object, "mergePolicy");
368 }
369
370 bool obtainPermanentIDsForObjects (NSArray objects, ref NSError error)
371 {
372 id __arg1;
373
374 if (error)
375 __arg1 = error.objcObject;
376
377 bool result = invokeObjcSelf!(bool, "obtainPermanentIDsForObjects:error:", NSArray, id*)(objects, &__arg1);
378
379 if (__arg1)
380 error = new NSError(__arg1);
381
382 return result;
383 }
384
385 void mergeChangesFromContextDidSaveNotification (NSNotification notification)
386 {
387 return invokeObjcSelf!(void, "mergeChangesFromContextDidSaveNotification:", NSNotification)(notification);
388 }
389
390 void encodeWithCoder (NSCoder aCoder)
391 {
392 return invokeObjcSelf!(void, "encodeWithCoder:", NSCoder)(aCoder);
393 }
394
395 typeof(this) initWithCoder (NSCoder aDecoder)
396 {
397 return invokeObjcSelf!(typeof(this), "initWithCoder:", NSCoder)(aDecoder);
398 }
399 }
400