| | 14 | |
| | 15 | + (void)upgradeV1XMLFromContext:(NSManagedObjectContext *)oldMoc toContext:(NSManagedObjectContext *)newMoc file:(NSDictionary *)fileLookup |
| | 16 | { |
| | 17 | NSArray *xmls = doFetchRequest(SapphireXMLDataName, oldMoc, nil); |
| | 18 | NSEnumerator *xmlEnum = [xmls objectEnumerator]; |
| | 19 | NSManagedObject *oldXML; |
| | 20 | while((oldXML = [xmlEnum nextObject]) != nil) |
| | 21 | { |
| | 22 | NSString *path = [oldXML valueForKeyPath:@"file.path"]; |
| | 23 | SapphireFileMetaData *file = nil; |
| | 24 | if(path != nil) |
| | 25 | file = [fileLookup objectForKey:path]; |
| | 26 | if(file == nil) |
| | 27 | continue; |
| | 28 | |
| | 29 | SapphireXMLData *newXML = [NSEntityDescription insertNewObjectForEntityForName:SapphireXMLDataName inManagedObjectContext:newMoc]; |
| | 30 | newXML.contentDescription = [oldXML valueForKey:@"contentDescription"]; |
| | 31 | newXML.fileClass = [oldXML valueForKey:@"fileClass"]; |
| | 32 | newXML.modified = [oldXML valueForKey:@"modified"]; |
| | 33 | newXML.summary = [oldXML valueForKey:@"summary"]; |
| | 34 | newXML.title = [oldXML valueForKey:@"title"]; |
| | 35 | |
| | 36 | NSManagedObject *epXML = [oldXML valueForKey:@"episode"]; |
| | 37 | if(epXML != nil) |
| | 38 | [SapphireXMLEpisodeData upgradeV1XMLEp:epXML toContext:newMoc inData:newXML]; |
| | 39 | NSManagedObject *movieXML = [oldXML valueForKey:@"movie"]; |
| | 40 | if(movieXML != nil) |
| | 41 | [SapphireXMLMovieData upgradeV1XMLMovie:movieXML toContext:newMoc inData:newXML]; |
| | 42 | file.xmlData = newXML; |
| | 43 | |
| | 44 | SapphireXMLEpisodeData *episode = newXML.episode; |
| | 45 | if(episode != nil && episode.episode == nil) |
| | 46 | [episode constructEpisode]; |
| | 47 | SapphireXMLMovieData *movie = newXML.movie; |
| | 48 | if(movie != nil && movie.movie == nil) |
| | 49 | [movie constructMovie]; |
| | 50 | } |
| | 51 | } |