@@ -18,13 +18,13 @@ #include #import "OFDictionary.h" #import "OFArray.h" #import "OFCharacterSet.h" +#import "OFConcreteDictionary.h" #import "OFData.h" #import "OFEnumerator.h" -#import "OFMapTableDictionary.h" #import "OFString.h" #import "OFInvalidArgumentException.h" #import "OFOutOfRangeException.h" #import "OFUndefinedKeyException.h" @@ -37,11 +37,11 @@ - (OFString *) of_JSONRepresentationWithOptions: (OFJSONRepresentationOptions)options depth: (size_t)depth; @end -@interface OFDictionaryPlaceholder: OFDictionary +@interface OFPlaceholderDictionary: OFDictionary @end OF_DIRECT_MEMBERS @interface OFDictionaryObjectEnumerator: OFEnumerator { @@ -50,39 +50,39 @@ } - (instancetype)initWithDictionary: (OFDictionary *)dictionary; @end -@implementation OFDictionaryPlaceholder +@implementation OFPlaceholderDictionary - (instancetype)init { - return (id)[[OFMapTableDictionary alloc] init]; + return (id)[[OFConcreteDictionary alloc] init]; } - (instancetype)initWithDictionary: (OFDictionary *)dictionary { - return (id)[[OFMapTableDictionary alloc] + return (id)[[OFConcreteDictionary alloc] initWithDictionary: dictionary]; } - (instancetype)initWithObject: (id)object forKey: (id)key { - return (id)[[OFMapTableDictionary alloc] initWithObject: object + return (id)[[OFConcreteDictionary alloc] initWithObject: object forKey: key]; } - (instancetype)initWithObjects: (OFArray *)objects forKeys: (OFArray *)keys { - return (id)[[OFMapTableDictionary alloc] initWithObjects: objects + return (id)[[OFConcreteDictionary alloc] initWithObjects: objects forKeys: keys]; } - (instancetype)initWithObjects: (id const *)objects forKeys: (id const *)keys count: (size_t)count { - return (id)[[OFMapTableDictionary alloc] initWithObjects: objects + return (id)[[OFConcreteDictionary alloc] initWithObjects: objects forKeys: keys count: count]; } - (instancetype)initWithKeysAndObjects: (id )firstKey, ... @@ -89,21 +89,21 @@ { id ret; va_list arguments; va_start(arguments, firstKey); - ret = [[OFMapTableDictionary alloc] initWithKey: firstKey + ret = [[OFConcreteDictionary alloc] initWithKey: firstKey arguments: arguments]; va_end(arguments); return ret; } - (instancetype)initWithKey: (id )firstKey arguments: (va_list)arguments { - return (id)[[OFMapTableDictionary alloc] initWithKey: firstKey + return (id)[[OFConcreteDictionary alloc] initWithKey: firstKey arguments: arguments]; } OF_SINGLETON_METHODS @end @@ -111,11 +111,11 @@ @implementation OFDictionary + (void)initialize { if (self == [OFDictionary class]) object_setClass((id)&placeholder, - [OFDictionaryPlaceholder class]); + [OFPlaceholderDictionary class]); } + (instancetype)alloc { if (self == [OFDictionary class])