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/SapphireDirectoryMetaData.m

    r696 r734  
    1212#import "SapphireMovie.h" 
    1313#import "NSManagedObject-Extensions.h" 
     14#import "SapphireCollectionDirectory.h" 
    1415 
    1516@implementation SapphireDirectoryMetaData 
     
    5152 
    5253        return [SapphireDirectoryMetaData internalCreateDirectoryWithPath:path parent:parent inContext:moc]; 
     54} 
     55 
     56+ (NSDictionary *)upgradeV1DirectoriesFromContext:(NSManagedObjectContext *)oldMoc toContext:(NSManagedObjectContext *)newMoc 
     57{ 
     58        NSMutableDictionary *lookup = [NSMutableDictionary dictionary]; 
     59        NSArray *dirs = doFetchRequest(SapphireDirectoryMetaDataName, oldMoc, nil); 
     60        NSEnumerator *dirEnum = [dirs objectEnumerator]; 
     61        NSManagedObjectContext *oldDir; 
     62        while((oldDir = [dirEnum nextObject]) != nil) 
     63        { 
     64                SapphireDirectoryMetaData *newDir = [NSEntityDescription insertNewObjectForEntityForName:SapphireDirectoryMetaDataName inManagedObjectContext:newMoc]; 
     65                NSString *path = [oldDir valueForKey:@"path"]; 
     66                newDir.path = path; 
     67                NSManagedObject *oldCollection = [newDir valueForKey:@"collectionDirectory"]; 
     68                if(oldCollection != nil) 
     69                        newDir.collectionDirectory = [SapphireCollectionDirectory upgradeV1CollectionDirectory:oldCollection toContext:newMoc]; 
     70                [lookup setObject:newDir forKey:path]; 
     71        } 
     72        dirEnum = [dirs objectEnumerator]; 
     73        while((oldDir = [dirEnum nextObject]) != nil) 
     74        { 
     75                NSString *path = [oldDir valueForKey:@"path"]; 
     76                NSString *parentPath = [oldDir valueForKeyPath:@"parent.path"]; 
     77                if(parentPath != nil) 
     78                        ((SapphireDirectoryMetaData *)[lookup objectForKey:path]).parent = [lookup objectForKey:parentPath]; 
     79        } 
     80        return lookup; 
    5381} 
    5482