Changeset 1294 for trunk

Show
Ignore:
Timestamp:
06/29/10 07:48:17 (23 months ago)
Author:
gbooker
Message:

Apparently the cast/genre/director cache may not store all values (appears to be an inconsistent database). Save lookups by continuing to use cache, but fallback on a miss.
Fixes #375

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/SapphireFrappliance/MetaData/SapphireMObjects/SapphireMovie.m

    r1288 r1294  
    198198                while((name = [castEnum nextObject]) != nil) 
    199199                { 
    200                         [objArray addObject:[cast objectForKey:name]]; 
     200                        SapphireCast *castMember = [cast objectForKey:name]; 
     201                        if(castMember == nil) 
     202                                castMember = [SapphireCast createCast:name inContext:newMoc]; 
     203                        [objArray addObject:castMember]; 
    201204                } 
    202205                newMovie.orderedCast = objArray; 
     
    208211                while((name = [directorEnum nextObject]) != nil) 
    209212                { 
    210                         [objArray addObject:[directors objectForKey:name]]; 
     213                        SapphireDirector *director = [directors objectForKey:name]; 
     214                        if(director == nil) 
     215                                director = [SapphireDirector createDirector:name inContext:newMoc]; 
     216                        [objArray addObject:director]; 
    211217                } 
    212218                newMovie.orderedDirectors = objArray; 
     
    218224                while((name = [genreEnum nextObject]) != nil) 
    219225                { 
    220                         [objArray addObject:[genres objectForKey:name]]; 
     226                        SapphireGenre *genre = [genres objectForKey:name]; 
     227                        if(genre == nil) 
     228                                genre = [SapphireGenre createGenre:name inContext:newMoc]; 
     229                        [objArray addObject:genre]; 
    221230                } 
    222231                newMovie.orderedGenres = objArray;