summaryrefslogtreecommitdiffabout
path: root/pumpkin/NSPortNumberTransformer.m
blob: e1a14a55bc0f11126221f98dd9efb77ad1de9e0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#import "NSPortNumberTransformer.h"

@implementation NSPortNumberTransformer

+(Class)transformedValueClass { return [NSNumber class]; }
+(BOOL)allowsReverseTransformation { return YES; }
-(id)transformedValue:(id)value {
    if(value==nil) return nil;
    if(![value respondsToSelector:@selector(integerValue)]) return nil;
    NSInteger rv = [value integerValue];
    if(rv<1 || rv>32767) return nil;
    return [NSString stringWithFormat:@"%u",rv];
}
-(id)reverseTransformedValue:(id)value {
    if(value==nil) return nil;
    if(![value respondsToSelector:@selector(integerValue)]) return nil;
    NSInteger rv = [value integerValue];
    if(rv<1 || rv>32767) return nil;
    return [NSNumber numberWithInteger:rv];
}

@end