#import "TargetConfig.h"
#import "ApplicationController.h"
-#import "Config.h"
-#import "ConfigsController.h"
+#import "NJMapping.h"
+#import "NJMappingsController.h"
@implementation TargetConfig
-- (NSString *)stringify {
- return [[NSString alloc] initWithFormat: @"cfg~%@", self.config.name];
++ (NSString *)serializationCode {
+ return @"mapping";
}
-+ (TargetConfig *)unstringifyImpl:(NSArray *)comps withConfigList:(NSArray *)configs {
- NSString *name = comps[1];
+- (NSDictionary *)serialize {
+ return _mapping
+ ? @{ @"type": @"mapping", @"name": _mapping.name }
+ : nil;
+}
+
++ (TargetConfig *)targetDeserialize:(NSDictionary *)serialization
+ withMappings:(NSArray *)mappings {
+ NSString *name = serialization[@"name"];
TargetConfig *target = [[TargetConfig alloc] init];
- for (Config *config in configs) {
- if ([config.name isEqualToString:name]) {
- target.config = config;
+ for (NJMapping *mapping in mappings) {
+ if ([mapping.name isEqualToString:name]) {
+ target.mapping = mapping;
return target;
}
}
- NSLog(@"Warning: couldn't find matching config to restore from: %@", name);
return nil;
}
- (void)trigger {
- [[(ApplicationController *)[[NSApplication sharedApplication] delegate] configsController] activateConfig:self.config];
+ ApplicationController *ctrl = NSApplication.sharedApplication.delegate;
+ [ctrl.mappingsController activateMapping:_mapping];
}
@end