Samond Classes Library 1.2.1-RELEASE build 181
SCCollectionProtocols.h
См. документацию.
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 Protocol SCCollection Declaration
41 
56 @protocol SCCollection
57 
58 #pragma mark -
59 #pragma mark Primary Collection Properties
60 
67 @optional
72 @property (nonatomic, retain, getter=name, setter=setName:) NSString *name;
73 
74 @required
79 @property (nonatomic, assign, readonly, getter=count) SCIndex count;
80 
85 @property (nonatomic, assign, readonly, getter=empty) BOOL empty;
86 
91 @property (nonatomic, retain, readonly, getter=description) NSString *description;
92 
93 #pragma mark -
94 #pragma mark Additional Collection Properties
95 
106 @property (nonatomic, retain, readonly, getter=array) SCArray *array;
107 
112 @property (nonatomic, retain, readonly, getter=set) SCSet *set;
113 
118 #ifndef GNUSTEP
119 @property (nonatomic, retain, readonly, getter=orderedSet) SCOrderedSet *orderedSet;
120 #endif
121 
126 @property (nonatomic, retain, readonly, getter=dictionary) SCDictionary *dictionary;
127 
132 @property (nonatomic, retain, readonly, getter=stack) SCStack *stack;
133 
138 @property (nonatomic, retain, readonly, getter=queue) SCQueue *queue;
139 
144 @property (nonatomic, retain, readonly, getter=unidirectionalList) SCUnidirectionalList *unidirectionalList;
145 
150 @property (nonatomic, retain, readonly, getter=bidirectionalList) SCBidirectionalList *bidirectionalList;
151 
156 @property (nonatomic, retain, readonly, getter=foundationArray) NSArray *foundationArray;
157 
162 @property (nonatomic, retain, readonly, getter=foundationSet) NSSet *foundationSet;
163 
168 #ifndef GNUSTEP
169 @property (nonatomic, retain, readonly, getter=foundationOrderedSet) NSOrderedSet *foundationOrderedSet;
170 #endif
171 
176 @property (nonatomic, retain, readonly, getter=foundationDictionary) NSDictionary *foundationDictionary;
177 
182 @property (nonatomic, retain, readonly, getter=objectEnumerator) NSEnumerator *objectEnumerator;
183 
184 
186 #pragma mark -
187 #pragma mark Accessing Collection Properties
188 
195 @optional
204 - (NSString *)name;
205 
214 - (void)setName:(NSString *)name;
215 
216 @required
225 - (SCIndex)count;
226 
235 - (NSString *)description;
236 
245 - (BOOL)empty;
246 
255 - (BOOL)readOnly;
256 
257 #pragma mark -
258 #pragma mark Initializing Collections
259 
276 - (instancetype)initWithCollection:(id<SCCollection>)collection;
277 
278 #pragma mark -
279 #pragma mark Поиск объектов коллекции
280 
296 - (BOOL)containsObject:(id<SCCollectioning>)object;
297 
313 - (BOOL)containsObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
314 
326 - (BOOL)containsCollection:(id<SCCollection>)collection;
327 
343 - (BOOL)containsAnyObject:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
344 
357 - (BOOL)containsAnyObjectFromCollection:(id<SCCollection>)collection;
358 
359 #pragma mark -
360 #pragma mark Converting Collections
361 
374 - (SCArray *)array;
375 
384 - (SCSet *)set;
385 
395 #ifndef GNUSTEP
397 #endif
398 
408 
417 - (SCStack *)stack;
418 
427 - (SCQueue *)queue;
428 
438 
448 
457 - (NSArray *)foundationArray;
458 
467 - (NSSet *)foundationSet;
468 
478 #ifndef GNUSTEP
479 - (NSOrderedSet *)foundationOrderedSet;
480 #endif
481 
490 - (NSDictionary *)foundationDictionary;
491 
492 #pragma mark -
493 #pragma mark Detecting Collection Type
494 
507 - (BOOL)isCollection;
508 
517 - (BOOL)isLibraryCollection;
518 
527 - (BOOL)isFoundationCollection;
528 
537 - (BOOL)isArray;
538 
547 - (BOOL)isLibraryArray;
548 
558 - (BOOL)isFoundationArray;
559 
568 - (BOOL)isSet;
569 
578 - (BOOL)isLibrarySet;
579 
589 - (BOOL)isFoundationSet;
590 
599 - (BOOL)isOrderedSet;
600 
610 - (BOOL)isLibraryOrderedSet;
611 
621 - (BOOL)isFoundationOrderedSet;
622 
631 - (BOOL)isDictionary;
632 
642 - (BOOL)isLibraryDictionary;
643 
653 - (BOOL)isFoundationDictionary;
654 
663 - (BOOL)isStack;
664 
673 - (BOOL)isQueue;
674 
684 - (BOOL)isList;
685 
695 - (BOOL)isSortable;
696 
697 @optional
698 #pragma mark -
699 #pragma mark Objects Enumerators
700 
713 - (NSEnumerator *)objectEnumerator;
714 
723 - (NSEnumerator *)reverseObjectEnumerator;
724 
725 @end
726 
727 #pragma mark -
728 #pragma mark Protocol SCMutableCollection Declaration
729 
744 
745 #pragma mark -
746 #pragma mark Copying Collections
747 
763 - (void)setCollection:(id<SCCollection>)collection;
764 
775 - (void)setObject:(id<SCCollectioning>)object;
776 
791 - (void)setObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
792 
793 #pragma mark -
794 #pragma mark Adding Objects
795 
810 - (void)addObject:(id<SCCollectioning>)object;
811 
826 - (void)addObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
827 
838 - (void)addCollection:(id<SCCollection>)collection;
839 
840 #pragma mark -
841 #pragma mark Removing Objects
842 
855 - (void)removeAllObjects;
856 
867 - (void)removeObjectsWithClass:(Class)oclass;
868 
879 - (void)removeObjectsWithClassName:(NSString *)name;
880 
891 - (void)removeCollection:(id<SCCollection>)collection;
892 
903 - (void)removeObject:(id<SCCollectioning>)object;
904 
919 - (void)removeObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
920 
921 @end
922 
923 #pragma mark -
924 #pragma mark Protocol SCIndexedCollection Declaration
925 
940 
941 #pragma mark -
942 #pragma mark Querying a Collection
943 
956 - (id)firstObject;
957 
966 - (id)lastObject;
967 
980 - (id)objectAtIndex:(SCIndex)index;
981 
982 #pragma mark -
983 #pragma mark Finding Objects in a Collection
984 
999 - (SCIndex)indexOfObject:(id<SCCollectioning>)object;
1000 
1010 
1011 @end
1012 
1013 #pragma mark -
1014 #pragma mark Protocol SCMutableIndexedCollection Declaration
1015 
1030 
1031 #pragma mark -
1032 #pragma mark Adding Objects
1033 
1050 - (void)insertObject:(id<SCCollectioning>)object atIndex:(SCIndex)index;
1051 
1052 #pragma mark -
1053 #pragma mark Removing Objects
1054 
1069 - (void)removeObjectAtIndex:(SCIndex)index;
1070 
1081 - (void)removeObjectsAtIndexes:(NSIndexSet *)indexes;
1082 
1083 #pragma mark -
1084 #pragma mark Replacing Objects
1085 
1102 - (void)replaceObjectAtIndex:(SCIndex)index withObject:(id<SCCollectioning>)object;
1103 
1104 @end
NSSet * foundationSet
Definition: SCCollectionProtocols.h:162
Класс неупорядоченного множества объектов
Definition: SCSet.h:65
BOOL isFoundationArray()
Definition: SCCollection.m:2075
BOOL isFoundationOrderedSet()
Definition: SCCollection.m:2147
BOOL isSet()
Definition: SCCollection.m:2087
Класс двунаправленного списка объектов
Definition: SCBidirectionalList.h:75
NSSet * foundationSet()
Definition: SCCollection.m:874
NSOrderedSet * foundationOrderedSet
Definition: SCCollectionProtocols.h:169
SCStack * stack
Definition: SCCollectionProtocols.h:132
Класс однонаправленного списка объектов
Definition: SCUnidirectionalList.h:74
Протокол классов изменяемых коллекций
Definition: SCCollectionProtocols.h:743
BOOL isOrderedSet()
Definition: SCCollection.m:2123
BOOL isStack()
Definition: SCCollection.m:2195
SCBidirectionalList * bidirectionalList
Definition: SCCollectionProtocols.h:150
BOOL empty
Definition: SCCollectionProtocols.h:85
Протокол классов изменяемых индексированных коллекций
Definition: SCCollectionProtocols.h:1029
BOOL isLibraryArray()
Definition: SCCollection.m:2063
SCUnidirectionalList * unidirectionalList()
Definition: SCCollection.m:844
BOOL isSortable()
Definition: SCCollection.m:2231
BOOL isFoundationDictionary()
Definition: SCCollection.m:2183
BOOL isArray()
Definition: SCCollection.m:2051
Класс упорядоченного множества объектов
Definition: SCOrderedSet.h:73
SCSet * set()
Definition: SCCollection.m:790
NSDictionary * foundationDictionary
Definition: SCCollectionProtocols.h:176
NSString * description
Definition: SCCollectionProtocols.h:91
BOOL isFoundationSet()
Definition: SCCollection.m:2111
NSArray * foundationArray
Definition: SCCollectionProtocols.h:156
Протокол классов индексированных коллекций
Definition: SCCollectionProtocols.h:939
NSArray * foundationArray()
Definition: SCCollection.m:864
SCOrderedSet * orderedSet
Definition: SCCollectionProtocols.h:119
NSString * name
Definition: SCCollectionProtocols.h:72
BOOL isCollection()
Definition: SCCollection.m:2015
SCStack * stack()
Definition: SCCollection.m:824
SCUnidirectionalList * unidirectionalList
Definition: SCCollectionProtocols.h:144
NSUInteger SCIndex
Definition: SCTypes.h:238
Протокол взаимодействия с механизмом коллекций
Definition: SCCollectioning.h:80
BOOL isFoundationCollection()
Definition: SCCollection.m:2039
NSEnumerator * objectEnumerator
Definition: SCCollectionProtocols.h:182
BOOL isLibraryCollection()
Definition: SCCollection.m:2027
BOOL isDictionary()
Definition: SCCollection.m:2159
Абстрактный класс механизма коллекций библиотеки
Definition: SCCollection.h:94
Класс стека объектов
Definition: SCStack.h:69
SCQueue * queue()
Definition: SCCollection.m:834
SCQueue * queue
Definition: SCCollectionProtocols.h:138
SCDictionary * dictionary()
Definition: SCCollection.m:814
NSDictionary * foundationDictionary()
Definition: SCCollection.m:898
SCBidirectionalList * bidirectionalList()
Definition: SCCollection.m:854
BOOL isQueue()
Definition: SCCollection.m:2207
SCOrderedSet * orderedSet()
Definition: SCCollection.m:803
SCSet * set
Definition: SCCollectionProtocols.h:112
Класс очереди объектов
Definition: SCQueue.h:74
BOOL isLibrarySet()
Definition: SCCollection.m:2099
SCArray * array()
Definition: SCCollection.m:780
NSOrderedSet * foundationOrderedSet()
Definition: SCCollection.m:887
BOOL isLibraryOrderedSet()
Definition: SCCollection.m:2135
Класс словарей
Definition: SCDictionary.h:71
NSString * description()
BOOL isList()
Definition: SCCollection.m:2219
Класс массивов объектов
Definition: SCArray.h:75
SCArray * array
Definition: SCCollectionProtocols.h:106
SCIndex count
Definition: SCCollectionProtocols.h:79
BOOL isLibraryDictionary()
Definition: SCCollection.m:2171
SCDictionary * dictionary
Definition: SCCollectionProtocols.h:126