Split NJMappingController view handling off into NJMappingViewController. This is...
[enjoyable.git] / Classes / NJMapping.m
index 355dbcc..04f6e68 100644 (file)
 // Extra checks during initialization because the data is often loaded
 // from untrusted serializations.
 
-- (id)initWithName:(NSString *)name {
+- (id)init {
     if ((self = [super init])) {
-        self.name = [name isKindOfClass:NSString.class] ? name : @"Untitled";
+        self.name = NSLocalizedString(@"Untitled", @"name for new mappings");
         _entries = [[NSMutableDictionary alloc] init];
     }
     return self;
 }
 
+- (id)initWithName:(NSString *)name {
+    if ((self = [self init])) {
+        if ([name isKindOfClass:NSString.class])
+            self.name = name;
+    }
+    return self;
+}
+
 - (id)initWithSerialization:(NSDictionary *)serialization
-                   mappings:(NSArray *)mappings {
+                   mappings:(id <NSFastEnumeration>)mappings {
     if ((self = [self initWithName:serialization[@"name"]])) {
         NSDictionary *entries = serialization[@"entries"];
         if ([entries isKindOfClass:NSDictionary.class]) {
     return NO;
 }
 
-+ (id)mappingWithContentsOfURL:(NSURL *)url mappings:(NSArray *)mappings error:(NSError **)error {
++ (id)mappingWithContentsOfURL:(NSURL *)url mappings:(id <NSFastEnumeration>)mappings error:(NSError **)error {
     NSInputStream *stream = [NSInputStream inputStreamWithURL:url];
     [stream open];
     NSDictionary *serialization = stream && !*error
           && [serialization[@"entries"] isKindOfClass:NSDictionary.class])) {
         *error = [NSError errorWithDomain:@"Enjoyable"
                                      code:0
-                              description:@"This isn't a valid mapping file."];
+                              description:NSLocalizedString(@"invalid mapping file",
+                                                            @"error when imported file was JSON but not a mapping")];
         return nil;
     }