CPF/CPF.Mac/Mac/CoreData/NSManagedObjectModel.cs
2023-11-21 23:05:03 +08:00

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;
}
}
}
}