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

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

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

Line 
1#import "SapphireCast.h"
2#import "SapphireMovie.h"
3#import "CoreDataSupportFunctions.h"
4#import "SapphireFileSorter.h"
5
6@implementation SapphireCast
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+ (SapphireCast *)cast:(NSString *)cast inContext:(NSManagedObjectContext *)moc
16{
17        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@", cast];
18        return (SapphireCast *)doSingleFetchRequest(SapphireCastName, moc, predicate);
19}
20
21+ (SapphireCast *)createCast:(NSString *)cast inContext:(NSManagedObjectContext *)moc
22{
23        SapphireCast *ret = [SapphireCast cast:cast inContext:moc];
24        if(ret != nil)
25                return ret;
26       
27        ret = [NSEntityDescription insertNewObjectForEntityForName:SapphireCastName inManagedObjectContext:moc];
28        ret.name = cast;
29        return ret;
30}
31
32+ (NSDictionary *)upgradeV1CastFromContext:(NSManagedObjectContext *)oldMoc toContext:(NSManagedObjectContext *)newMoc
33{
34        NSMutableDictionary *lookup = [NSMutableDictionary dictionary];
35        NSArray *oldCast = doFetchRequest(SapphireCastName, oldMoc, nil);
36        NSEnumerator *castEnum = [oldCast objectEnumerator];
37        NSManagedObject *oldCastMember;
38        while((oldCastMember = [castEnum nextObject]) != nil)
39        {
40                SapphireCast *newCastMember = [NSEntityDescription insertNewObjectForEntityForName:SapphireCastName inManagedObjectContext:newMoc];
41                NSString *name = [oldCastMember valueForKey:@"name"];
42                newCastMember.name = name;
43                newCastMember.sortMethod = [oldCastMember valueForKey:@"sortMethod"];
44                newCastMember.hasMajorRole = [oldCastMember valueForKey:@"hasMajorRole"];
45                [lookup setObject:newCastMember forKey:name];
46        }
47        return lookup;
48}
49
50- (NSPredicate *)metaFileFetchPredicate
51{
52        NSArray *movieIds = [self.moviesSet valueForKey:@"objectID"];
53        return [NSPredicate predicateWithFormat:@"movie IN %@", movieIds];
54}
55
56- (NSArray *)fileSorters
57{
58        return allowedSorts;
59}
60
61- (NSString *)path
62{
63        return [[super path] stringByAppendingPathComponent:self.name];
64}
65
66- (void)removeMoviesObject:(SapphireMovie*)value_
67{
68        [super removeMoviesObject:value_];
69        BOOL currentMajorRole = self.hasMajorRoleValue;
70        BOOL majorRole = NO;
71        NSEnumerator *movieEnum = [self.moviesSet objectEnumerator];
72        SapphireMovie *movie;
73        while((movie = [movieEnum nextObject]) != nil)
74        {
75                if([movie castMemberHasMajorRoleStatus:self])
76                {
77                        majorRole = YES;
78                        break;
79                }
80        }
81        if(majorRole != currentMajorRole)
82                self.hasMajorRoleValue = majorRole;
83}
84
85@end
Note: See TracBrowser for help on using the browser.