Big rename part 2: 'config' etc. to 'mapping.
[enjoyable.git] / TargetConfig.m
index 763bbac..0f892c6 100644 (file)
@@ -8,30 +8,37 @@
 #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