Samond Classes Library 1.2.3-RELEASE build 192
SCDictionary.h
Go to the documentation of this file.
1 //
2 // SCDictionary.h
3 // scl
4 //
5 // Created by Viacheslav Smolensky on 13.04.12.
6 // Copyright (c) 2007 - 2017 by Samond Development Corporation. All rights reserved.
7 //
8 
22 #import <scl/SCCollection.h>
23 
24 #pragma mark -
25 #pragma mark Class Constants
26 
35 #define SCDictionaryClass @"SCDictionary"
36 
37 
77 @interface SCDictionary : SCCollection {
78  NSMutableDictionary *fDictionary; // Internal data storage
79 }
80 
106 @property (nonatomic, readonly, assign) SCArray *allKeys;
107 
112 @property (nonatomic, readonly, assign) SCArray *allValues;
113 
127 @property (nonatomic, readonly, assign) NSEnumerator *keyEnumerator;
128 
131 #pragma mark -
132 #pragma mark Creating Dictionaries
133 + (instancetype)dictionaryWithCoder:(NSCoder *)coder;
134 + (instancetype)dictionaryWithContentsOfSerializedFile:(NSString *)path;
135 + (instancetype)dictionaryWithDataDictionary:(NSDictionary *)dictionary;
136 + (instancetype)dictionaryWithDataDictionaryFromFile:(NSString *)path;
137 + (instancetype)dictionaryWithStream:(SCStream *)stream;
138 + (instancetype)dictionaryWithFileStream:(NSString *)path;
139 + (instancetype)dictionaryWithData:(NSData *)data;
140 + (instancetype)dictionaryWithContentsOfFile:(NSString *)path;
141 + (instancetype)dictionaryWithContentsOfURL:(NSURL *)url;
142 + (instancetype)dictionaryWithContentsOfURLString:(NSString *)urlString;
143 
144 + (instancetype)dictionaryWithName:(NSString *)name;
145 + (instancetype)dictionaryWithObject:(id<SCCollectioning>)object forKey:(NSString *)key;
146 + (instancetype)dictionaryWithObject:(id<SCCollectioning>)object;
147 + (instancetype)dictionaryWithObjects:(id<SCCollection>)objects forKeys:(id<SCCollection>)keys;
148 + (instancetype)dictionaryWithObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
149 + (instancetype)dictionaryWithObjectsAndKeys:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
150 + (instancetype)dictionaryWithCollection:(id<SCCollection>)collection;
151 + (instancetype)dictionaryWithDictionary:(SCDictionary *)dictionary;
152 + (instancetype)dictionary;
153 
154 #pragma mark -
155 #pragma mark Initializing Dictionaries
156 - (instancetype)initWithName:(NSString *)name;
157 - (instancetype)initWithObject:(id<SCCollectioning>)object forKey:(NSString *)key;
158 - (instancetype)initWithObject:(id<SCCollectioning>)object;
159 - (instancetype)initWithObjects:(id<SCCollection>)objects forKeys:(id<SCCollection>)keys;
160 - (instancetype)initWithObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
161 - (instancetype)initWithObjectsAndKeys:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
162 - (instancetype)initWithCollection:(id<SCCollection>)collection;
163 - (instancetype)initWithDictionary:(SCDictionary *)dictionary;
164 - (instancetype)init;
165 
166 #pragma mark -
167 #pragma mark Copying Dictionaries
168 - (void)setDictionary:(SCDictionary *)dictionary;
169 
170 #pragma mark -
171 #pragma mark Comparing Dictionaries
172 - (BOOL)isEqualToDictionary:(SCDictionary *)dictionary;
173 
174 #pragma mark -
175 #pragma mark Deriving New Dictionaries
176 - (SCDictionary *)dictionaryByAddingObject:(id<SCCollectioning>)object forKey:(NSString *)key;
177 - (SCDictionary *)dictionaryByAddingObject:(id<SCCollectioning>)object;
178 - (SCDictionary *)dictionaryByAddingObjects:(id<SCCollection>)objects forKeys:(id<SCCollection>)keys;
179 - (SCDictionary *)dictionaryByAddingObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
180 - (SCDictionary *)dictionaryByAddingObjectsAndKeys:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
181 - (SCDictionary *)dictionaryByAddingCollection:(id<SCCollection>)collection;
182 - (SCDictionary *)dictionaryByAddingObjectsFromArray:(SCArray *)array;
183 - (SCDictionary *)dictionaryByAddingArray:(SCArray *)array;
184 - (SCDictionary *)dictionaryByAddingEntriesFromDictionary:(SCDictionary *)dictionary;
185 - (SCDictionary *)dictionaryByAddingDictionary:(SCDictionary *)dictionary;
186 
187 #pragma mark -
188 #pragma mark Adding and Changing Objects
189 - (void)setObject:(id<SCCollectioning>)object forKey:(NSString *)key;
190 - (void)setObjects:(id<SCCollection>)objects forKeys:(id<SCCollection>)keys;
191 - (void)setObjectsAndKeys:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
192 - (void)setValue:(id<SCCollectioning>)value forKey:(NSString *)key;
193 - (void)setValues:(id<SCCollection>)values forKeys:(id<SCCollection>)keys;
194 - (void)setValuesAndKeys:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
195 - (void)addObjectsFromArray:(SCArray *)array;
196 - (void)addArray:(SCArray *)array;
197 - (void)addEntriesFromDictionary:(SCDictionary *)dictionary;
198 - (void)addDictionary:(SCDictionary *)dictionary;
199 - (void)addObjects:(id<SCCollection>)objects forKeys:(id<SCCollection>)keys;
200 - (void)addObjectsAndKeys:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
201 
202 #pragma mark -
203 #pragma mark Removing Objects
204 - (void)removeObjectForKey:(NSString *)key;
205 - (void)removeObjectsForKeys:(SCArray *)keys;
206 
207 #pragma mark -
208 #pragma mark Querying a Dictionary
209 - (SCArray *)allKeysForObject:(id<SCCollectioning>)object;
210 - (id)objectForKey:(NSString *)key;
211 - (id)valueForKey:(NSString *)key;
212 
213 #pragma mark -
214 #pragma mark Finding Objects and Keys in a Dictionary
215 - (BOOL)containsObjectForKey:(NSString *)key;
216 - (BOOL)containsStringForKey:(NSString *)key;
217 - (BOOL)containsNumberForKey:(NSString *)key;
218 - (BOOL)containsAnyObjectForKeys:(id<SCCollection>)keys;
219 - (BOOL)containsAllObjectsForKeys:(id<SCCollection>)keys;
220 - (BOOL)containsKey:(NSString *)key;
221 - (BOOL)containsKeys:(NSString *)key, ... NS_REQUIRES_NIL_TERMINATION;
222 - (BOOL)containsKeysFromCollection:(id<SCCollection>)collection;
223 - (BOOL)containsAnyKey:(NSString *)key, ... NS_REQUIRES_NIL_TERMINATION;
224 - (BOOL)containsAnyKeyFromCollection:(id<SCCollection>)collection;
225 
226 @end
Collections communications protocol.
Definition: SCCollectioning.h:78
Abstract collections class.
Definition: SCCollection.h:97
Class SCCollection header file.
Dictionary class.
Definition: SCDictionary.h:77
Array class.
Definition: SCArray.h:81
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:238