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

    r591 r734  
    66#import "SapphireGenre.h" 
    77#import "SapphireDirector.h" 
     8#import "CoreDataSupportFunctions.h" 
    89 
    910#define MODIFIED_KEY                            @"Modified" 
     
    1112 
    1213@implementation SapphireXMLData 
     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} 
    1352 
    1453- (SapphireXMLEpisodeData *)episodeXMLData 
     
    133172        if(value != nil) 
    134173                self.fileClass = value; 
     174         
     175        tv = self.episode; 
     176        if(tv != nil && tv.episode == nil) 
     177                [tv constructEpisode]; 
     178        movie = self.movie; 
     179        if(movie != nil && movie.movie == nil) 
     180                [movie constructMovie];  
    135181} 
    136182