root / Classes / Flavor.m @ 700184fb
History | View | Annotate | Download (1.2 kB)
1 | 700184fb | Miltiadis Vasilakis | // |
---|---|---|---|
2 | 700184fb | Miltiadis Vasilakis | // Flavor.m |
3 | 700184fb | Miltiadis Vasilakis | // OpenStack |
4 | 700184fb | Miltiadis Vasilakis | // |
5 | 700184fb | Miltiadis Vasilakis | // Created by Mike Mayo on 10/1/10. |
6 | 700184fb | Miltiadis Vasilakis | // The OpenStack project is provided under the Apache 2.0 license. |
7 | 700184fb | Miltiadis Vasilakis | // |
8 | 700184fb | Miltiadis Vasilakis | |
9 | 700184fb | Miltiadis Vasilakis | #import "Flavor.h" |
10 | 700184fb | Miltiadis Vasilakis | #import "NSObject+NSCoding.h" |
11 | 700184fb | Miltiadis Vasilakis | |
12 | 700184fb | Miltiadis Vasilakis | |
13 | 700184fb | Miltiadis Vasilakis | @implementation Flavor |
14 | 700184fb | Miltiadis Vasilakis | |
15 | 700184fb | Miltiadis Vasilakis | @synthesize ram, disk; |
16 | 700184fb | Miltiadis Vasilakis | |
17 | 700184fb | Miltiadis Vasilakis | #pragma mark - Serialization |
18 | 700184fb | Miltiadis Vasilakis | |
19 | 700184fb | Miltiadis Vasilakis | - (void)encodeWithCoder:(NSCoder *)coder { |
20 | 700184fb | Miltiadis Vasilakis | [self autoEncodeWithCoder:coder]; |
21 | 700184fb | Miltiadis Vasilakis | } |
22 | 700184fb | Miltiadis Vasilakis | |
23 | 700184fb | Miltiadis Vasilakis | - (id)initWithCoder:(NSCoder *)coder { |
24 | 700184fb | Miltiadis Vasilakis | self = [super init]; |
25 | 700184fb | Miltiadis Vasilakis | if (self) { |
26 | 700184fb | Miltiadis Vasilakis | [self autoDecode:coder]; |
27 | 700184fb | Miltiadis Vasilakis | } |
28 | 700184fb | Miltiadis Vasilakis | return self; |
29 | 700184fb | Miltiadis Vasilakis | } |
30 | 700184fb | Miltiadis Vasilakis | |
31 | 700184fb | Miltiadis Vasilakis | - (id)copyWithZone:(NSZone *)zone { |
32 | 700184fb | Miltiadis Vasilakis | Flavor *copy = [[Flavor allocWithZone:zone] init]; |
33 | 700184fb | Miltiadis Vasilakis | copy.identifier = self.identifier; |
34 | 700184fb | Miltiadis Vasilakis | copy.ram = self.ram; |
35 | 700184fb | Miltiadis Vasilakis | copy.disk = self.disk; |
36 | 700184fb | Miltiadis Vasilakis | return copy; |
37 | 700184fb | Miltiadis Vasilakis | } |
38 | 700184fb | Miltiadis Vasilakis | |
39 | 700184fb | Miltiadis Vasilakis | |
40 | 700184fb | Miltiadis Vasilakis | #pragma mark - JSON |
41 | 700184fb | Miltiadis Vasilakis | |
42 | 700184fb | Miltiadis Vasilakis | + (Flavor *)fromJSON:(NSDictionary *)dict { |
43 | 700184fb | Miltiadis Vasilakis | Flavor *flavor = [[[Flavor alloc] initWithJSONDict:dict] autorelease]; |
44 | 700184fb | Miltiadis Vasilakis | flavor.ram = [[dict objectForKey:@"ram"] intValue]; |
45 | 700184fb | Miltiadis Vasilakis | flavor.disk = [[dict objectForKey:@"disk"] intValue]; |
46 | 700184fb | Miltiadis Vasilakis | |
47 | 700184fb | Miltiadis Vasilakis | return flavor; |
48 | 700184fb | Miltiadis Vasilakis | } |
49 | 700184fb | Miltiadis Vasilakis | |
50 | 700184fb | Miltiadis Vasilakis | #pragma mark - Comparison |
51 | 700184fb | Miltiadis Vasilakis | |
52 | 700184fb | Miltiadis Vasilakis | // flavors should be sorted by RAM instead of name |
53 | 700184fb | Miltiadis Vasilakis | - (NSComparisonResult)compare:(Flavor *)aFlavor { |
54 | 700184fb | Miltiadis Vasilakis | return [[NSNumber numberWithInt:self.ram] compare:[NSNumber numberWithInt:aFlavor.ram]]; |
55 | 700184fb | Miltiadis Vasilakis | } |
56 | 700184fb | Miltiadis Vasilakis | |
57 | 700184fb | Miltiadis Vasilakis | |
58 | 700184fb | Miltiadis Vasilakis | @end |