OSDN Git Service

HMMasterMissionCommandクラスをSwiftで書き換え
[kcd/KCD.git] / KCD / HMJSONCommand.h
1 //
2 //  HMJSONCommand.h
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2014/02/09.
6 //  Copyright (c) 2014年 Hori,Masaki. All rights reserved.
7 //
8
9 #import <Foundation/Foundation.h>
10
11 @interface HMJSONCommand : NSObject <NSCopying>
12
13 + (HMJSONCommand *)commandForAPI:(NSString *)api;
14
15 @property (copy) NSString *argumentsString;
16 @property (strong) NSData *jsonData;
17 @property (strong) NSDate *recieveDate;
18
19 - (void)execute;
20
21
22 // for subclass
23 + (void)registerClass:(Class)commandClass;
24
25 // for Swift
26 + (void)registerInstance:(id)command;
27
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
31
32 #if ENABLE_JSON_LOG
33 @property (strong, readonly) NSArray *jsonTree; // for NSTreeController
34 @property (strong, readonly) NSArray *argumentArray; // for NSArrayController
35 #endif
36
37 + (BOOL)canExcuteAPI:(NSString *)api;
38
39 @property (readonly) NSArray *ignoreKeys;
40
41 @property (readonly) NSString *dataKey;
42
43 - (void)commitJSONToEntityNamed:(NSString *)entityName;
44
45 // 特別な処理を行う
46 // default return NO
47 - (BOOL)handleExtraValue:(id)value forKey:(NSString *)key toObject:(NSManagedObject *)object;
48
49 // データ登録後の処理を行う
50 - (void)finishOperating:(NSManagedObjectContext *)moc;
51
52 - (void)setValueIfNeeded:(id)value toObject:(id)object forKey:(NSString *)key;
53
54 NSString *keyByDeletingPrefix(NSString *key);
55
56 - (void)log:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);
57
58 @end