Mercurial > projects > dstep
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 |