432 lines
16 KiB
C#
432 lines
16 KiB
C#
using CPF.Mac.Foundation;
|
|
using CPF.Mac.ObjCRuntime;
|
|
using System;
|
|
using System.ComponentModel;
|
|
|
|
namespace CPF.Mac.CoreData
|
|
{
|
|
[Register("NSManagedObjectModel", true)]
|
|
public class NSManagedObjectModel : NSObject
|
|
{
|
|
private static readonly IntPtr selEntitiesByNameHandle = Selector.GetHandle("entitiesByName");
|
|
|
|
private static readonly IntPtr selEntitiesHandle = Selector.GetHandle("entities");
|
|
|
|
private static readonly IntPtr selSetEntities_Handle = Selector.GetHandle("setEntities:");
|
|
|
|
private static readonly IntPtr selConfigurationsHandle = Selector.GetHandle("configurations");
|
|
|
|
private static readonly IntPtr selLocalizationDictionaryHandle = Selector.GetHandle("localizationDictionary");
|
|
|
|
private static readonly IntPtr selSetLocalizationDictionary_Handle = Selector.GetHandle("setLocalizationDictionary:");
|
|
|
|
private static readonly IntPtr selFetchRequestTemplatesByNameHandle = Selector.GetHandle("fetchRequestTemplatesByName");
|
|
|
|
private static readonly IntPtr selVersionIdentifiersHandle = Selector.GetHandle("versionIdentifiers");
|
|
|
|
private static readonly IntPtr selSetVersionIdentifiers_Handle = Selector.GetHandle("setVersionIdentifiers:");
|
|
|
|
private static readonly IntPtr selEntityVersionHashesByNameHandle = Selector.GetHandle("entityVersionHashesByName");
|
|
|
|
private static readonly IntPtr selMergedModelFromBundles_Handle = Selector.GetHandle("mergedModelFromBundles:");
|
|
|
|
private static readonly IntPtr selModelByMergingModels_Handle = Selector.GetHandle("modelByMergingModels:");
|
|
|
|
private static readonly IntPtr selInitWithContentsOfURL_Handle = Selector.GetHandle("initWithContentsOfURL:");
|
|
|
|
private static readonly IntPtr selEntitiesForConfiguration_Handle = Selector.GetHandle("entitiesForConfiguration:");
|
|
|
|
private static readonly IntPtr selSetEntitiesForConfiguration_Handle = Selector.GetHandle("setEntities:forConfiguration:");
|
|
|
|
private static readonly IntPtr selSetFetchRequestTemplateForName_Handle = Selector.GetHandle("setFetchRequestTemplate:forName:");
|
|
|
|
private static readonly IntPtr selFetchRequestTemplateForName_Handle = Selector.GetHandle("fetchRequestTemplateForName:");
|
|
|
|
private static readonly IntPtr selFetchRequestFromTemplateWithNameSubstitutionVariables_Handle = Selector.GetHandle("fetchRequestFromTemplateWithName:substitutionVariables:");
|
|
|
|
private static readonly IntPtr selMergedModelFromBundlesForStoreMetadata_Handle = Selector.GetHandle("mergedModelFromBundles:forStoreMetadata:");
|
|
|
|
private static readonly IntPtr selModelByMergingModelsForStoreMetadata_Handle = Selector.GetHandle("modelByMergingModels:forStoreMetadata:");
|
|
|
|
private static readonly IntPtr selIsConfigurationCompatibleWithStoreMetadata_Handle = Selector.GetHandle("isConfiguration:compatibleWithStoreMetadata:");
|
|
|
|
private static readonly IntPtr class_ptr = Class.GetHandle("NSManagedObjectModel");
|
|
|
|
private object __mt_EntitiesByName_var;
|
|
|
|
private object __mt_Entities_var;
|
|
|
|
private object __mt_LocalizationDictionary_var;
|
|
|
|
private object __mt_FetchRequestTemplatesByName_var;
|
|
|
|
private object __mt_VersionIdentifiers_var;
|
|
|
|
private object __mt_EntityVersionHashesByName_var;
|
|
|
|
public override IntPtr ClassHandle => class_ptr;
|
|
|
|
public virtual NSDictionary EntitiesByName
|
|
{
|
|
[Export("entitiesByName")]
|
|
get
|
|
{
|
|
return (NSDictionary)(__mt_EntitiesByName_var = ((!IsDirectBinding) ? ((NSDictionary)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selEntitiesByNameHandle))) : ((NSDictionary)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selEntitiesByNameHandle)))));
|
|
}
|
|
}
|
|
|
|
public virtual NSEntityDescription[] Entities
|
|
{
|
|
[Export("entities")]
|
|
get
|
|
{
|
|
return (NSEntityDescription[])(__mt_Entities_var = ((!IsDirectBinding) ? NSArray.ArrayFromHandle<NSEntityDescription>(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selEntitiesHandle)) : NSArray.ArrayFromHandle<NSEntityDescription>(Messaging.IntPtr_objc_msgSend(base.Handle, selEntitiesHandle))));
|
|
}
|
|
[Export("setEntities:")]
|
|
set
|
|
{
|
|
if (value == null)
|
|
{
|
|
throw new ArgumentNullException("value");
|
|
}
|
|
NSArray nSArray = NSArray.FromNSObjects(value);
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetEntities_Handle, nSArray.Handle);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetEntities_Handle, nSArray.Handle);
|
|
}
|
|
nSArray.Dispose();
|
|
__mt_Entities_var = value;
|
|
}
|
|
}
|
|
|
|
public virtual string[] Configurations
|
|
{
|
|
[Export("configurations")]
|
|
get
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
return NSArray.StringArrayFromHandle(Messaging.IntPtr_objc_msgSend(base.Handle, selConfigurationsHandle));
|
|
}
|
|
return NSArray.StringArrayFromHandle(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selConfigurationsHandle));
|
|
}
|
|
}
|
|
|
|
public virtual NSDictionary LocalizationDictionary
|
|
{
|
|
[Export("localizationDictionary")]
|
|
get
|
|
{
|
|
return (NSDictionary)(__mt_LocalizationDictionary_var = ((!IsDirectBinding) ? ((NSDictionary)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selLocalizationDictionaryHandle))) : ((NSDictionary)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selLocalizationDictionaryHandle)))));
|
|
}
|
|
[Export("setLocalizationDictionary:")]
|
|
set
|
|
{
|
|
if (value == null)
|
|
{
|
|
throw new ArgumentNullException("value");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetLocalizationDictionary_Handle, value.Handle);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetLocalizationDictionary_Handle, value.Handle);
|
|
}
|
|
__mt_LocalizationDictionary_var = value;
|
|
}
|
|
}
|
|
|
|
public virtual NSDictionary FetchRequestTemplatesByName
|
|
{
|
|
[Export("fetchRequestTemplatesByName")]
|
|
get
|
|
{
|
|
return (NSDictionary)(__mt_FetchRequestTemplatesByName_var = ((!IsDirectBinding) ? ((NSDictionary)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selFetchRequestTemplatesByNameHandle))) : ((NSDictionary)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selFetchRequestTemplatesByNameHandle)))));
|
|
}
|
|
}
|
|
|
|
public virtual NSSet VersionIdentifiers
|
|
{
|
|
[Export("versionIdentifiers")]
|
|
get
|
|
{
|
|
return (NSSet)(__mt_VersionIdentifiers_var = ((!IsDirectBinding) ? ((NSSet)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selVersionIdentifiersHandle))) : ((NSSet)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selVersionIdentifiersHandle)))));
|
|
}
|
|
[Export("setVersionIdentifiers:")]
|
|
set
|
|
{
|
|
if (value == null)
|
|
{
|
|
throw new ArgumentNullException("value");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_IntPtr(base.Handle, selSetVersionIdentifiers_Handle, value.Handle);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_IntPtr(base.SuperHandle, selSetVersionIdentifiers_Handle, value.Handle);
|
|
}
|
|
__mt_VersionIdentifiers_var = value;
|
|
}
|
|
}
|
|
|
|
public virtual NSDictionary EntityVersionHashesByName
|
|
{
|
|
[Export("entityVersionHashesByName")]
|
|
get
|
|
{
|
|
return (NSDictionary)(__mt_EntityVersionHashesByName_var = ((!IsDirectBinding) ? ((NSDictionary)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, selEntityVersionHashesByNameHandle))) : ((NSDictionary)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend(base.Handle, selEntityVersionHashesByNameHandle)))));
|
|
}
|
|
}
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
|
[Export("init")]
|
|
public NSManagedObjectModel()
|
|
: base(NSObjectFlag.Empty)
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSend(base.Handle, Selector.Init);
|
|
}
|
|
else
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSendSuper(base.SuperHandle, Selector.Init);
|
|
}
|
|
}
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
|
[Export("initWithCoder:")]
|
|
public NSManagedObjectModel(NSCoder coder)
|
|
: base(NSObjectFlag.Empty)
|
|
{
|
|
if (IsDirectBinding)
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, Selector.InitWithCoder, coder.Handle);
|
|
}
|
|
else
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, Selector.InitWithCoder, coder.Handle);
|
|
}
|
|
}
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
|
public NSManagedObjectModel(NSObjectFlag t)
|
|
: base(t)
|
|
{
|
|
}
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
|
public NSManagedObjectModel(IntPtr handle)
|
|
: base(handle)
|
|
{
|
|
}
|
|
|
|
[Export("mergedModelFromBundles:")]
|
|
public static NSManagedObjectModel MergedModelFromBundles(NSBundle[] bundles)
|
|
{
|
|
if (bundles == null)
|
|
{
|
|
throw new ArgumentNullException("bundles");
|
|
}
|
|
NSArray nSArray = NSArray.FromNSObjects(bundles);
|
|
NSManagedObjectModel result = (NSManagedObjectModel)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr(class_ptr, selMergedModelFromBundles_Handle, nSArray.Handle));
|
|
nSArray.Dispose();
|
|
return result;
|
|
}
|
|
|
|
[Export("modelByMergingModels:")]
|
|
public static NSManagedObjectModel ModelByMergingModels(NSManagedObjectModel[] models)
|
|
{
|
|
if (models == null)
|
|
{
|
|
throw new ArgumentNullException("models");
|
|
}
|
|
NSArray nSArray = NSArray.FromNSObjects(models);
|
|
NSManagedObjectModel result = (NSManagedObjectModel)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr(class_ptr, selModelByMergingModels_Handle, nSArray.Handle));
|
|
nSArray.Dispose();
|
|
return result;
|
|
}
|
|
|
|
[Export("initWithContentsOfURL:")]
|
|
public NSManagedObjectModel(NSUrl url)
|
|
: base(NSObjectFlag.Empty)
|
|
{
|
|
if (url == null)
|
|
{
|
|
throw new ArgumentNullException("url");
|
|
}
|
|
if (IsDirectBinding)
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selInitWithContentsOfURL_Handle, url.Handle);
|
|
}
|
|
else
|
|
{
|
|
base.Handle = Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selInitWithContentsOfURL_Handle, url.Handle);
|
|
}
|
|
}
|
|
|
|
[Export("entitiesForConfiguration:")]
|
|
public virtual string[] EntitiesForConfiguration(string configuration)
|
|
{
|
|
if (configuration == null)
|
|
{
|
|
throw new ArgumentNullException("configuration");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(configuration);
|
|
string[] result = (!IsDirectBinding) ? NSArray.StringArrayFromHandle(Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selEntitiesForConfiguration_Handle, intPtr)) : NSArray.StringArrayFromHandle(Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selEntitiesForConfiguration_Handle, intPtr));
|
|
NSString.ReleaseNative(intPtr);
|
|
return result;
|
|
}
|
|
|
|
[Export("setEntities:forConfiguration:")]
|
|
public virtual void SetEntities(NSEntityDescription[] entities, string configuration)
|
|
{
|
|
if (entities == null)
|
|
{
|
|
throw new ArgumentNullException("entities");
|
|
}
|
|
if (configuration == null)
|
|
{
|
|
throw new ArgumentNullException("configuration");
|
|
}
|
|
NSArray nSArray = NSArray.FromNSObjects(entities);
|
|
IntPtr intPtr = NSString.CreateNative(configuration);
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_IntPtr_IntPtr(base.Handle, selSetEntitiesForConfiguration_Handle, nSArray.Handle, intPtr);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_IntPtr_IntPtr(base.SuperHandle, selSetEntitiesForConfiguration_Handle, nSArray.Handle, intPtr);
|
|
}
|
|
nSArray.Dispose();
|
|
NSString.ReleaseNative(intPtr);
|
|
}
|
|
|
|
[Export("setFetchRequestTemplate:forName:")]
|
|
public virtual void SetFetchRequestTemplate(NSFetchRequest fetchRequestTemplate, string name)
|
|
{
|
|
if (fetchRequestTemplate == null)
|
|
{
|
|
throw new ArgumentNullException("fetchRequestTemplate");
|
|
}
|
|
if (name == null)
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(name);
|
|
if (IsDirectBinding)
|
|
{
|
|
Messaging.void_objc_msgSend_IntPtr_IntPtr(base.Handle, selSetFetchRequestTemplateForName_Handle, fetchRequestTemplate.Handle, intPtr);
|
|
}
|
|
else
|
|
{
|
|
Messaging.void_objc_msgSendSuper_IntPtr_IntPtr(base.SuperHandle, selSetFetchRequestTemplateForName_Handle, fetchRequestTemplate.Handle, intPtr);
|
|
}
|
|
NSString.ReleaseNative(intPtr);
|
|
}
|
|
|
|
[Export("fetchRequestTemplateForName:")]
|
|
public virtual NSFetchRequest FetchRequestTemplateForName(string name)
|
|
{
|
|
if (name == null)
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(name);
|
|
NSFetchRequest result = (!IsDirectBinding) ? ((NSFetchRequest)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_IntPtr(base.SuperHandle, selFetchRequestTemplateForName_Handle, intPtr))) : ((NSFetchRequest)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr(base.Handle, selFetchRequestTemplateForName_Handle, intPtr)));
|
|
NSString.ReleaseNative(intPtr);
|
|
return result;
|
|
}
|
|
|
|
[Export("fetchRequestFromTemplateWithName:substitutionVariables:")]
|
|
public virtual NSFetchRequest FetchRequestFromTemplateWithName(string name, NSDictionary variables)
|
|
{
|
|
if (name == null)
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
if (variables == null)
|
|
{
|
|
throw new ArgumentNullException("variables");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(name);
|
|
NSFetchRequest result = (!IsDirectBinding) ? ((NSFetchRequest)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSendSuper_IntPtr_IntPtr(base.SuperHandle, selFetchRequestFromTemplateWithNameSubstitutionVariables_Handle, intPtr, variables.Handle))) : ((NSFetchRequest)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr(base.Handle, selFetchRequestFromTemplateWithNameSubstitutionVariables_Handle, intPtr, variables.Handle)));
|
|
NSString.ReleaseNative(intPtr);
|
|
return result;
|
|
}
|
|
|
|
[Export("mergedModelFromBundles:forStoreMetadata:")]
|
|
public static NSManagedObjectModel MergedModelFromBundles(NSBundle[] bundles, NSDictionary metadata)
|
|
{
|
|
if (bundles == null)
|
|
{
|
|
throw new ArgumentNullException("bundles");
|
|
}
|
|
if (metadata == null)
|
|
{
|
|
throw new ArgumentNullException("metadata");
|
|
}
|
|
NSArray nSArray = NSArray.FromNSObjects(bundles);
|
|
NSManagedObjectModel result = (NSManagedObjectModel)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr(class_ptr, selMergedModelFromBundlesForStoreMetadata_Handle, nSArray.Handle, metadata.Handle));
|
|
nSArray.Dispose();
|
|
return result;
|
|
}
|
|
|
|
[Export("modelByMergingModels:forStoreMetadata:")]
|
|
public static NSManagedObjectModel ModelByMergingModels(NSManagedObjectModel[] models, NSDictionary metadata)
|
|
{
|
|
if (models == null)
|
|
{
|
|
throw new ArgumentNullException("models");
|
|
}
|
|
if (metadata == null)
|
|
{
|
|
throw new ArgumentNullException("metadata");
|
|
}
|
|
NSArray nSArray = NSArray.FromNSObjects(models);
|
|
NSManagedObjectModel result = (NSManagedObjectModel)Runtime.GetNSObject(Messaging.IntPtr_objc_msgSend_IntPtr_IntPtr(class_ptr, selModelByMergingModelsForStoreMetadata_Handle, nSArray.Handle, metadata.Handle));
|
|
nSArray.Dispose();
|
|
return result;
|
|
}
|
|
|
|
[Export("isConfiguration:compatibleWithStoreMetadata:")]
|
|
public virtual bool IsConfiguration(string configuration, NSDictionary metadata)
|
|
{
|
|
if (configuration == null)
|
|
{
|
|
throw new ArgumentNullException("configuration");
|
|
}
|
|
if (metadata == null)
|
|
{
|
|
throw new ArgumentNullException("metadata");
|
|
}
|
|
IntPtr intPtr = NSString.CreateNative(configuration);
|
|
bool result = (!IsDirectBinding) ? Messaging.bool_objc_msgSendSuper_IntPtr_IntPtr(base.SuperHandle, selIsConfigurationCompatibleWithStoreMetadata_Handle, intPtr, metadata.Handle) : Messaging.bool_objc_msgSend_IntPtr_IntPtr(base.Handle, selIsConfigurationCompatibleWithStoreMetadata_Handle, intPtr, metadata.Handle);
|
|
NSString.ReleaseNative(intPtr);
|
|
return result;
|
|
}
|
|
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
base.Dispose(disposing);
|
|
if (base.Handle == IntPtr.Zero)
|
|
{
|
|
__mt_EntitiesByName_var = null;
|
|
__mt_Entities_var = null;
|
|
__mt_LocalizationDictionary_var = null;
|
|
__mt_FetchRequestTemplatesByName_var = null;
|
|
__mt_VersionIdentifiers_var = null;
|
|
__mt_EntityVersionHashesByName_var = null;
|
|
}
|
|
}
|
|
}
|
|
}
|