Diffstat (limited to 'pumpkin/NSPortNumberTransformer.m') (more/less context) (ignore whitespace changes)
-rw-r--r-- | pumpkin/NSPortNumberTransformer.m | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/pumpkin/NSPortNumberTransformer.m b/pumpkin/NSPortNumberTransformer.m new file mode 100644 index 0000000..e1a14a5 --- a/dev/null +++ b/pumpkin/NSPortNumberTransformer.m | |||
@@ -0,0 +1,22 @@ | |||
1 | #import "NSPortNumberTransformer.h" | ||
2 | |||
3 | @implementation NSPortNumberTransformer | ||
4 | |||
5 | +(Class)transformedValueClass { return [NSNumber class]; } | ||
6 | +(BOOL)allowsReverseTransformation { return YES; } | ||
7 | -(id)transformedValue:(id)value { | ||
8 | if(value==nil) return nil; | ||
9 | if(![value respondsToSelector:@selector(integerValue)]) return nil; | ||
10 | NSInteger rv = [value integerValue]; | ||
11 | if(rv<1 || rv>32767) return nil; | ||
12 | return [NSString stringWithFormat:@"%u",rv]; | ||
13 | } | ||
14 | -(id)reverseTransformedValue:(id)value { | ||
15 | if(value==nil) return nil; | ||
16 | if(![value respondsToSelector:@selector(integerValue)]) return nil; | ||
17 | NSInteger rv = [value integerValue]; | ||
18 | if(rv<1 || rv>32767) return nil; | ||
19 | return [NSNumber numberWithInteger:rv]; | ||
20 | } | ||
21 | |||
22 | @end | ||