5 // Created by Hori,Masaki on 2014/02/09.
6 // Copyright (c) 2014年 Hori,Masaki. All rights reserved.
9 #import <Foundation/Foundation.h>
11 @interface HMJSONCommand : NSObject <NSCopying>
13 + (HMJSONCommand *)commandForAPI:(NSString *)api;
15 @property (copy) NSString *argumentsString;
16 @property (strong) NSData *jsonData;
17 @property (strong) NSDate *recieveDate;
23 + (void)registerClass:(Class)commandClass;
26 + (void)registerInstance:(id)command;
28 @property (copy, readonly) NSString *api; // api is /kcsapi/mainAPI/subAPI
29 @property (strong, readonly) NSDictionary *arguments;
30 @property (strong, readonly) id json; // NSArray or NSDictionary
33 @property (strong, readonly) NSArray *jsonTree; // for NSTreeController
34 @property (strong, readonly) NSArray *argumentArray; // for NSArrayController
37 + (BOOL)canExcuteAPI:(NSString *)api;
39 @property (readonly) NSArray *ignoreKeys;
41 @property (readonly) NSString *dataKey;
43 - (void)commitJSONToEntityNamed:(NSString *)entityName;
47 - (BOOL)handleExtraValue:(id)value forKey:(NSString *)key toObject:(NSManagedObject *)object;
50 - (void)finishOperating:(NSManagedObjectContext *)moc;
52 - (void)setValueIfNeeded:(id)value toObject:(id)object forKey:(NSString *)key;
54 NSString *keyByDeletingPrefix(NSString *key);
56 - (void)log:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);