Revision: 4989
          http://skim-app.svn.sourceforge.net/skim-app/?rev=4989&view=rev
Author:   hofman
Date:     2008-11-24 00:13:32 +0000 (Mon, 24 Nov 2008)

Log Message:
-----------
insert abstract value transformer class for arrays

Modified Paths:
--------------
    trunk/SKUnarchiveFromDataArrayTransformer.h
    trunk/SKUnarchiveFromDataArrayTransformer.m

Modified: trunk/SKUnarchiveFromDataArrayTransformer.h
===================================================================
--- trunk/SKUnarchiveFromDataArrayTransformer.h 2008-11-23 18:48:37 UTC (rev 
4988)
+++ trunk/SKUnarchiveFromDataArrayTransformer.h 2008-11-24 00:13:32 UTC (rev 
4989)
@@ -40,5 +40,9 @@
 
 extern NSString *SKUnarchiveFromDataArrayTransformerName;
 
[EMAIL PROTECTED] SKUnarchiveFromDataArrayTransformer : NSValueTransformer
[EMAIL PROTECTED] SKArrayValueTransformer : NSValueTransformer
++ (NSValueTransformer *)itemValueTransformer;
 @end
+
[EMAIL PROTECTED] SKUnarchiveFromDataArrayTransformer : SKArrayValueTransformer
[EMAIL PROTECTED]

Modified: trunk/SKUnarchiveFromDataArrayTransformer.m
===================================================================
--- trunk/SKUnarchiveFromDataArrayTransformer.m 2008-11-23 18:48:37 UTC (rev 
4988)
+++ trunk/SKUnarchiveFromDataArrayTransformer.m 2008-11-24 00:13:32 UTC (rev 
4989)
@@ -40,23 +40,28 @@
 
 NSString *SKUnarchiveFromDataArrayTransformerName = 
@"SKUnarchiveFromDataArrayTransformer";
 
[EMAIL PROTECTED] SKUnarchiveFromDataArrayTransformer
 
[EMAIL PROTECTED] SKArrayValueTransformer
+
++ (NSValueTransformer *)itemValueTransformer {
+    return [[[NSValueTransformer alloc] init] autorelease];
+}
+
 + (Class)transformedValueClass {
     return [NSArray class];
 }
 
 + (BOOL)allowsReverseTransformation {
-    return YES;
+    return [[[self itemValueTransformer] class] allowsReverseTransformation];
 }
 
 - (NSArray *)transformedArray:(NSArray *)array usingSelector:(SEL)selector {
-    NSValueTransformer *unarchiveTransformer = [NSValueTransformer 
valueTransformerForName:NSUnarchiveFromDataTransformerName];
+    NSValueTransformer *itemValueTransformer = [[self class] 
itemValueTransformer];
     NSMutableArray *transformedArray = [NSMutableArray 
arrayWithCapacity:[array count]];
     NSEnumerator *objEnum = [array objectEnumerator];
-    NSData *obj;
+    id obj;
     while (obj = [objEnum nextObject])
-        [transformedArray addObject:[unarchiveTransformer 
performSelector:selector withObject:obj]];
+        [transformedArray addObject:[itemValueTransformer 
performSelector:selector withObject:obj] ?: [NSNull null]];
     return transformedArray;
 }
 
@@ -69,3 +74,13 @@
 }
 
 @end
+
+#pragma mark -
+
[EMAIL PROTECTED] SKUnarchiveFromDataArrayTransformer
+
++ (NSValueTransformer *)itemValueTransformer {
+    return [NSValueTransformer 
valueTransformerForName:NSUnarchiveFromDataTransformerName];
+}
+
[EMAIL PROTECTED]


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit

Reply via email to