Samond Classes Library 1.2.2-RELEASE build 188
SCCollectionProtocols.h
Go to the documentation of this file.
1 //
2 // SCCollectionProtocols.h
3 // scl
4 //
5 // Created by Viacheslav Smolensky on 09.03.17.
6 // Copyright (c) 2007 - 2017 by Samond Development Corporation. All rights reserved.
7 //
8 
26 #import <scl/SCTypes.h>
27 
28 @class SCArray;
29 @class SCSet;
30 #ifndef GNUSTEP
31 @class SCOrderedSet;
32 #endif
33 @class SCDictionary;
34 @class SCStack;
35 @class SCQueue;
37 @class SCBidirectionalList;
38 
39 #pragma mark -
40 #pragma mark Collection Support Types
41 
50 typedef NSUInteger SCIndex;
51 
56 typedef enum {
62 
68 
74 
80 
86 
92 
98 
104 
110 
116 
122 
128 
135 
136 @protocol SCCollectionDelegate;
137 
138 #pragma mark -
139 #pragma mark Protocol SCCollection Declaration
140 
155 @protocol SCCollection
156 
157 #pragma mark -
158 #pragma mark Primary Collection Properties
159 
170 @property (nonatomic, readonly, retain) NSString *name;
171 
176 @property (nonatomic, readonly, assign) SCIndex count;
177 
182 @property (nonatomic, readonly, assign) BOOL empty;
183 
188 @property (nonatomic, readonly, assign) BOOL readOnly;
189 
194 @property (nonatomic, readonly, retain) id<SCCollectionDelegate> delegate;
195 
196 #pragma mark -
197 #pragma mark Additional Collection Properties
198 
209 @property (nonatomic, readonly, assign) SCArray *array;
210 
215 @property (nonatomic, readonly, assign) SCSet *set;
216 
221 #ifndef GNUSTEP
222 @property (nonatomic, readonly, assign) SCOrderedSet *orderedSet;
223 #endif
224 
229 @property (nonatomic, readonly, assign) SCDictionary *dictionary;
230 
235 @property (nonatomic, readonly, assign) SCStack *stack;
236 
241 @property (nonatomic, readonly, assign) SCQueue *queue;
242 
247 @property (nonatomic, readonly, assign) SCUnidirectionalList *unidirectionalList;
248 
253 @property (nonatomic, readonly, assign) SCBidirectionalList *bidirectionalList;
254 
259 @property (nonatomic, readonly, assign) NSArray *foundationArray;
260 
265 @property (nonatomic, readonly, assign) NSSet *foundationSet;
266 
271 #ifndef GNUSTEP
272 @property (nonatomic, readonly, assign) NSOrderedSet *foundationOrderedSet;
273 #endif
274 
279 @property (nonatomic, readonly, assign) NSDictionary *foundationDictionary;
280 
281 @optional
282 #pragma mark -
283 #pragma mark Objects Enumerators
284 
293 @property (nonatomic, readonly, assign) NSEnumerator *objectEnumerator;
294 
299 @property (nonatomic, readonly, assign) NSEnumerator *reverseObjectEnumerator;
300 
301 #pragma mark -
302 #pragma mark Detecting Collection Type
303 
312 @property (nonatomic, readonly, assign) SCCollectionType collectionType;
313 
318 @property (nonatomic, readonly, assign) BOOL isCollection;
319 
324 @property (nonatomic, readonly, assign) BOOL isLibraryCollection;
325 
330 @property (nonatomic, readonly, assign) BOOL isFoundationCollection;
331 
336 @property (nonatomic, readonly, assign) BOOL isArray;
337 
342 @property (nonatomic, readonly, assign) BOOL isLibraryArray;
343 
349 @property (nonatomic, readonly, assign) BOOL isFoundationArray;
350 
355 @property (nonatomic, readonly, assign) BOOL isSet;
356 
361 @property (nonatomic, readonly, assign) BOOL isLibrarySet;
362 
368 @property (nonatomic, readonly, assign) BOOL isFoundationSet;
369 
374 @property (nonatomic, readonly, assign) BOOL isOrderedSet;
375 
380 @property (nonatomic, readonly, assign) BOOL isLibraryOrderedSet;
381 
388 @property (nonatomic, readonly, assign) BOOL isFoundationOrderedSet;
389 
394 @property (nonatomic, readonly, assign) BOOL isDictionary;
395 
400 @property (nonatomic, readonly, assign) BOOL isLibraryDictionary;
401 
408 @property (nonatomic, readonly, assign) BOOL isFoundationDictionary;
409 
414 @property (nonatomic, readonly, assign) BOOL isStack;
415 
420 @property (nonatomic, readonly, assign) BOOL isQueue;
421 
427 @property (nonatomic, readonly, assign) BOOL isList;
428 
434 @property (nonatomic, readonly, assign) BOOL isSortable;
435 
437 @required
438 #pragma mark -
439 #pragma mark Initializing Collections
440 
457 - (instancetype)initWithCollection:(id<SCCollection>)collection;
458 
459 #pragma mark -
460 #pragma mark Поиск объектов коллекции
461 
477 - (BOOL)containsObject:(id<SCCollectioning>)object;
478 
494 - (BOOL)containsObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
495 
507 - (BOOL)containsCollection:(id<SCCollection>)collection;
508 
524 - (BOOL)containsAnyObject:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
525 
538 - (BOOL)containsAnyObjectFromCollection:(id<SCCollection>)collection;
539 
556 - (BOOL)isEqualToCollection:(id<SCCollection>)collection;
557 
558 @end
559 
560 #pragma mark -
561 #pragma mark Protocol SCMutableCollection Declaration
562 
577 
578 #pragma mark -
579 #pragma mark Copying Collections
580 
596 - (void)setCollection:(id<SCCollection>)collection;
597 
608 - (void)setObject:(id<SCCollectioning>)object;
609 
624 - (void)setObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
625 
626 #pragma mark -
627 #pragma mark Adding Objects
628 
643 - (void)addObject:(id<SCCollectioning>)object;
644 
659 - (void)addObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
660 
671 - (void)addCollection:(id<SCCollection>)collection;
672 
673 #pragma mark -
674 #pragma mark Removing Objects
675 
688 - (void)removeAllObjects;
689 
700 - (void)removeObjectsWithClass:(Class)oclass;
701 
712 - (void)removeObjectsWithClassName:(NSString *)name;
713 
724 - (void)removeCollection:(id<SCCollection>)collection;
725 
736 - (void)removeObject:(id<SCCollectioning>)object;
737 
752 - (void)removeObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
753 
754 @end
755 
756 #pragma mark -
757 #pragma mark Protocol SCIndexedCollection Declaration
758 
773 
774 #pragma mark -
775 #pragma mark Querying a Collection
776 
785 @property (nonatomic, readonly, assign) id firstObject;
786 
791 @property (nonatomic, readonly, assign) id lastObject;
792 
805 - (id)objectAtIndex:(SCIndex)index;
806 
807 #pragma mark -
808 #pragma mark Finding Objects in a Collection
809 
824 - (SCIndex)indexOfObject:(id<SCCollectioning>)object;
825 
830 @property (nonatomic, readonly, assign) SCIndex indexOfLastObject;
831 
832 @end
833 
834 #pragma mark -
835 #pragma mark Protocol SCMutableIndexedCollection Declaration
836 
851 
852 #pragma mark -
853 #pragma mark Adding Objects
854 
871 - (void)insertObject:(id<SCCollectioning>)object atIndex:(SCIndex)index;
872 
873 #pragma mark -
874 #pragma mark Removing Objects
875 
890 - (void)removeObjectAtIndex:(SCIndex)index;
891 
902 - (void)removeObjectsAtIndexes:(NSIndexSet *)indexes;
903 
904 #pragma mark -
905 #pragma mark Replacing Objects
906 
923 - (void)replaceObjectAtIndex:(SCIndex)index withObject:(id<SCCollectioning>)object;
924 
925 @end
Unordered set class.
Definition: SCSet.h:71
Definition: SCCollectionProtocols.h:103
SCOrderedSet * orderedSet
Definition: SCCollection.h:198
Definition: SCCollectionProtocols.h:133
NSEnumerator * objectEnumerator
Definition: SCCollection.h:166
BOOL isSet
Definition: SCCollection.h:317
id firstObject
Definition: SCCollectionProtocols.h:785
BOOL isSortable
Definition: SCCollection.h:396
SCIndex count
Definition: SCCollection.h:123
SCBidirectionalList * bidirectionalList
Definition: SCCollection.h:229
BOOL isFoundationOrderedSet
Definition: SCCollection.h:350
NSArray * foundationArray
Definition: SCCollection.h:235
Class for support the bidirectional lists of objects.
Definition: SCBidirectionalList.h:80
BOOL isLibraryDictionary
Definition: SCCollection.h:362
Definition: SCCollectionProtocols.h:61
Unidirectional list class.
Definition: SCUnidirectionalList.h:79
Mutable collections protocol.
Definition: SCCollectionProtocols.h:576
Definition: SCCollectionProtocols.h:67
SCUnidirectionalList * unidirectionalList
Definition: SCCollection.h:223
Mutable indexed collection protocol.
Definition: SCCollectionProtocols.h:850
NSSet * foundationSet
Definition: SCCollection.h:241
Definition: SCCollectionProtocols.h:121
BOOL isFoundationCollection
Definition: SCCollection.h:292
Definition: SCCollectionProtocols.h:97
id lastObject
Definition: SCCollectionProtocols.h:791
BOOL readOnly
Definition: SCCollection.h:135
Ordered set class.
Definition: SCOrderedSet.h:79
BOOL isLibraryCollection
Definition: SCCollection.h:286
Definition: SCCollectionProtocols.h:73
Definition: SCCollectionProtocols.h:91
BOOL isFoundationSet
Definition: SCCollection.h:330
SCQueue * queue
Definition: SCCollection.h:217
BOOL isFoundationDictionary
Definition: SCCollection.h:370
SCArray * array
Definition: SCCollection.h:185
SCCollectionType collectionType
Definition: SCCollection.h:274
Indexed collections protocol.
Definition: SCCollectionProtocols.h:772
Definition: SCCollectionProtocols.h:79
BOOL isQueue
Definition: SCCollection.h:382
NSString * name
Definition: SCCollection.h:117
NSOrderedSet * foundationOrderedSet
Definition: SCCollection.h:248
SCIndex indexOfLastObject
Definition: SCCollectionProtocols.h:830
Library types header file.
BOOL isFoundationArray
Definition: SCCollection.h:311
BOOL isCollection
Definition: SCCollection.h:280
BOOL isArray
Definition: SCCollection.h:298
BOOL isStack
Definition: SCCollection.h:376
SCDictionary * dictionary
Definition: SCCollection.h:205
Definition: SCCollectionProtocols.h:115
Collections communications protocol.
Definition: SCCollectioning.h:78
BOOL isLibraryArray
Definition: SCCollection.h:304
SCSet * set
Definition: SCCollection.h:191
Definition: SCCollectionProtocols.h:85
Collections events handling class.
Definition: SCCollectionDelegate.h:524
Abstract collections class.
Definition: SCCollection.h:101
Stack of objects class.
Definition: SCStack.h:74
SCStack * stack
Definition: SCCollection.h:211
BOOL isDictionary
Definition: SCCollection.h:356
Definition: SCCollectionProtocols.h:109
BOOL isLibrarySet
Definition: SCCollection.h:323
Queue of objects class.
Definition: SCQueue.h:80
BOOL empty
Definition: SCCollection.h:129
Definition: SCCollectionProtocols.h:127
BOOL isLibraryOrderedSet
Definition: SCCollection.h:342
NSEnumerator * reverseObjectEnumerator
Definition: SCCollection.h:172
id< SCCollectionDelegate > delegate
Definition: SCCollection.h:141
Dictionary class.
Definition: SCDictionary.h:77
BOOL isList
Definition: SCCollection.h:389
Array class.
Definition: SCArray.h:81
NSUInteger SCIndex
Definition: SCCollectionProtocols.h:50
SCCollectionType
Definition: SCCollectionProtocols.h:56
BOOL isOrderedSet
Definition: SCCollection.h:336
NSDictionary * foundationDictionary
Definition: SCCollection.h:255