Big rename part 2: 'config' etc. to 'mapping.
[enjoyable.git] / TargetConfig.m
index 8e4fc40..0f892c6 100644 (file)
@@ -7,30 +7,38 @@
 
 #import "TargetConfig.h"
 
+#import "ApplicationController.h"
+#import "NJMapping.h"
+#import "NJMappingsController.h"
 
 @implementation TargetConfig
 
-@synthesize config;
++ (NSString *)serializationCode {
+    return @"mapping";
+}
 
--(NSString*) stringify {
-       return [[NSString alloc] initWithFormat: @"cfg~%@", [config name]];
+- (NSDictionary *)serialize {
+    return _mapping
+        ? @{ @"type": @"mapping", @"name": _mapping.name }
+        : nil;
 }
 
-+(TargetConfig*) unstringifyImpl: (NSArray*) comps withConfigList: (NSArray*) configs {
-       NSParameterAssert([comps count] == 2);
-       NSString* name = comps[1];
-       TargetConfig* target = [[TargetConfig alloc] init];
-       for(int i=0; i<[configs count]; i++)
-               if([[configs[i] name] isEqualToString:name]) {
-                       [target setConfig: configs[i]];
-                       return target;
-               }
-       NSLog(@"Warning: couldn't find matching config to restore from: %@",name);
-       return NULL;
++ (TargetConfig *)targetDeserialize:(NSDictionary *)serialization
+                        withMappings:(NSArray *)mappings {
+    NSString *name = serialization[@"name"];
+    TargetConfig *target = [[TargetConfig alloc] init];
+    for (NJMapping *mapping in mappings) {
+        if ([mapping.name isEqualToString:name]) {
+            target.mapping = mapping;
+            return target;
+        }
+    }
+    return nil;
 }
 
--(void) trigger {
-       [[(ApplicationController *)[[NSApplication sharedApplication] delegate] configsController] activateConfig:config];
+- (void)trigger {
+    ApplicationController *ctrl = NSApplication.sharedApplication.delegate;
+    [ctrl.mappingsController activateMapping:_mapping];
 }
 
 @end