Samond Classes Library 1.2.3-RELEASE build 192
SCCollection.h
Go to the documentation of this file.
1 //
2 // SCCollection.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 
23 #import <scl/SCObject.h>
25 
26 #pragma mark -
27 #pragma mark Class Constants
28 
37 #define SCCollectionClass @"SCCollection"
38 
43 #define SCNotFound NSNotFound
44 
45 
46 @protocol SCCollectionDelegate;
47 
98  NSString *fName; // Collection name
99  BOOL fReadOnly; // Read only mode flag
100  id<SCCollectionDelegate> fDelegate; // Pointer to the delegate object
101 }
102 #pragma mark -
103 #pragma mark Свойства экземпляра класса
104 
113 @property (nonatomic, readwrite, retain) NSString *name;
114 
119 @property (nonatomic, readonly, assign) SCIndex count;
120 
125 @property (nonatomic, readonly, assign) BOOL empty;
126 
131 @property (nonatomic, readwrite, assign) BOOL readOnly;
132 
137 @property (nonatomic, readwrite, retain) id<SCCollectionDelegate> delegate;
138 
143 @property (nonatomic, readonly, copy) NSString *typeName;
144 
162 @property (nonatomic, readonly, assign) NSEnumerator *objectEnumerator;
163 
168 @property (nonatomic, readonly, assign) NSEnumerator *reverseObjectEnumerator;
169 
181 @property (nonatomic, readonly, assign) SCArray *array;
182 
187 @property (nonatomic, readonly, assign) SCSet *set;
188 
193 #ifndef GNUSTEP
194 @property (nonatomic, readonly, assign) SCOrderedSet *orderedSet;
195 #endif
196 
201 @property (nonatomic, readonly, assign) SCDictionary *dictionary;
202 
207 @property (nonatomic, readonly, assign) SCStack *stack;
208 
213 @property (nonatomic, readonly, assign) SCQueue *queue;
214 
219 @property (nonatomic, readonly, assign) SCUnidirectionalList *unidirectionalList;
220 
225 @property (nonatomic, readonly, assign) SCBidirectionalList *bidirectionalList;
226 
231 @property (nonatomic, readonly, assign) NSArray *foundationArray;
232 
237 @property (nonatomic, readonly, assign) NSSet *foundationSet;
238 
243 #ifndef GNUSTEP
244 @property (nonatomic, readonly, assign) NSOrderedSet *foundationOrderedSet;
245 #endif
246 
251 @property (nonatomic, readonly, assign) NSDictionary *foundationDictionary;
252 
270 @property (nonatomic, readonly, assign) SCCollectionType collectionType;
271 
276 @property (nonatomic, readonly, assign) BOOL isCollection;
277 
282 @property (nonatomic, readonly, assign) BOOL isLibraryCollection;
283 
288 @property (nonatomic, readonly, assign) BOOL isFoundationCollection;
289 
294 @property (nonatomic, readonly, assign) BOOL isArray;
295 
300 @property (nonatomic, readonly, assign) BOOL isLibraryArray;
301 
307 @property (nonatomic, readonly, assign) BOOL isFoundationArray;
308 
313 @property (nonatomic, readonly, assign) BOOL isSet;
314 
319 @property (nonatomic, readonly, assign) BOOL isLibrarySet;
320 
326 @property (nonatomic, readonly, assign) BOOL isFoundationSet;
327 
332 @property (nonatomic, readonly, assign) BOOL isOrderedSet;
333 
338 @property (nonatomic, readonly, assign) BOOL isLibraryOrderedSet;
339 
346 @property (nonatomic, readonly, assign) BOOL isFoundationOrderedSet;
347 
352 @property (nonatomic, readonly, assign) BOOL isDictionary;
353 
358 @property (nonatomic, readonly, assign) BOOL isLibraryDictionary;
359 
366 @property (nonatomic, readonly, assign) BOOL isFoundationDictionary;
367 
372 @property (nonatomic, readonly, assign) BOOL isStack;
373 
378 @property (nonatomic, readonly, assign) BOOL isQueue;
379 
385 @property (nonatomic, readonly, assign) BOOL isList;
386 
392 @property (nonatomic, readonly, assign) BOOL isSortable;
393 
396 #pragma mark -
397 #pragma mark Initializing Collections
398 - (instancetype)initWithName:(NSString *)name;
399 - (instancetype)initWithCollection:(id<SCCollection>)collection;
400 
401 #pragma mark -
402 #pragma mark Copying Collections
403 - (void)setCollection:(id<SCCollection>)collection;
404 - (void)setObject:(id<SCCollectioning>)object;
405 - (void)setObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
406 
407 #pragma mark -
408 #pragma mark Comparing Collections
409 - (BOOL)isEqualToCollection:(id<SCCollection>)collection;
410 - (BOOL)isEqual:(id)object;
411 
412 #pragma mark -
413 #pragma mark Objects Enumerators
414 - (void)enumerateWithDelegate:(id<SCCollectionDelegate>)delegate;
415 - (void)enumerate;
416 - (void)reverseEnumerateWithDelegate:(id<SCCollectionDelegate>)delegate;
417 - (void)reverseEnumerate;
418 
419 #pragma mark -
420 #pragma mark Adding Objects
421 - (void)addObject:(id<SCCollectioning>)object;
422 - (void)addObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
423 - (void)addCollection:(id<SCCollection>)collection;
424 
425 #pragma mark -
426 #pragma mark Removing Objects
427 - (void)removeAllObjects;
428 - (void)removeObjectsWithClass:(Class)oclass;
429 - (void)removeObjectsWithClassName:(NSString *)name;
430 - (void)removeCollection:(id<SCCollection>)collection;
431 - (void)removeObject:(id<SCCollectioning>)object;
432 - (void)removeObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
433 
434 #pragma mark -
435 #pragma mark Finding Objects in a Collection
436 - (BOOL)containsObject:(id<SCCollectioning>)object;
437 - (BOOL)containsObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
438 - (BOOL)containsCollection:(id<SCCollection>)collection;
439 - (BOOL)containsAnyObject:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
440 - (BOOL)containsAnyObjectFromCollection:(id<SCCollection>)collection;
441 
442 #pragma mark -
443 #pragma mark Detecting Collection Type
444 + (BOOL)isCollectionClass:(NSString *)name;
445 + (BOOL)isLibraryCollectionClass:(NSString *)name;
446 + (BOOL)isFoundationCollectionClass:(NSString *)name;
447 + (BOOL)isArrayClass:(NSString *)name;
448 + (BOOL)isLibraryArrayClass:(NSString *)name;
449 + (BOOL)isFoundationArrayClass:(NSString *)name;
450 + (BOOL)isSetClass:(NSString *)name;
451 + (BOOL)isLibrarySetClass:(NSString *)name;
452 + (BOOL)isFoundationSetClass:(NSString *)name;
453 + (BOOL)isOrderedSetClass:(NSString *)name;
454 + (BOOL)isLibraryOrderedSetClass:(NSString *)name;
455 + (BOOL)isFoundationOrderedSetClass:(NSString *)name;
456 + (BOOL)isDictionaryClass:(NSString *)name;
457 + (BOOL)isLibraryDictionaryClass:(NSString *)name;
458 + (BOOL)isFoundationDictionaryClass:(NSString *)name;
459 + (BOOL)isStackClass:(NSString *)name;
460 + (BOOL)isQueueClass:(NSString *)name;
461 + (BOOL)isListClass:(NSString *)name;
462 + (BOOL)isSortableClass:(NSString *)name;
463 
464 + (BOOL)isCollection:(id)object;
465 + (BOOL)isLibraryCollection:(id)object;
466 + (BOOL)isFoundationCollection:(id)object;
467 + (BOOL)isArray:(id)object;
468 + (BOOL)isLibraryArray:(id)object;
469 + (BOOL)isFoundationArray:(id)object;
470 + (BOOL)isSet:(id)object;
471 + (BOOL)isLibrarySet:(id)object;
472 + (BOOL)isFoundationSet:(id)object;
473 + (BOOL)isOrderedSet:(id)object;
474 + (BOOL)isLibraryOrderedSet:(id)object;
475 + (BOOL)isFoundationOrderedSet:(id)object;
476 + (BOOL)isDictionary:(id)object;
477 + (BOOL)isLibraryDictionary:(id)object;
478 + (BOOL)isFoundationDictionary:(id)object;
479 + (BOOL)isStack:(id)object;
480 + (BOOL)isQueue:(id)object;
481 + (BOOL)isList:(id)object;
482 + (BOOL)isSortable:(id)object;
483 
484 @end
Unordered set class.
Definition: SCSet.h:69
Class for support the bidirectional lists of objects.
Definition: SCBidirectionalList.h:80
Unidirectional list class.
Definition: SCUnidirectionalList.h:79
Mutable collections protocol.
Definition: SCCollectionProtocols.h:576
Class SCObject header file.
Ordered set class.
Definition: SCOrderedSet.h:79
Parent class of all library classes.
Definition: SCObject.h:58
Collection types protocols header file.
Collections communications protocol.
Definition: SCCollectioning.h:78
Collections events handling class.
Definition: SCCollectionDelegate.h:524
Abstract collections class.
Definition: SCCollection.h:97
Stack of objects class.
Definition: SCStack.h:74
Queue of objects class.
Definition: SCQueue.h:80
Dictionary class.
Definition: SCDictionary.h:77
Array class.
Definition: SCArray.h:81
NSUInteger SCIndex
Definition: SCCollectionProtocols.h:50
SCCollectionType
Definition: SCCollectionProtocols.h:56