<commit_before>//
//  VOKMappableModel.h
//  VOKCoreData
//

#import "VOKCoreDataManager.h"

/**
 *  Any models that conform to this protocol will be automatically registered for mapping with the shared instance 
 *  of VOKCoreDataManager.
 */
@protocol VOKMappableModel <NSObject>

///@return an array of VOKManagedObjectMap objects mapping foreign keys to local keys.
+ (NSArray *)coreDataMaps;

///@return the key name to use to uniquely compare two instances of a class.
+ (NSString *)uniqueKey;

// If an optional method isn't defined, the default VOKManagedObjectMap behavior/value will be used.
@optional

///@return whether to ignore remote null/nil values are ignored when updating.
+ (BOOL)ignoreNullValueOverwrites;<commit_msg>Add note about how protocol conformance checking works.<commit_after>//
//  VOKMappableModel.h
//  VOKCoreData
//

#import "VOKCoreDataManager.h"

/**
 *  Any models that conform to this protocol will be automatically registered for mapping with the shared instance 
 *  of VOKCoreDataManager.
 *
 *  Note that runtime protocol-conformance is based on declared conformance (the angle-bracketed protocol name appended 
 *  to the interface) and not by checking that the required methods are implemented.  If you ignore the compiler 
 *  warnings about failing to implement required methods, your app will crash.
 */
@protocol VOKMappableModel <NSObject>

///@return an array of VOKManagedObjectMap objects mapping foreign keys to local keys.
+ (NSArray *)coreDataMaps;

///@return the key name to use to uniquely compare two instances of a class.
+ (NSString *)uniqueKey;

// If an optional method isn't defined, the default VOKManagedObjectMap behavior/value will be used.
@optional

///@return whether to ignore remote null/nil values are ignored when updating.
+ (BOOL)ignoreNullValueOverwrites;
{'fraction_non_alphanumeric': 0.07629427792915532, 'fraction_numerical': 0.0, 'mean_word_length': 4.337209302325581, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1184044', 'n_tokens_mistral': 502, 'n_tokens_neox': 489, 'n_words': 215}