// Created by Sam McCall on 4/05/09.
//
+#import "Config.h"
+
+#import "JSAction.h"
+
@implementation Config
--(id) init {
- if(self=[super init]) {
- entries = [[NSMutableDictionary alloc] init];
- }
- return self;
+- (id)initWithName:(NSString *)name {
+ if ((self = [super init])) {
+ self.name = name ? name : @"Untitled";
+ _entries = [[NSMutableDictionary alloc] init];
+ }
+ return self;
}
-@synthesize protect, name, entries;
+- (Target *)objectForKeyedSubscript:(JSAction *)action {
+ return action ? _entries[action.uid] : nil;
+}
--(void) setTarget:(Target*)target forAction:(id)jsa {
- [entries setValue:target forKey: [jsa stringify]];
+- (void)setObject:(Target *)target forKeyedSubscript:(JSAction *)action {
+ if (action) {
+ if (target)
+ _entries[action.uid] = target;
+ else
+ [_entries removeObjectForKey:action.uid];
+ }
}
--(Target*) getTargetForAction: (id) jsa {
- return entries[[jsa stringify]];
+
+- (NSDictionary *)serialize {
+ NSMutableDictionary* cfgEntries = [[NSMutableDictionary alloc] initWithCapacity:_entries.count];
+ for (id key in _entries)
+ cfgEntries[key] = [_entries[key] serialize];
+ return @{ @"name": _name, @"entries": cfgEntries };
}
@end