Show
Ignore:
Timestamp:
01/08/09 21:03:22 (3 years ago)
Author:
gbooker
Message:

Switched the the next version of the metadata.
Fixes #264

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/CoreData/SapphireFrappliance/MetaData/SapphireMObjects/SapphireDirectorySymLink.m

    r585 r734  
    11#import "SapphireDirectorySymLink.h" 
    22#import "SapphireDirectoryMetaData.h" 
     3#import "CoreDataSupportFunctions.h" 
    34 
    45@implementation SapphireDirectorySymLink 
     
    2728        return ret; 
    2829} 
     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 
    2959@end