MapsIndoors iOS SDK  V3
MPJSONModel.h
1 //
2 // MPJSONModel.h
3 // MPJSONModel
4 //
5 
6 #import <Foundation/Foundation.h>
7 
8 #import "MPJSONModelError.h"
9 #import "MPJSONValueTransformer.h"
10 #import "MPJSONKeyMapper.h"
11 
13 #if TARGET_IPHONE_SIMULATOR
14 #define JMLog( s, ... ) NSLog( @"[%@:%d] %@", [[NSString stringWithUTF8String:__FILE__] \
15 lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
16 #else
17 #define JMLog( s, ... )
18 #endif
20 
21 DEPRECATED_ATTRIBUTE
22 @protocol ConvertOnDemand
23 @end
24 
25 DEPRECATED_ATTRIBUTE
26 @protocol Index
27 @end
28 
29 #pragma mark - Property Protocols
37 @protocol Ignore
38 @end
39 
47 @protocol Optional
48 @end
49 
53 @interface NSObject (MPJSONModelPropertyCompatibility) <Optional, Ignore>
54 @end
55 
57 #pragma mark - MPJSONModel protocol
62 @protocol AbstractMPJSONModelProtocol <NSCopying, NSCoding>
63 
64 @required
74 - (instancetype)initWithDictionary:(NSDictionary *)dict error:(NSError **)err;
75 
76 
86 - (instancetype)initWithData:(NSData *)data error:(NSError **)error;
87 
99 - (NSDictionary *)toDictionary;
100 
109 - (NSDictionary *)toDictionaryWithKeys:(NSArray <NSString *> *)propertyNames;
110 @end
111 
113 #pragma mark - MPJSONModel interface
120 @interface MPJSONModel : NSObject <AbstractMPJSONModelProtocol, NSSecureCoding>
121 
122 // deprecated
123 + (NSMutableArray *)arrayOfModelsFromDictionaries:(NSArray *)array DEPRECATED_MSG_ATTRIBUTE("use arrayOfModelsFromDictionaries:error:");
124 + (void)setGlobalKeyMapper:(MPJSONKeyMapper *)globalKeyMapper DEPRECATED_MSG_ATTRIBUTE("override +keyMapper in a base model class instead");
125 + (NSString *)protocolForArrayProperty:(NSString *)propertyName DEPRECATED_MSG_ATTRIBUTE("use classForCollectionProperty:");
126 - (void)mergeFromDictionary:(NSDictionary *)dict useKeyMapping:(BOOL)useKeyMapping DEPRECATED_MSG_ATTRIBUTE("use mergeFromDictionary:useKeyMapping:error:");
127 - (NSString *)indexPropertyName DEPRECATED_ATTRIBUTE;
128 - (NSComparisonResult)compare:(id)object DEPRECATED_ATTRIBUTE;
129 
140 - (instancetype)initWithString:(NSString *)string error:(MPJSONModelError **)err;
141 
150 - (instancetype)initWithString:(NSString *)string usingEncoding:(NSStringEncoding)encoding error:(MPJSONModelError **)err;
151 
158 - (NSString *)toJSONString;
159 
164 - (NSData *)toJSONData;
165 
171 - (NSString *)toJSONStringWithKeys:(NSArray <NSString *> *)propertyNames;
172 
178 - (NSData *)toJSONDataWithKeys:(NSArray <NSString *> *)propertyNames;
179 
194 + (NSMutableArray *)arrayOfModelsFromDictionaries:(NSArray *)array error:(NSError **)err;
195 + (NSMutableArray *)arrayOfModelsFromData:(NSData *)data error:(NSError **)err;
196 + (NSMutableArray *)arrayOfModelsFromString:(NSString *)string error:(NSError **)err;
197 + (NSMutableDictionary *)dictionaryOfModelsFromDictionary:(NSDictionary *)dictionary error:(NSError **)err;
198 + (NSMutableDictionary *)dictionaryOfModelsFromData:(NSData *)data error:(NSError **)err;
199 + (NSMutableDictionary *)dictionaryOfModelsFromString:(NSString *)string error:(NSError **)err;
200 
210 + (NSMutableArray *)arrayOfDictionariesFromModels:(NSArray *)array;
211 + (NSMutableDictionary *)dictionaryOfDictionariesFromModels:(NSDictionary *)dictionary;
212 
227 - (BOOL)validate:(NSError **)error;
228 
235 
243 + (BOOL)propertyIsOptional:(NSString *)propertyName;
244 
252 + (BOOL)propertyIsIgnored:(NSString *)propertyName;
253 
274 + (Class)classForCollectionProperty:(NSString *)propertyName NS_SWIFT_NAME(classForCollectionProperty(propertyName:));
275 
282 - (BOOL)mergeFromDictionary:(NSDictionary *)dict useKeyMapping:(BOOL)useKeyMapping error:(NSError **)error;
283 
284 @end
Definition: MPJSONModel.h:53
Definition: MPJSONKeyMapper.h:41
Definition: MPJSONModelError.h:51
Definition: MPJSONModel.h:120
MPJSONKeyMapper * keyMapper()
NSString * toJSONString()
NSData * toJSONData()
Definition: MPJSONModel.h:62