2 // VLCValueTransformer.m
5 // Created by Pierre d'Herbemont on 12/29/07.
6 // Copyright 2007 __MyCompanyName__. All rights reserved.
9 #import "VLCValueTransformer.h"
12 @implementation VLCFloat10000FoldTransformer
14 + (Class)transformedValueClass
16 return [NSNumber class];
19 + (BOOL)allowsReverseTransformation
24 - (id)transformedValue:(id)value
26 if( !value ) return nil;
28 if(![value respondsToSelector: @selector(floatValue)])
30 [NSException raise: NSInternalInconsistencyException
31 format: @"Value (%@) does not respond to -floatValue.",
36 return [NSNumber numberWithFloat: [value floatValue]*10000.];
39 - (id)reverseTransformedValue:(id)value
41 if( !value ) return nil;
43 if(![value respondsToSelector: @selector(floatValue)])
45 [NSException raise: NSInternalInconsistencyException
46 format: @"Value (%@) does not respond to -floatValue.",
51 return [NSNumber numberWithFloat: [value floatValue]/10000.];
55 @implementation VLCNonNilAsBoolTransformer
57 + (Class)transformedValueClass
59 return [NSObject class];
62 + (BOOL)allowsReverseTransformation
67 - (NSNumber *)transformedValue:(id)value
69 return [NSNumber numberWithBool: !!value];
74 @implementation VLCURLToRepresentedFileNameTransformer
76 + (Class)transformedValueClass
81 + (BOOL)allowsReverseTransformation
86 - (NSString *)transformedValue:(id)value
88 if( ![value isKindOfClass:[NSURL class]] || ![value isFileURL] )
96 @implementation VLCSelectionIndexToDescriptionTransformer
98 + (Class)transformedValueClass
100 return [NSNumber class];
103 + (BOOL)allowsReverseTransformation
108 - (NSString *)transformedValue:(id)value
110 if( ![value isKindOfClass:[NSNumber class]])
113 return [value intValue] == NSNotFound ? @"" : [NSString stringWithFormat:@"%@ of ", value];