// // NJMapping.m // Enjoy // // Created by Sam McCall on 4/05/09. // #import "NJMapping.h" #import "NJInput.h" @implementation NJMapping - (id)initWithName:(NSString *)name { if ((self = [super init])) { self.name = name ? name : @"Untitled"; _entries = [[NSMutableDictionary alloc] init]; } return self; } - (NJOutput *)objectForKeyedSubscript:(NJInput *)input { return input ? _entries[input.uid] : nil; } - (void)setObject:(NJOutput *)output forKeyedSubscript:(NJInput *)input { if (input) { if (output) _entries[input.uid] = output; else [_entries removeObjectForKey:input.uid]; } } - (NSDictionary *)serialize { NSMutableDictionary *entries = [[NSMutableDictionary alloc] initWithCapacity:_entries.count]; for (id key in _entries) { id serialized = [_entries[key] serialize]; if (serialized) entries[key] = serialized; } return @{ @"name": _name, @"entries": entries }; } @end