22 #import <scl/SCObject.h>
23 #import <scl/SCMutableCollection.h>
26 #pragma mark Константы класса
31 #define SCCollectionClass @"SCCollection"
32 #define SCNotFound NSNotFound
97 id<SCCollectionDelegate> fDelegate;
100 #pragma mark Свойства экземпляра класса
110 @property (nonatomic, retain, getter=
name, setter=setName:) NSString *name;
116 @property (nonatomic, assign, getter=
readOnly, setter=setReadOnly:) BOOL readOnly;
122 @property (nonatomic, assign, getter=
delegate, setter=setDelegate:) id<SCCollectionDelegate> delegate;
134 @property (nonatomic, assign, readonly, getter=
empty) BOOL empty;
140 @property (nonatomic, retain, readonly, getter=
typeName) NSString *typeName;
146 @property (nonatomic, retain, readonly, getter=
description) NSString *description;
165 @property (nonatomic, retain, readonly, getter=
objectEnumerator) NSEnumerator *objectEnumerator;
176 #pragma mark Инициализация коллекций
177 - (id)initWithCollection:(
id)collection;
180 #pragma mark Свойства экземпляра класса
186 - (NSString *)typeName;
187 - (void)setName:(NSString *)name;
188 - (void)setReadOnly:(BOOL)flag;
192 #pragma mark Копирование коллекций
193 - (void)setCollection:(
id)collection;
194 - (void)setObject:(
id)object;
195 - (void)setObjects:(
id)object, ... NS_REQUIRES_NIL_TERMINATION;
198 #pragma mark Сравнение коллекций
199 - (BOOL)isEqualToCollection:(
id)collection;
200 - (BOOL)isEqualToContentsOfCollection:(
id)collection;
201 - (BOOL)isEqual:(
id)object;
204 #pragma mark Счетчики объектов
205 - (NSEnumerator *)objectEnumerator;
206 - (NSEnumerator *)reverseObjectEnumerator;
210 - (void)reverseEnumerate;
213 #pragma mark Преобразование коллекций
222 - (NSArray *)foundationArray;
223 - (NSSet *)foundationSet;
224 - (NSOrderedSet *)foundationOrderedSet;
225 - (NSDictionary *)foundationDictionary;
228 #pragma mark Добавление объктов
229 - (void)addObject:(
id)object;
230 - (void)addObjects:(
id)object, ... NS_REQUIRES_NIL_TERMINATION;
231 - (void)addByte:(
SCByte)value;
232 - (void)addUByte:(
SCUByte)value;
233 - (void)addShort:(
SCShort)value;
237 - (void)addLong:(
SCLong)value;
238 - (void)addULong:(
SCULong)value;
239 - (void)addChar:(
char)value;
240 - (void)addUnichar:(unichar)value;
241 - (void)addCharString:(const
char *)string;
242 - (void)addBool:(BOOL)value;
243 - (void)addFloat:(
SCFloat)value;
245 - (void)addCollection:(
id)collection;
248 #pragma mark Удаление объектов
249 - (void)removeAllObjects;
250 - (void)removeObjectsWithClass:(Class)oclass;
251 - (void)removeObjectsWithClassName:(NSString *)name;
252 - (void)removeCollection:(
id)collection;
253 - (void)removeObject:(
id)object;
254 - (void)removeByte:(
SCByte)value;
255 - (void)removeUByte:(
SCUByte)value;
256 - (void)removeShort:(
SCShort)value;
257 - (void)removeUShort:(
SCUShort)value;
260 - (void)removeLong:(
SCLong)value;
261 - (void)removeULong:(
SCULong)value;
262 - (void)removeChar:(
char)value;
263 - (void)removeUnichar:(unichar)value;
264 - (void)removeCharString:(const
char *)string;
265 - (void)removeBool:(BOOL)value;
266 - (void)removeFloat:(
SCFloat)value;
267 - (void)removeDouble:(
SCDouble)value;
268 - (void)removeObjects:(
id)object, ... NS_REQUIRES_NIL_TERMINATION;
271 #pragma mark Поиск объектов
272 - (BOOL)containsObject:(
id)object;
273 - (BOOL)containsByte:(
SCByte)value;
274 - (BOOL)containsUByte:(
SCUByte)value;
275 - (BOOL)containsShort:(
SCShort)value;
276 - (BOOL)containsUShort:(
SCUShort)value;
277 - (BOOL)containsInteger:(
SCInteger)value;
279 - (BOOL)containsLong:(
SCLong)value;
280 - (BOOL)containsULong:(
SCULong)value;
281 - (BOOL)containsChar:(
char)value;
282 - (BOOL)containsUnichar:(unichar)value;
283 - (BOOL)containsCharString:(const
char *)string;
284 - (BOOL)containsBool:(BOOL)value;
285 - (BOOL)containsFloat:(
SCFloat)value;
286 - (BOOL)containsDouble:(
SCDouble)value;
287 - (BOOL)containsObjects:(
id)object, ... NS_REQUIRES_NIL_TERMINATION;
288 - (BOOL)containsCollection:(
id)collection;
289 - (BOOL)containsAnyObject:(
id)object, ... NS_REQUIRES_NIL_TERMINATION;
290 - (BOOL)containsAnyObjectFromCollection:(
id)collection;
293 #pragma mark Определение типов коллекций
294 + (BOOL)isCollectionClass:(NSString *)name;
295 + (BOOL)isLibraryCollectionClass:(NSString *)name;
296 + (BOOL)isFoundationCollectionClass:(NSString *)name;
297 + (BOOL)isArrayClass:(NSString *)name;
298 + (BOOL)isLibraryArrayClass:(NSString *)name;
299 + (BOOL)isFoundationArrayClass:(NSString *)name;
300 + (BOOL)isSetClass:(NSString *)name;
301 + (BOOL)isLibrarySetClass:(NSString *)name;
302 + (BOOL)isFoundationSetClass:(NSString *)name;
303 + (BOOL)isOrderedSetClass:(NSString *)name;
304 + (BOOL)isLibraryOrderedSetClass:(NSString *)name;
305 + (BOOL)isFoundationOrderedSetClass:(NSString *)name;
306 + (BOOL)isDictionaryClass:(NSString *)name;
307 + (BOOL)isLibraryDictionaryClass:(NSString *)name;
308 + (BOOL)isFoundationDictionaryClass:(NSString *)name;
309 + (BOOL)isStackClass:(NSString *)name;
310 + (BOOL)isQueueClass:(NSString *)name;
311 + (BOOL)isListClass:(NSString *)name;
312 + (BOOL)isSortableClass:(NSString *)name;
314 + (BOOL)isCollection:(
id)object;
315 + (BOOL)isLibraryCollection:(
id)object;
316 + (BOOL)isFoundationCollection:(
id)object;
317 + (BOOL)isArray:(
id)object;
318 + (BOOL)isLibraryArray:(
id)object;
319 + (BOOL)isFoundationArray:(
id)object;
320 + (BOOL)isSet:(
id)object;
321 + (BOOL)isLibrarySet:(
id)object;
322 + (BOOL)isFoundationSet:(
id)object;
323 + (BOOL)isOrderedSet:(
id)object;
324 + (BOOL)isLibraryOrderedSet:(
id)object;
325 + (BOOL)isFoundationOrderedSet:(
id)object;
326 + (BOOL)isDictionary:(
id)object;
327 + (BOOL)isLibraryDictionary:(
id)object;
328 + (BOOL)isFoundationDictionary:(
id)object;
329 + (BOOL)isStack:(
id)object;
330 + (BOOL)isQueue:(
id)object;
331 + (BOOL)isList:(
id)object;
332 + (BOOL)isSortable:(
id)object;
334 - (BOOL)isCollection;
335 - (BOOL)isLibraryCollection;
336 - (BOOL)isFoundationCollection;
338 - (BOOL)isLibraryArray;
339 - (BOOL)isFoundationArray;
341 - (BOOL)isLibrarySet;
342 - (BOOL)isFoundationSet;
343 - (BOOL)isOrderedSet;
344 - (BOOL)isLibraryOrderedSet;
345 - (BOOL)isFoundationOrderedSet;
346 - (BOOL)isDictionary;
347 - (BOOL)isLibraryDictionary;
348 - (BOOL)isFoundationDictionary;
Unordered set class.
Definition: SCSet.h:63
NSEnumerator * objectEnumerator
Definition: SCCollection.h:165
uint64_t SCULong
Definition: SCTypes.h:78
int16_t SCShort
Definition: SCTypes.h:42
int64_t SCLong
Definition: SCTypes.h:54
Class for support the bidirectional lists of objects.
Definition: SCBidirectionalList.h:75
int32_t SCInteger
Definition: SCTypes.h:48
Unidirectional list class.
Definition: SCUnidirectionalList.h:74
Mutable collections protocol.
Definition: SCMutableCollection.h:38
uint32_t SCUInteger
Definition: SCTypes.h:72
int8_t SCByte
Definition: SCTypes.h:36
id< SCCollectionDelegate > delegate
Definition: SCCollection.h:122
BOOL readOnly
Definition: SCCollection.h:116
Ordered set class.
Definition: SCOrderedSet.h:74
uint16_t SCUShort
Definition: SCTypes.h:66
Parent class of all library classes.
Definition: SCObject.h:57
uint8_t SCUByte
Definition: SCTypes.h:60
SCULong count
Definition: SCCollection.h:128
NSString * typeName
Definition: SCCollection.h:140
float_t SCFloat
Definition: SCTypes.h:84
Collections events handling class.
Definition: SCCollectionDelegate.h:46
Abstract collections class.
Definition: SCCollection.h:94
Stack of objects class.
Definition: SCStack.h:69
Queue of objects class.
Definition: SCQueue.h:74
BOOL empty
Definition: SCCollection.h:134
NSString * description
Definition: SCCollection.h:146
NSString * name
Definition: SCCollection.h:110
NSEnumerator * reverseObjectEnumerator
Definition: SCCollection.h:171
Dictionary class.
Definition: SCDictionary.h:75
Array class.
Definition: SCArray.h:77
double_t SCDouble
Definition: SCTypes.h:90