Statistics
| Branch: | Tag: | Revision:

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