Samond Classes Library 1.2.0-RELEASE build 166
SCCollectionProtocol.h
Go to the documentation of this file.
1 //
2 // SCCollectionProtocol.h
3 // scl
4 //
5 // Created by Viacheslav Smolensky on 04.02.16.
6 // Copyright (c) 2007 - 2017 by Samond Development Corporation. All rights reserved.
7 //
8 
23 #import <scl/SCTypes.h>
24 
25 @class SCArray;
26 @class SCSet;
27 @class SCOrderedSet;
28 @class SCDictionary;
29 @class SCStack;
30 @class SCQueue;
32 @class SCBidirectionalList;
33 
48 @protocol SCCollection
49 
50 #pragma mark -
51 #pragma mark Основные свойства коллекций
52 
63 @property (nonatomic, assign, readonly, getter=count) SCULong count;
64 
69 @property (nonatomic, assign, readonly, getter=empty) BOOL empty;
70 
75 @property (nonatomic, retain, readonly, getter=description) NSString *description;
76 
77 #pragma mark -
78 #pragma mark Дополнительные свойства коллекций
79 
90 @property (nonatomic, retain, readonly, getter=array) SCArray *array;
91 
96 @property (nonatomic, retain, readonly, getter=set) SCSet *set;
97 
102 @property (nonatomic, retain, readonly, getter=orderedSet) SCOrderedSet *orderedSet;
103 
108 @property (nonatomic, retain, readonly, getter=dictionary) SCDictionary *dictionary;
109 
114 @property (nonatomic, retain, readonly, getter=stack) SCStack *stack;
115 
120 @property (nonatomic, retain, readonly, getter=queue) SCQueue *queue;
121 
126 @property (nonatomic, retain, readonly, getter=unidirectionalList) SCUnidirectionalList *unidirectionalList;
127 
132 @property (nonatomic, retain, readonly, getter=bidirectionalList) SCBidirectionalList *bidirectionalList;
133 
138 @property (nonatomic, retain, readonly, getter=foundationArray) NSArray *foundationArray;
139 
144 @property (nonatomic, retain, readonly, getter=foundationSet) NSSet *foundationSet;
145 
150 @property (nonatomic, retain, readonly, getter=foundationOrderedSet) NSOrderedSet *foundationOrderedSet;
151 
156 @property (nonatomic, retain, readonly, getter=foundationDictionary) NSDictionary *foundationDictionary;
157 
162 @property (nonatomic, retain, readonly, getter=objectEnumerator) NSEnumerator *objectEnumerator;
163 
164 
166 #pragma mark -
167 #pragma mark Доступ к свойствам коллекций
168 
183 - (SCULong)count;
184 
193 - (NSString *)description;
194 
203 - (BOOL)empty;
204 
213 - (BOOL)readOnly;
214 
215 #pragma mark -
216 #pragma mark Инициализация коллекций
217 
234 - (id)initWithCollection:(id)collection;
235 
236 #pragma mark -
237 #pragma mark Поиск объектов коллекции
238 
254 - (BOOL)containsObject:(id)object;
255 
271 - (BOOL)containsObjects:(id)object, ... NS_REQUIRES_NIL_TERMINATION;
272 
284 - (BOOL)containsCollection:(id)collection;
285 
301 - (BOOL)containsAnyObject:(id)object, ... NS_REQUIRES_NIL_TERMINATION;
302 
315 - (BOOL)containsAnyObjectFromCollection:(id)collection;
316 
317 #pragma mark -
318 #pragma mark Преобразование коллекций
319 
332 - (SCArray *)array;
333 
342 - (SCSet *)set;
343 
353 
363 
372 - (SCStack *)stack;
373 
382 - (SCQueue *)queue;
383 
393 
403 
412 - (NSArray *)foundationArray;
413 
422 - (NSSet *)foundationSet;
423 
432 - (NSOrderedSet *)foundationOrderedSet;
433 
442 - (NSDictionary *)foundationDictionary;
443 
444 #pragma mark -
445 #pragma mark Определение типов коллекций
446 
459 - (BOOL)isCollection;
460 
469 - (BOOL)isLibraryCollection;
470 
479 - (BOOL)isFoundationCollection;
480 
489 - (BOOL)isArray;
490 
499 - (BOOL)isLibraryArray;
500 
510 - (BOOL)isFoundationArray;
511 
520 - (BOOL)isSet;
521 
530 - (BOOL)isLibrarySet;
531 
541 - (BOOL)isFoundationSet;
542 
551 - (BOOL)isOrderedSet;
552 
562 - (BOOL)isLibraryOrderedSet;
563 
573 - (BOOL)isFoundationOrderedSet;
574 
583 - (BOOL)isDictionary;
584 
594 - (BOOL)isLibraryDictionary;
595 
605 - (BOOL)isFoundationDictionary;
606 
615 - (BOOL)isStack;
616 
625 - (BOOL)isQueue;
626 
636 - (BOOL)isList;
637 
647 - (BOOL)isSortable;
648 
649 @optional
650 #pragma mark -
651 #pragma mark Перечисление коллеций
652 
665 - (NSEnumerator *)objectEnumerator;
666 
675 - (NSEnumerator *)reverseObjectEnumerator;
676 
677 @end
NSSet * foundationSet
Definition: SCCollectionProtocol.h:144
Unordered set class.
Definition: SCSet.h:63
uint64_t SCULong
Definition: SCTypes.h:78
BOOL isFoundationArray()
Definition: SCCollection.m:2806
BOOL isFoundationOrderedSet()
Definition: SCCollection.m:2878
BOOL isSet()
Definition: SCCollection.m:2818
SCULong count
Definition: SCCollectionProtocol.h:63
Class for support the bidirectional lists of objects.
Definition: SCBidirectionalList.h:75
NSSet * foundationSet()
Definition: SCCollection.m:934
NSOrderedSet * foundationOrderedSet
Definition: SCCollectionProtocol.h:150
SCStack * stack
Definition: SCCollectionProtocol.h:114
Unidirectional list class.
Definition: SCUnidirectionalList.h:74
BOOL isOrderedSet()
Definition: SCCollection.m:2854
BOOL isStack()
Definition: SCCollection.m:2926
SCBidirectionalList * bidirectionalList
Definition: SCCollectionProtocol.h:132
BOOL empty
Definition: SCCollectionProtocol.h:69
BOOL isLibraryArray()
Definition: SCCollection.m:2794
SCUnidirectionalList * unidirectionalList()
Definition: SCCollection.m:904
BOOL isSortable()
Definition: SCCollection.m:2962
BOOL isFoundationDictionary()
Definition: SCCollection.m:2914
BOOL isArray()
Definition: SCCollection.m:2782
Ordered set class.
Definition: SCOrderedSet.h:74
SCSet * set()
Definition: SCCollection.m:854
NSDictionary * foundationDictionary
Definition: SCCollectionProtocol.h:156
NSString * description
Definition: SCCollectionProtocol.h:75
BOOL isFoundationSet()
Definition: SCCollection.m:2842
NSArray * foundationArray
Definition: SCCollectionProtocol.h:138
NSArray * foundationArray()
Definition: SCCollection.m:924
SCOrderedSet * orderedSet
Definition: SCCollectionProtocol.h:102
BOOL isCollection()
Definition: SCCollection.m:2746
SCStack * stack()
Definition: SCCollection.m:884
SCUnidirectionalList * unidirectionalList
Definition: SCCollectionProtocol.h:126
BOOL isFoundationCollection()
Definition: SCCollection.m:2770
NSEnumerator * objectEnumerator
Definition: SCCollectionProtocol.h:162
BOOL isLibraryCollection()
Definition: SCCollection.m:2758
BOOL isDictionary()
Definition: SCCollection.m:2890
Abstract collections class.
Definition: SCCollection.h:94
Stack of objects class.
Definition: SCStack.h:69
SCQueue * queue()
Definition: SCCollection.m:894
SCQueue * queue
Definition: SCCollectionProtocol.h:120
SCDictionary * dictionary()
Definition: SCCollection.m:874
NSDictionary * foundationDictionary()
Definition: SCCollection.m:954
SCBidirectionalList * bidirectionalList()
Definition: SCCollection.m:914
BOOL isQueue()
Definition: SCCollection.m:2938
SCOrderedSet * orderedSet()
Definition: SCCollection.m:864
SCSet * set
Definition: SCCollectionProtocol.h:96
Queue of objects class.
Definition: SCQueue.h:74
BOOL isLibrarySet()
Definition: SCCollection.m:2830
SCArray * array()
Definition: SCCollection.m:844
NSOrderedSet * foundationOrderedSet()
Definition: SCCollection.m:944
BOOL isLibraryOrderedSet()
Definition: SCCollection.m:2866
Dictionary class.
Definition: SCDictionary.h:75
NSString * description()
BOOL isList()
Definition: SCCollection.m:2950
Array class.
Definition: SCArray.h:77
SCArray * array
Definition: SCCollectionProtocol.h:90
BOOL isLibraryDictionary()
Definition: SCCollection.m:2902
SCDictionary * dictionary
Definition: SCCollectionProtocol.h:108