diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dstep/coredata/NSManagedObjectContext.d	Sun Jan 03 22:06:11 2010 +0100
@@ -0,0 +1,400 @@
+/**
+ * Copyright: Copyright (c) 2009 Jacob Carlborg.
+ * Authors: Jacob Carlborg
+ * Version: Initial created: Sep 25, 2009 
+ * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
+ */
+module dstep.coredata.NSManagedObjectContext;
+
+import dstep.coredata.CoreDataDefines;
+
+import dstep.coredata.NSFetchRequest;
+import dstep.coredata.NSManagedObject;
+import dstep.coredata.NSManagedObjectID;
+import dstep.coredata.NSPersistentStore;
+import dstep.coredata.NSPersistentStoreCoordinator;
+import dstep.corefoundation.CFArray;
+import dstep.corefoundation.CFDictionary;
+import dstep.foundation.NSArray;
+import dstep.foundation.NSCoder;
+import dstep.foundation.NSDictionary;
+import dstep.foundation.NSDate;
+import dstep.foundation.NSError;
+import dstep.foundation.NSLock;
+import dstep.foundation.NSNotification;
+import dstep.foundation.NSObjCRuntime;
+import dstep.foundation.NSObject;
+import dstep.foundation.NSUndoManager;
+import dstep.foundation.NSSet;
+import dstep.foundation.NSString;
+import dstep.objc.bridge.Bridge;
+import dstep.objc.objc;
+
+import bindings = dstep.coredata.NSManagedObjectContext_bindings;
+
+private
+{
+	NSString NSManagedObjectContextDidSaveNotification_;
+	NSString NSManagedObjectContextObjectsDidChangeNotification_;
+	NSString NSInsertedObjectsKey_;
+	NSString NSUpdatedObjectsKey_;
+	NSString NSDeletedObjectsKey_;
+	NSString NSRefreshedObjectsKey_;
+	NSString NSInvalidatedObjectsKey_;
+	NSString NSInvalidatedAllObjectsKey_;
+	NSObject NSErrorMergePolicy_;
+	NSObject NSMergeByPropertyStoreTrumpMergePolicy_;
+	NSObject NSMergeByPropertyObjectTrumpMergePolicy_;
+	NSObject NSOverwriteMergePolicy_;
+	NSObject NSRollbackMergePolicy_;
+}
+
+NSString NSManagedObjectContextDidSaveNotification ()
+{
+	if (NSManagedObjectContextDidSaveNotification_)
+		return NSManagedObjectContextDidSaveNotification_;
+
+	return NSManagedObjectContextDidSaveNotification_ = new NSString(bindings.NSManagedObjectContextDidSaveNotification);
+}
+
+NSString NSManagedObjectContextObjectsDidChangeNotification ()
+{
+	if (NSManagedObjectContextObjectsDidChangeNotification_)
+		return NSManagedObjectContextObjectsDidChangeNotification_;
+
+	return NSManagedObjectContextObjectsDidChangeNotification_ = new NSString(bindings.NSManagedObjectContextObjectsDidChangeNotification);
+}
+
+NSString NSInsertedObjectsKey ()
+{
+	if (NSInsertedObjectsKey_)
+		return NSInsertedObjectsKey_;
+
+	return NSInsertedObjectsKey_ = new NSString(bindings.NSInsertedObjectsKey);
+}
+
+NSString NSUpdatedObjectsKey ()
+{
+	if (NSUpdatedObjectsKey_)
+		return NSUpdatedObjectsKey_;
+
+	return NSUpdatedObjectsKey_ = new NSString(bindings.NSUpdatedObjectsKey);
+}
+
+NSString NSDeletedObjectsKey ()
+{
+	if (NSDeletedObjectsKey_)
+		return NSDeletedObjectsKey_;
+
+	return NSDeletedObjectsKey_ = new NSString(bindings.NSDeletedObjectsKey);
+}
+
+NSString NSRefreshedObjectsKey ()
+{
+	if (NSRefreshedObjectsKey_)
+		return NSRefreshedObjectsKey_;
+
+	return NSRefreshedObjectsKey_ = new NSString(bindings.NSRefreshedObjectsKey);
+}
+
+NSString NSInvalidatedObjectsKey ()
+{
+	if (NSInvalidatedObjectsKey_)
+		return NSInvalidatedObjectsKey_;
+
+	return NSInvalidatedObjectsKey_ = new NSString(bindings.NSInvalidatedObjectsKey);
+}
+
+NSString NSInvalidatedAllObjectsKey ()
+{
+	if (NSInvalidatedAllObjectsKey_)
+		return NSInvalidatedAllObjectsKey_;
+
+	return NSInvalidatedAllObjectsKey_ = new NSString(bindings.NSInvalidatedAllObjectsKey);
+}
+
+NSObject NSErrorMergePolicy ()
+{
+	if (NSErrorMergePolicy_)
+		return NSErrorMergePolicy_;
+
+	return NSErrorMergePolicy_ = new NSObject(bindings.NSErrorMergePolicy);
+}
+
+NSObject NSMergeByPropertyStoreTrumpMergePolicy ()
+{
+	if (NSMergeByPropertyStoreTrumpMergePolicy_)
+		return NSMergeByPropertyStoreTrumpMergePolicy_;
+
+	return NSMergeByPropertyStoreTrumpMergePolicy_ = new NSObject(bindings.NSMergeByPropertyStoreTrumpMergePolicy);
+}
+
+NSObject NSMergeByPropertyObjectTrumpMergePolicy ()
+{
+	if (NSMergeByPropertyObjectTrumpMergePolicy_)
+		return NSMergeByPropertyObjectTrumpMergePolicy_;
+
+	return NSMergeByPropertyObjectTrumpMergePolicy_ = new NSObject(bindings.NSMergeByPropertyObjectTrumpMergePolicy);
+}
+
+NSObject NSOverwriteMergePolicy ()
+{
+	if (NSOverwriteMergePolicy_)
+		return NSOverwriteMergePolicy_;
+
+	return NSOverwriteMergePolicy_ = new NSObject(bindings.NSOverwriteMergePolicy);
+}
+
+NSObject NSRollbackMergePolicy ()
+{
+	if (NSRollbackMergePolicy_)
+		return NSRollbackMergePolicy_;
+
+	return NSRollbackMergePolicy_ = new NSObject(bindings.NSRollbackMergePolicy);
+}
+
+class NSManagedObjectContext : NSObject, INSCoding, INSLocking
+{
+	mixin (ObjcWrap);
+
+	void setPersistentStoreCoordinator (NSPersistentStoreCoordinator coordinator)
+	{
+		return invokeObjcSelf!(void, "setPersistentStoreCoordinator:", NSPersistentStoreCoordinator)(coordinator);
+	}
+
+	NSPersistentStoreCoordinator persistentStoreCoordinator ()
+	{
+		return invokeObjcSelf!(NSPersistentStoreCoordinator, "persistentStoreCoordinator");
+	}
+
+	void setUndoManager (NSUndoManager undoManager)
+	{
+		return invokeObjcSelf!(void, "setUndoManager:", NSUndoManager)(undoManager);
+	}
+
+	NSUndoManager undoManager ()
+	{
+		return invokeObjcSelf!(NSUndoManager, "undoManager");
+	}
+
+	bool hasChanges ()
+	{
+		return invokeObjcSelf!(bool, "hasChanges");
+	}
+
+	NSManagedObject objectRegisteredForID (NSManagedObjectID objectID)
+	{
+		return invokeObjcSelf!(NSManagedObject, "objectRegisteredForID:", NSManagedObjectID)(objectID);
+	}
+
+	NSManagedObject objectWithID (NSManagedObjectID objectID)
+	{
+		return invokeObjcSelf!(NSManagedObject, "objectWithID:", NSManagedObjectID)(objectID);
+	}
+
+	NSArray executeFetchRequest (NSFetchRequest request, ref NSError error)
+	{
+		id __arg1;
+
+		if (error)
+			__arg1 = error.objcObject;
+
+		NSArray result = invokeObjcSelf!(NSArray, "executeFetchRequest:error:", NSFetchRequest, id*)(request, &__arg1);
+
+		if (__arg1)
+			error = new NSError(__arg1);
+
+		return result;
+	}
+
+	NSUInteger countForFetchRequest (NSFetchRequest request, ref NSError error)
+	{
+		id __arg1;
+
+		if (error)
+			__arg1 = error.objcObject;
+
+		NSUInteger result = invokeObjcSelf!(NSUInteger, "countForFetchRequest:error:", NSFetchRequest, id*)(request, &__arg1);
+
+		if (__arg1)
+			error = new NSError(__arg1);
+
+		return result;
+	}
+
+	void insertObject (NSManagedObject object)
+	{
+		return invokeObjcSelf!(void, "insertObject:", NSManagedObject)(object);
+	}
+
+	void deleteObject (NSManagedObject object)
+	{
+		return invokeObjcSelf!(void, "deleteObject:", NSManagedObject)(object);
+	}
+
+	void refreshObject (NSManagedObject object, bool flag)
+	{
+		return invokeObjcSelf!(void, "refreshObject:mergeChanges:", NSManagedObject, bool)(object, flag);
+	}
+
+	void detectConflictsForObject (NSManagedObject object)
+	{
+		return invokeObjcSelf!(void, "detectConflictsForObject:", NSManagedObject)(object);
+	}
+
+	void observeValueForKeyPath (NSString keyPath, Object object, NSDictionary change, void* context)
+	{
+		return invokeObjcSelf!(void, "observeValueForKeyPath:ofObject:change:context:", NSString, Object, NSDictionary, void*)(keyPath, object, change, context);
+	}
+
+	void processPendingChanges ()
+	{
+		return invokeObjcSelf!(void, "processPendingChanges");
+	}
+
+	void assignObject (Object object, NSPersistentStore store)
+	{
+		return invokeObjcSelf!(void, "assignObject:toPersistentStore:", Object, NSPersistentStore)(object, store);
+	}
+
+	NSSet insertedObjects ()
+	{
+		return invokeObjcSelf!(NSSet, "insertedObjects");
+	}
+
+	NSSet updatedObjects ()
+	{
+		return invokeObjcSelf!(NSSet, "updatedObjects");
+	}
+
+	NSSet deletedObjects ()
+	{
+		return invokeObjcSelf!(NSSet, "deletedObjects");
+	}
+
+	NSSet registeredObjects ()
+	{
+		return invokeObjcSelf!(NSSet, "registeredObjects");
+	}
+
+	void undo ()
+	{
+		return invokeObjcSelf!(void, "undo");
+	}
+
+	void redo ()
+	{
+		return invokeObjcSelf!(void, "redo");
+	}
+
+	void reset ()
+	{
+		return invokeObjcSelf!(void, "reset");
+	}
+
+	void rollback ()
+	{
+		return invokeObjcSelf!(void, "rollback");
+	}
+
+	bool save (ref NSError error)
+	{
+		id __arg0;
+
+		if (error)
+			__arg0 = error.objcObject;
+
+		bool result = invokeObjcSelf!(bool, "save:", id*)(&__arg0);
+
+		if (__arg0)
+			error = new NSError(__arg0);
+
+		return result;
+	}
+
+	void lock ()
+	{
+		return invokeObjcSelf!(void, "lock");
+	}
+
+	void unlock ()
+	{
+		return invokeObjcSelf!(void, "unlock");
+	}
+
+	bool tryLock ()
+	{
+		return invokeObjcSelf!(bool, "tryLock");
+	}
+
+	bool propagatesDeletesAtEndOfEvent ()
+	{
+		return invokeObjcSelf!(bool, "propagatesDeletesAtEndOfEvent");
+	}
+
+	void setPropagatesDeletesAtEndOfEvent (bool flag)
+	{
+		return invokeObjcSelf!(void, "setPropagatesDeletesAtEndOfEvent:", bool)(flag);
+	}
+
+	bool retainsRegisteredObjects ()
+	{
+		return invokeObjcSelf!(bool, "retainsRegisteredObjects");
+	}
+
+	void setRetainsRegisteredObjects (bool flag)
+	{
+		return invokeObjcSelf!(void, "setRetainsRegisteredObjects:", bool)(flag);
+	}
+
+	double stalenessInterval ()
+	{
+		return invokeObjcSelf!(double, "stalenessInterval");
+	}
+
+	void setStalenessInterval (double expiration)
+	{
+		return invokeObjcSelf!(void, "setStalenessInterval:", double)(expiration);
+	}
+
+	void setMergePolicy (Object mergePolicy)
+	{
+		return invokeObjcSelf!(void, "setMergePolicy:", Object)(mergePolicy);
+	}
+
+	Object mergePolicy ()
+	{
+		return invokeObjcSelf!(Object, "mergePolicy");
+	}
+
+	bool obtainPermanentIDsForObjects (NSArray objects, ref NSError error)
+	{
+		id __arg1;
+
+		if (error)
+			__arg1 = error.objcObject;
+
+		bool result = invokeObjcSelf!(bool, "obtainPermanentIDsForObjects:error:", NSArray, id*)(objects, &__arg1);
+
+		if (__arg1)
+			error = new NSError(__arg1);
+
+		return result;
+	}
+
+	void mergeChangesFromContextDidSaveNotification (NSNotification notification)
+	{
+		return invokeObjcSelf!(void, "mergeChangesFromContextDidSaveNotification:", NSNotification)(notification);
+	}
+
+	void encodeWithCoder (NSCoder aCoder)
+	{
+		return invokeObjcSelf!(void, "encodeWithCoder:", NSCoder)(aCoder);
+	}
+	
+	typeof(this) initWithCoder (NSCoder aDecoder)
+	{
+		return invokeObjcSelf!(typeof(this), "initWithCoder:", NSCoder)(aDecoder);
+	}
+}
+