Statistics
| Branch: | Tag: | Revision:

root / Classes / Flavor.m @ 700184fb

History | View | Annotate | Download (1.2 kB)

1
//
2
//  Flavor.m
3
//  OpenStack
4
//
5
//  Created by Mike Mayo on 10/1/10.
6
//  The OpenStack project is provided under the Apache 2.0 license.
7
//
8

    
9
#import "Flavor.h"
10
#import "NSObject+NSCoding.h"
11

    
12

    
13
@implementation Flavor
14

    
15
@synthesize ram, disk;
16

    
17
#pragma mark - Serialization
18

    
19
- (void)encodeWithCoder:(NSCoder *)coder {
20
    [self autoEncodeWithCoder:coder];
21
}
22

    
23
- (id)initWithCoder:(NSCoder *)coder {
24
    self = [super init];
25
    if (self) {
26
        [self autoDecode:coder];
27
    }
28
    return self;
29
}
30

    
31
- (id)copyWithZone:(NSZone *)zone {
32
    Flavor *copy = [[Flavor allocWithZone:zone] init];
33
    copy.identifier = self.identifier;
34
    copy.ram = self.ram;
35
    copy.disk = self.disk;
36
    return copy;
37
}
38

    
39

    
40
#pragma mark - JSON
41

    
42
+ (Flavor *)fromJSON:(NSDictionary *)dict {
43
    Flavor *flavor = [[[Flavor alloc] initWithJSONDict:dict] autorelease];
44
    flavor.ram = [[dict objectForKey:@"ram"] intValue];
45
    flavor.disk = [[dict objectForKey:@"disk"] intValue];
46
    
47
    return flavor;
48
}
49

    
50
#pragma mark - Comparison
51

    
52
// flavors should be sorted by RAM instead of name
53
- (NSComparisonResult)compare:(Flavor *)aFlavor {
54
    return [[NSNumber numberWithInt:self.ram] compare:[NSNumber numberWithInt:aFlavor.ram]];
55
}
56

    
57

    
58
@end