diff dstep/coredata/NSPersistentStoreCoordinator.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/NSPersistentStoreCoordinator.d	Sun Jan 03 22:06:11 2010 +0100
@@ -0,0 +1,371 @@
+/**
+ * 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.NSPersistentStoreCoordinator;
+
+import dstep.coredata.CoreDataDefines;
+import dstep.coredata.NSManagedObjectID;
+import dstep.coredata.NSManagedObjectModel;
+import dstep.coredata.NSPersistentStore;
+import dstep.foundation.NSArray;
+import dstep.foundation.NSDictionary;
+import dstep.foundation.NSError;
+import dstep.foundation.NSLock;
+import dstep.foundation.NSObject;
+import dstep.foundation.NSString;
+import dstep.foundation.NSURL;
+import dstep.objc.bridge.Bridge;
+import dstep.objc.objc;
+
+import bindings = dstep.coredata.NSPersistentStoreCoordinator_bindings;
+
+private
+{
+	NSString NSSQLiteStoreType_;
+	NSString NSXMLStoreType_;
+	NSString NSBinaryStoreType_;
+	NSString NSInMemoryStoreType_;
+	NSString NSStoreTypeKey_;
+	NSString NSStoreUUIDKey_;
+	NSString NSPersistentStoreCoordinatorStoresDidChangeNotification_;
+	NSString NSAddedPersistentStoresKey_;
+	NSString NSRemovedPersistentStoresKey_;
+	NSString NSUUIDChangedPersistentStoresKey_;
+	NSString NSReadOnlyPersistentStoreOption_;
+	NSString NSValidateXMLStoreOption_;
+	NSString NSPersistentStoreTimeoutOption_;
+	NSString NSSQLitePragmasOption_;
+	NSString NSIgnorePersistentStoreVersioningOption_;
+	NSString NSMigratePersistentStoresAutomaticallyOption_;
+	NSString NSStoreModelVersionHashesKey_;
+	NSString NSStoreModelVersionIdentifiersKey_;
+	NSString NSPersistentStoreOSCompatibility_;
+}
+
+NSString NSSQLiteStoreType ()
+{
+	if (NSSQLiteStoreType_)
+		return NSSQLiteStoreType_;
+
+	return NSSQLiteStoreType_ = new NSString(bindings.NSSQLiteStoreType);
+}
+
+NSString NSXMLStoreType ()
+{
+	if (NSXMLStoreType_)
+		return NSXMLStoreType_;
+
+	return NSXMLStoreType_ = new NSString(bindings.NSXMLStoreType);
+}
+
+NSString NSBinaryStoreType ()
+{
+	if (NSBinaryStoreType_)
+		return NSBinaryStoreType_;
+
+	return NSBinaryStoreType_ = new NSString(bindings.NSBinaryStoreType);
+}
+
+NSString NSInMemoryStoreType ()
+{
+	if (NSInMemoryStoreType_)
+		return NSInMemoryStoreType_;
+
+	return NSInMemoryStoreType_ = new NSString(bindings.NSInMemoryStoreType);
+}
+
+NSString NSStoreTypeKey ()
+{
+	if (NSStoreTypeKey_)
+		return NSStoreTypeKey_;
+
+	return NSStoreTypeKey_ = new NSString(bindings.NSStoreTypeKey);
+}
+
+NSString NSStoreUUIDKey ()
+{
+	if (NSStoreUUIDKey_)
+		return NSStoreUUIDKey_;
+
+	return NSStoreUUIDKey_ = new NSString(bindings.NSStoreUUIDKey);
+}
+
+NSString NSPersistentStoreCoordinatorStoresDidChangeNotification ()
+{
+	if (NSPersistentStoreCoordinatorStoresDidChangeNotification_)
+		return NSPersistentStoreCoordinatorStoresDidChangeNotification_;
+
+	return NSPersistentStoreCoordinatorStoresDidChangeNotification_ = new NSString(bindings.NSPersistentStoreCoordinatorStoresDidChangeNotification);
+}
+
+NSString NSAddedPersistentStoresKey ()
+{
+	if (NSAddedPersistentStoresKey_)
+		return NSAddedPersistentStoresKey_;
+
+	return NSAddedPersistentStoresKey_ = new NSString(bindings.NSAddedPersistentStoresKey);
+}
+
+NSString NSRemovedPersistentStoresKey ()
+{
+	if (NSRemovedPersistentStoresKey_)
+		return NSRemovedPersistentStoresKey_;
+
+	return NSRemovedPersistentStoresKey_ = new NSString(bindings.NSRemovedPersistentStoresKey);
+}
+
+NSString NSUUIDChangedPersistentStoresKey ()
+{
+	if (NSUUIDChangedPersistentStoresKey_)
+		return NSUUIDChangedPersistentStoresKey_;
+
+	return NSUUIDChangedPersistentStoresKey_ = new NSString(bindings.NSUUIDChangedPersistentStoresKey);
+}
+
+NSString NSReadOnlyPersistentStoreOption ()
+{
+	if (NSReadOnlyPersistentStoreOption_)
+		return NSReadOnlyPersistentStoreOption_;
+
+	return NSReadOnlyPersistentStoreOption_ = new NSString(bindings.NSReadOnlyPersistentStoreOption);
+}
+
+NSString NSValidateXMLStoreOption ()
+{
+	if (NSValidateXMLStoreOption_)
+		return NSValidateXMLStoreOption_;
+
+	return NSValidateXMLStoreOption_ = new NSString(bindings.NSValidateXMLStoreOption);
+}
+
+NSString NSPersistentStoreTimeoutOption ()
+{
+	if (NSPersistentStoreTimeoutOption_)
+		return NSPersistentStoreTimeoutOption_;
+
+	return NSPersistentStoreTimeoutOption_ = new NSString(bindings.NSPersistentStoreTimeoutOption);
+}
+
+NSString NSSQLitePragmasOption ()
+{
+	if (NSSQLitePragmasOption_)
+		return NSSQLitePragmasOption_;
+
+	return NSSQLitePragmasOption_ = new NSString(bindings.NSSQLitePragmasOption);
+}
+
+NSString NSIgnorePersistentStoreVersioningOption ()
+{
+	if (NSIgnorePersistentStoreVersioningOption_)
+		return NSIgnorePersistentStoreVersioningOption_;
+
+	return NSIgnorePersistentStoreVersioningOption_ = new NSString(bindings.NSIgnorePersistentStoreVersioningOption);
+}
+
+NSString NSMigratePersistentStoresAutomaticallyOption ()
+{
+	if (NSMigratePersistentStoresAutomaticallyOption_)
+		return NSMigratePersistentStoresAutomaticallyOption_;
+
+	return NSMigratePersistentStoresAutomaticallyOption_ = new NSString(bindings.NSMigratePersistentStoresAutomaticallyOption);
+}
+
+NSString NSStoreModelVersionHashesKey ()
+{
+	if (NSStoreModelVersionHashesKey_)
+		return NSStoreModelVersionHashesKey_;
+
+	return NSStoreModelVersionHashesKey_ = new NSString(bindings.NSStoreModelVersionHashesKey);
+}
+
+NSString NSStoreModelVersionIdentifiersKey ()
+{
+	if (NSStoreModelVersionIdentifiersKey_)
+		return NSStoreModelVersionIdentifiersKey_;
+
+	return NSStoreModelVersionIdentifiersKey_ = new NSString(bindings.NSStoreModelVersionIdentifiersKey);
+}
+
+NSString NSPersistentStoreOSCompatibility ()
+{
+	if (NSPersistentStoreOSCompatibility_)
+		return NSPersistentStoreOSCompatibility_;
+
+	return NSPersistentStoreOSCompatibility_ = new NSString(bindings.NSPersistentStoreOSCompatibility);
+}
+
+class NSPersistentStoreCoordinator : NSObject, INSLocking
+{
+	mixin (ObjcWrap);
+
+	static NSDictionary registeredStoreTypes ()
+	{
+		return invokeObjcSelfClass!(NSDictionary, "registeredStoreTypes");
+	}
+
+	static void registerStoreClass (Class storeClass, NSString storeType)
+	{
+		return invokeObjcSelfClass!(void, "registerStoreClass:forStoreType:", Class, NSString)(storeClass, storeType);
+	}
+
+	static NSDictionary metadataForPersistentStoreOfType (NSString storeType, NSURL url, ref NSError error)
+	{
+		id __arg2;
+
+		if (error)
+			__arg2 = error.objcObject;
+
+		NSDictionary result = invokeObjcSelfClass!(NSDictionary, "metadataForPersistentStoreOfType:URL:error:", NSString, NSURL, id*)(storeType, url, &__arg2);
+
+		if (__arg2)
+			error = new NSError(__arg2);
+
+		return result;
+	}
+
+	static bool setMetadata (NSDictionary metadata, NSString storeType, NSURL url, ref NSError error)
+	{
+		id __arg3;
+
+		if (error)
+			__arg3 = error.objcObject;
+
+		bool result = invokeObjcSelfClass!(bool, "setMetadata:forPersistentStoreOfType:URL:error:", NSDictionary, NSString, NSURL, id*)(metadata, storeType, url, &__arg3);
+
+		if (__arg3)
+			error = new NSError(__arg3);
+
+		return result;
+	}
+
+	void setMetadata (NSDictionary metadata, NSPersistentStore store)
+	{
+		return invokeObjcSelf!(void, "setMetadata:forPersistentStore:", NSDictionary, NSPersistentStore)(metadata, store);
+	}
+
+	NSDictionary metadataForPersistentStore (NSPersistentStore store)
+	{
+		return invokeObjcSelf!(NSDictionary, "metadataForPersistentStore:", NSPersistentStore)(store);
+	}
+
+	NSPersistentStoreCoordinator initWithManagedObjectModel (NSManagedObjectModel model)
+	{
+		id result = invokeObjcSelf!(id, "initWithManagedObjectModel:", NSManagedObjectModel)(model);
+		return result is this.objcObject ? this : (result !is null ? new NSPersistentStoreCoordinator(result) : null);
+	}
+
+	this (NSManagedObjectModel model)
+	{
+		super(NSPersistentStoreCoordinator.alloc.initWithManagedObjectModel(model).objcObject);
+	}
+
+	NSManagedObjectModel managedObjectModel ()
+	{
+		return invokeObjcSelf!(NSManagedObjectModel, "managedObjectModel");
+	}
+
+	NSArray persistentStores ()
+	{
+		return invokeObjcSelf!(NSArray, "persistentStores");
+	}
+
+	NSPersistentStore persistentStoreForURL (NSURL URL)
+	{
+		return invokeObjcSelf!(NSPersistentStore, "persistentStoreForURL:", NSURL)(URL);
+	}
+
+	NSURL URLForPersistentStore (NSPersistentStore store)
+	{
+		return invokeObjcSelf!(NSURL, "URLForPersistentStore:", NSPersistentStore)(store);
+	}
+
+	bool setURL (NSURL url, NSPersistentStore store)
+	{
+		return invokeObjcSelf!(bool, "setURL:forPersistentStore:", NSURL, NSPersistentStore)(url, store);
+	}
+
+	NSPersistentStore addPersistentStoreWithType (NSString storeType, NSString configuration, NSURL storeURL, NSDictionary options, ref NSError error)
+	{
+		id __arg4;
+
+		if (error)
+			__arg4 = error.objcObject;
+
+		NSPersistentStore result = invokeObjcSelf!(NSPersistentStore, "addPersistentStoreWithType:configuration:URL:options:error:", NSString, NSString, NSURL, NSDictionary, id*)(storeType, configuration, storeURL, options, &__arg4);
+
+		if (__arg4)
+			error = new NSError(__arg4);
+
+		return result;
+	}
+
+	bool removePersistentStore (NSPersistentStore store, ref NSError error)
+	{
+		id __arg1;
+
+		if (error)
+			__arg1 = error.objcObject;
+
+		bool result = invokeObjcSelf!(bool, "removePersistentStore:error:", NSPersistentStore, id*)(store, &__arg1);
+
+		if (__arg1)
+			error = new NSError(__arg1);
+
+		return result;
+	}
+
+	NSPersistentStore migratePersistentStore (NSPersistentStore store, NSURL URL, NSDictionary options, NSString storeType, ref NSError error)
+	{
+		id __arg4;
+
+		if (error)
+			__arg4 = error.objcObject;
+
+		NSPersistentStore result = invokeObjcSelf!(NSPersistentStore, "migratePersistentStore:toURL:options:withType:error:", NSPersistentStore, NSURL, NSDictionary, NSString, id*)(store, URL, options, storeType, &__arg4);
+
+		if (__arg4)
+			error = new NSError(__arg4);
+
+		return result;
+	}
+
+	NSManagedObjectID managedObjectIDForURIRepresentation (NSURL url)
+	{
+		return invokeObjcSelf!(NSManagedObjectID, "managedObjectIDForURIRepresentation:", NSURL)(url);
+	}
+
+	void lock ()
+	{
+		return invokeObjcSelf!(void, "lock");
+	}
+
+	void unlock ()
+	{
+		return invokeObjcSelf!(void, "unlock");
+	}
+
+	bool tryLock ()
+	{
+		return invokeObjcSelf!(bool, "tryLock");
+	}
+
+	static NSDictionary metadataForPersistentStoreWithURL (NSURL url, ref NSError error)
+	{
+		id __arg1;
+
+		if (error)
+			__arg1 = error.objcObject;
+
+		NSDictionary result = invokeObjcSelfClass!(NSDictionary, "metadataForPersistentStoreWithURL:error:", NSURL, id*)(url, &__arg1);
+
+		if (__arg1)
+			error = new NSError(__arg1);
+
+		return result;
+	}
+
+}
+