root/branches/CoreData/SapphireFrappliance/MetaData/SapphireMObjects/SapphireGenre.m @ 739

Revision 739, 2.0 KB (checked in by gbooker, 20 months ago)

Ran a static analysis. Corrected many leaks, unused assignments, and missing assignments.

Line 
1#import "SapphireGenre.h"
2#import "CoreDataSupportFunctions.h"
3#import "SapphireFileSorter.h"
4#import "SapphireMovie.h"
5
6@implementation SapphireGenre
7
8static NSArray *allowedSorts = nil;
9
10+ (void)load
11{
12        allowedSorts = [[NSArray alloc] initWithObjects:[SapphireMovieTitleSorter sharedInstance], [SapphireDateSorter sharedInstance], [SapphireMovieIMDBRatingSorter sharedInstance], nil];
13}
14
15+ (SapphireGenre *)genre:(NSString *)genre inContext:(NSManagedObjectContext *)moc
16{
17        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@", genre];
18        return (SapphireGenre *)doSingleFetchRequest(SapphireGenreName, moc, predicate);
19}
20       
21+ (SapphireGenre *)createGenre:(NSString *)genre inContext:(NSManagedObjectContext *)moc
22{
23        SapphireGenre *ret = [SapphireGenre genre:genre inContext:moc];
24        if(ret != nil)
25                return ret;
26       
27        ret = [NSEntityDescription insertNewObjectForEntityForName:SapphireGenreName inManagedObjectContext:moc];
28        ret.name = genre;
29        return ret;
30}
31
32+ (NSDictionary *)upgradeV1GenresFromContext:(NSManagedObjectContext *)oldMoc toContext:(NSManagedObjectContext *)newMoc
33{
34        NSMutableDictionary *lookup = [NSMutableDictionary dictionary];
35        NSArray *oldGenres = doFetchRequest(SapphireGenreName, oldMoc, nil);
36        NSEnumerator *genreEnum = [oldGenres objectEnumerator];
37        NSManagedObject *oldGenre;
38        while((oldGenre = [genreEnum nextObject]) != nil)
39        {
40                SapphireGenre *newGenre = [NSEntityDescription insertNewObjectForEntityForName:SapphireGenreName inManagedObjectContext:newMoc];
41                NSString *name = [oldGenre valueForKey:@"name"];
42                newGenre.name = name;
43                newGenre.sortMethod = [oldGenre valueForKey:@"sortMethod"];
44                [lookup setObject:newGenre forKey:name];
45        }
46        return lookup;
47}
48
49- (NSPredicate *)metaFileFetchPredicate
50{
51        NSArray *movieIds = [self.moviesSet valueForKey:@"objectID"];
52        return [NSPredicate predicateWithFormat:@"movie IN %@", movieIds];
53}
54
55- (NSArray *)fileSorters
56{
57        return allowedSorts;
58}
59
60- (NSString *)path
61{
62        return [[super path] stringByAppendingPathComponent:self.name];
63}
64
65@end
Note: See TracBrowser for help on using the browser.