| | 30 | |
| | 31 | + (void)upgradeV1DirLinksFromContext:(NSManagedObjectContext *)oldMoc toContext:(NSManagedObjectContext *)newMoc directories:(NSDictionary *)dirLookup |
| | 32 | { |
| | 33 | NSArray *links = doFetchRequest(SapphireDirectorySymLinkName, oldMoc, nil); |
| | 34 | NSEnumerator *linkEnum = [links objectEnumerator]; |
| | 35 | NSManagedObject *oldLink; |
| | 36 | while((oldLink = [linkEnum nextObject]) != nil) |
| | 37 | { |
| | 38 | NSString *destinationPath = [oldLink valueForKeyPath:@"directory.path"]; |
| | 39 | SapphireDirectoryMetaData *destination = nil; |
| | 40 | if(destinationPath != nil) |
| | 41 | destination = [dirLookup objectForKey:destinationPath]; |
| | 42 | if(destination == nil) |
| | 43 | continue; |
| | 44 | |
| | 45 | NSString *containingPath = [oldLink valueForKeyPath:@"containingDirectory.path"]; |
| | 46 | SapphireDirectoryMetaData *containing = nil; |
| | 47 | if(containingPath != nil) |
| | 48 | containing = [dirLookup objectForKey:containingPath]; |
| | 49 | if(containing == nil) |
| | 50 | continue; |
| | 51 | |
| | 52 | SapphireDirectorySymLink *newLink = [NSEntityDescription insertNewObjectForEntityForName:SapphireDirectorySymLinkName inManagedObjectContext:newMoc]; |
| | 53 | newLink.path = [oldLink valueForKey:@"path"]; |
| | 54 | newLink.directory = destination; |
| | 55 | newLink.containingDirectory = containing; |
| | 56 | } |
| | 57 | } |
| | 58 | |