Samond Classes Library 1.2.2-RELEASE build 188
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 
102  NSString *fName; // Collection name
103  BOOL fReadOnly; // Read only mode flag
104  id<SCCollectionDelegate> fDelegate; // Pointer to the delegate object
105 }
106 #pragma mark -
107 #pragma mark Свойства экземпляра класса
108 
117 @property (nonatomic, readwrite, retain) NSString *name;
118 
123 @property (nonatomic, readonly, assign) SCIndex count;
124 
129 @property (nonatomic, readonly, assign) BOOL empty;
130 
135 @property (nonatomic, readwrite, assign) BOOL readOnly;
136 
141 @property (nonatomic, readwrite, retain) id<SCCollectionDelegate> delegate;
142 
147 @property (nonatomic, readonly, copy) NSString *typeName;
148 
166 @property (nonatomic, readonly, assign) NSEnumerator *objectEnumerator;
167 
172 @property (nonatomic, readonly, assign) NSEnumerator *reverseObjectEnumerator;
173 
185 @property (nonatomic, readonly, assign) SCArray *array;
186 
191 @property (nonatomic, readonly, assign) SCSet *set;
192 
197 #ifndef GNUSTEP
198 @property (nonatomic, readonly, assign) SCOrderedSet *orderedSet;
199 #endif
200 
205 @property (nonatomic, readonly, assign) SCDictionary *dictionary;
206 
211 @property (nonatomic, readonly, assign) SCStack *stack;
212 
217 @property (nonatomic, readonly, assign) SCQueue *queue;
218 
223 @property (nonatomic, readonly, assign) SCUnidirectionalList *unidirectionalList;
224 
229 @property (nonatomic, readonly, assign) SCBidirectionalList *bidirectionalList;
230 
235 @property (nonatomic, readonly, assign) NSArray *foundationArray;
236 
241 @property (nonatomic, readonly, assign) NSSet *foundationSet;
242 
247 #ifndef GNUSTEP
248 @property (nonatomic, readonly, assign) NSOrderedSet *foundationOrderedSet;
249 #endif
250 
255 @property (nonatomic, readonly, assign) NSDictionary *foundationDictionary;
256 
274 @property (nonatomic, readonly, assign) SCCollectionType collectionType;
275 
280 @property (nonatomic, readonly, assign) BOOL isCollection;
281 
286 @property (nonatomic, readonly, assign) BOOL isLibraryCollection;
287 
292 @property (nonatomic, readonly, assign) BOOL isFoundationCollection;
293 
298 @property (nonatomic, readonly, assign) BOOL isArray;
299 
304 @property (nonatomic, readonly, assign) BOOL isLibraryArray;
305 
311 @property (nonatomic, readonly, assign) BOOL isFoundationArray;
312 
317 @property (nonatomic, readonly, assign) BOOL isSet;
318 
323 @property (nonatomic, readonly, assign) BOOL isLibrarySet;
324 
330 @property (nonatomic, readonly, assign) BOOL isFoundationSet;
331 
336 @property (nonatomic, readonly, assign) BOOL isOrderedSet;
337 
342 @property (nonatomic, readonly, assign) BOOL isLibraryOrderedSet;
343 
350 @property (nonatomic, readonly, assign) BOOL isFoundationOrderedSet;
351 
356 @property (nonatomic, readonly, assign) BOOL isDictionary;
357 
362 @property (nonatomic, readonly, assign) BOOL isLibraryDictionary;
363 
370 @property (nonatomic, readonly, assign) BOOL isFoundationDictionary;
371 
376 @property (nonatomic, readonly, assign) BOOL isStack;
377 
382 @property (nonatomic, readonly, assign) BOOL isQueue;
383 
389 @property (nonatomic, readonly, assign) BOOL isList;
390 
396 @property (nonatomic, readonly, assign) BOOL isSortable;
397 
400 #pragma mark -
401 #pragma mark Initializing Collections
402 - (instancetype)initWithName:(NSString *)name;
403 - (instancetype)initWithCollection:(id<SCCollection>)collection;
404 
405 #pragma mark -
406 #pragma mark Copying Collections
407 - (void)setCollection:(id<SCCollection>)collection;
408 - (void)setObject:(id<SCCollectioning>)object;
409 - (void)setObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
410 
411 #pragma mark -
412 #pragma mark Comparing Collections
413 - (BOOL)isEqualToCollection:(id<SCCollection>)collection;
414 - (BOOL)isEqual:(id)object;
415 
416 #pragma mark -
417 #pragma mark Objects Enumerators
418 - (void)enumerateWithDelegate:(id<SCCollectionDelegate>)delegate;
419 - (void)enumerate;
420 - (void)reverseEnumerateWithDelegate:(id<SCCollectionDelegate>)delegate;
421 - (void)reverseEnumerate;
422 
423 #pragma mark -
424 #pragma mark Adding Objects
425 - (void)addObject:(id<SCCollectioning>)object;
426 - (void)addObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
427 - (void)addCollection:(id<SCCollection>)collection;
428 
429 #pragma mark -
430 #pragma mark Removing Objects
431 - (void)removeAllObjects;
432 - (void)removeObjectsWithClass:(Class)oclass;
433 - (void)removeObjectsWithClassName:(NSString *)name;
434 - (void)removeCollection:(id<SCCollection>)collection;
435 - (void)removeObject:(id<SCCollectioning>)object;
436 - (void)removeObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
437 
438 #pragma mark -
439 #pragma mark Finding Objects in a Collection
440 - (BOOL)containsObject:(id<SCCollectioning>)object;
441 - (BOOL)containsObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
442 - (BOOL)containsCollection:(id<SCCollection>)collection;
443 - (BOOL)containsAnyObject:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
444 - (BOOL)containsAnyObjectFromCollection:(id<SCCollection>)collection;
445 
446 #pragma mark -
447 #pragma mark Detecting Collection Type
448 + (BOOL)isCollectionClass:(NSString *)name;
449 + (BOOL)isLibraryCollectionClass:(NSString *)name;
450 + (BOOL)isFoundationCollectionClass:(NSString *)name;
451 + (BOOL)isArrayClass:(NSString *)name;
452 + (BOOL)isLibraryArrayClass:(NSString *)name;
453 + (BOOL)isFoundationArrayClass:(NSString *)name;
454 + (BOOL)isSetClass:(NSString *)name;
455 + (BOOL)isLibrarySetClass:(NSString *)name;
456 + (BOOL)isFoundationSetClass:(NSString *)name;
457 + (BOOL)isOrderedSetClass:(NSString *)name;
458 + (BOOL)isLibraryOrderedSetClass:(NSString *)name;
459 + (BOOL)isFoundationOrderedSetClass:(NSString *)name;
460 + (BOOL)isDictionaryClass:(NSString *)name;
461 + (BOOL)isLibraryDictionaryClass:(NSString *)name;
462 + (BOOL)isFoundationDictionaryClass:(NSString *)name;
463 + (BOOL)isStackClass:(NSString *)name;
464 + (BOOL)isQueueClass:(NSString *)name;
465 + (BOOL)isListClass:(NSString *)name;
466 + (BOOL)isSortableClass:(NSString *)name;
467 
468 + (BOOL)isCollection:(id)object;
469 + (BOOL)isLibraryCollection:(id)object;
470 + (BOOL)isFoundationCollection:(id)object;
471 + (BOOL)isArray:(id)object;
472 + (BOOL)isLibraryArray:(id)object;
473 + (BOOL)isFoundationArray:(id)object;
474 + (BOOL)isSet:(id)object;
475 + (BOOL)isLibrarySet:(id)object;
476 + (BOOL)isFoundationSet:(id)object;
477 + (BOOL)isOrderedSet:(id)object;
478 + (BOOL)isLibraryOrderedSet:(id)object;
479 + (BOOL)isFoundationOrderedSet:(id)object;
480 + (BOOL)isDictionary:(id)object;
481 + (BOOL)isLibraryDictionary:(id)object;
482 + (BOOL)isFoundationDictionary:(id)object;
483 + (BOOL)isStack:(id)object;
484 + (BOOL)isQueue:(id)object;
485 + (BOOL)isList:(id)object;
486 + (BOOL)isSortable:(id)object;
487 
488 @end
Unordered set class.
Definition: SCSet.h:71
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:101
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