Samond Classes Library 1.2.0-RELEASE build 166
SCNSOrderedSet.h
Go to the documentation of this file.
1 //
2 // SCNSOrderedSet.h
3 // scl
4 //
5 // Created by Viacheslav Smolensky on 25.01.16.
6 // Copyright (c) 2007 - 2017 by Samond Development Corporation. All rights reserved.
7 //
8 
23 #import <Foundation/Foundation.h>
24 #import <scl/SCCoding.h>
25 #import <scl/SCDictionaring.h>
26 #import <scl/SCStreaming.h>
27 #import <scl/SCCollectioning.h>
28 #import <scl/SCCollectionProtocol.h>
29 #import <scl/SCSorterProtocol.h>
30 #import <scl/SCIndexedCollection.h>
31 
32 #pragma mark -
33 #pragma mark Константы класса
34 
38 #define NSOrderedSetClass @"NSOrderedSet"
39 
40 
56 
81 @property (nonatomic, assign, readonly, getter=empty) BOOL empty;
82 
87 @property (nonatomic, assign, readonly, getter=readOnly) BOOL readOnly;
88 
102 @property (nonatomic, retain, readonly, getter=array) SCArray *array;
103 
108 @property (nonatomic, retain, readonly, getter=set) SCSet *set;
109 
114 @property (nonatomic, retain, readonly, getter=orderedSet) SCOrderedSet *orderedSet;
115 
120 @property (nonatomic, retain, readonly, getter=dictionary) SCDictionary *dictionary;
121 
126 @property (nonatomic, retain, readonly, getter=stack) SCStack *stack;
127 
132 @property (nonatomic, retain, readonly, getter=queue) SCQueue *queue;
133 
138 @property (nonatomic, retain, readonly, getter=unidirectionalList) SCUnidirectionalList *unidirectionalList;
139 
144 @property (nonatomic, retain, readonly, getter=bidirectionalList) SCBidirectionalList *bidirectionalList;
145 
150 @property (nonatomic, retain, readonly, getter=foundationArray) NSArray *foundationArray;
151 
156 @property (nonatomic, retain, readonly, getter=foundationSet) NSSet *foundationSet;
157 
162 @property (nonatomic, retain, readonly, getter=foundationOrderedSet) NSOrderedSet *foundationOrderedSet;
163 
168 @property (nonatomic, retain, readonly, getter=foundationDictionary) NSDictionary *foundationDictionary;
169 
181 @property (nonatomic, retain, readonly, getter=sortedOrderedSet) NSOrderedSet *sortedOrderedSet;
182 
194 @property (nonatomic, retain, readonly, getter=allObjects) NSArray* allObjects;
195 
198 #pragma mark -
199 #pragma mark Создание упорядоченных множеств
200 + (NSOrderedSet *)orderedSetWithAscendingSortedCollection:(id)collection sorter:(id<SCSorter>)sorter;
201 + (NSOrderedSet *)orderedSetWithDescendingSortedCollection:(id)collection sorter:(id<SCSorter>)sorter;
202 + (NSOrderedSet *)orderedSetWithSortedCollection:(id)collection sorter:(id<SCSorter>)sorter;
203 + (NSOrderedSet *)orderedSetWithAscendingSortedCollection:(id)collection;
204 + (NSOrderedSet *)orderedSetWithDescendingSortedCollection:(id)collection;
205 + (NSOrderedSet *)orderedSetWithSortedCollection:(id)collection;
206 + (NSOrderedSet *)orderedSetWithCollection:(id)collection;
207 
208 #pragma mark -
209 #pragma mark Инициализация упорядоченных множеств
210 - (id)initWithAscendingSortedCollection:(id)collection sorter:(id<SCSorter>)sorter;
211 - (id)initWithDescendingSortedCollection:(id)collection sorter:(id<SCSorter>)sorter;
212 - (id)initWithSortedCollection:(id)collection sorter:(id<SCSorter>)sorter;
213 - (id)initWithAscendingSortedCollection:(id)collection;
214 - (id)initWithDescendingSortedCollection:(id)collection;
215 - (id)initWithSortedCollection:(id)collection;
216 - (id)initWithCollection:(id)collection;
217 
218 #pragma mark -
219 #pragma mark Поддержка последовательных файлов
220 + (NSOrderedSet *)orderedSetWithCoder:(NSCoder *)coder;
221 + (NSOrderedSet *)orderedSetWithContentsOfSerializedFile:(NSString *)path;
222 - (id)initWithContentsOfSerializedFile:(NSString *)path;
223 - (BOOL)writeContentsToSerializedFile:(NSString *)path;
224 
225 #pragma mark -
226 #pragma mark Поддержка словарей
227 + (NSOrderedSet *)orderedSetWithDataDictionary:(NSDictionary *)dictionary;
228 + (NSOrderedSet *)orderedSetWithDataDictionaryFromFile:(NSString *)path;
229 - (id)initWithDataDictionary:(NSDictionary *)dictionary;
230 - (id)initWithDataDictionaryFromFile:(NSString *)path;
231 - (void)writeToDataDictionary:(NSMutableDictionary *)dictionary;
232 - (void)writeToDataDictionaryFile:(NSString *)path atomically:(BOOL)atomically;
233 - (void)writeToDataDictionaryFile:(NSString *)path;
234 - (NSDictionary *)dataDictionary;
235 
236 #pragma mark -
237 #pragma mark Поддержка потоков
238 + (NSOrderedSet *)orderedSetWithStream:(SCStream *)stream;
239 + (NSOrderedSet *)orderedSetWithFileStream:(NSString *)path;
240 - (id)initWithStream:(SCStream *)stream;
241 - (id)initWithFileStream:(NSString *)path;
242 - (void)writeToStream:(SCStream *)stream;
243 - (void)writeToFileStream:(NSString *)path;
244 - (void)appendToFileStream:(NSString *)path;
245 
246 #pragma mark -
247 #pragma mark Поддержка коллекций
248 - (id<SCCollectioning>)copyObject;
249 - (SCComparisonResult)compareWithObject:(id<SCCollectioning>)object;
250 
251 #pragma mark -
252 #pragma mark Реализация протокола SCCollection
253 - (BOOL)empty;
254 - (BOOL)readOnly;
255 - (BOOL)isCollection;
256 - (BOOL)isLibraryCollection;
257 - (BOOL)isFoundationCollection;
258 - (BOOL)isArray;
259 - (BOOL)isLibraryArray;
260 - (BOOL)isFoundationArray;
261 - (BOOL)isSet;
262 - (BOOL)isLibrarySet;
263 - (BOOL)isFoundationSet;
264 - (BOOL)isOrderedSet;
265 - (BOOL)isLibraryOrderedSet;
266 - (BOOL)isFoundationOrderedSet;
267 - (BOOL)isDictionary;
268 - (BOOL)isLibraryDictionary;
269 - (BOOL)isFoundationDictionary;
270 - (BOOL)isStack;
271 - (BOOL)isQueue;
272 - (BOOL)isList;
273 - (BOOL)isSortable;
274 
275 #pragma mark -
276 #pragma mark Поиск элементов упорядоченного множества
277 - (BOOL)containsObjects:(id)object, ... NS_REQUIRES_NIL_TERMINATION;
278 - (BOOL)containsCollection:(id)collection;
279 - (BOOL)containsAnyObject:(id)object, ... NS_REQUIRES_NIL_TERMINATION;
280 - (BOOL)containsAnyObjectFromCollection:(id)collection;
282 
283 #pragma mark -
284 #pragma mark Преобразование упорядоченных множеств
285 - (SCArray *)array;
286 - (SCSet *)set;
289 - (SCStack *)stack;
290 - (SCQueue *)queue;
293 - (NSArray *)foundationArray;
294 - (NSSet *)foundationSet;
295 - (NSOrderedSet *)foundationOrderedSet;
296 - (NSDictionary *)foundationDictionary;
297 
298 #pragma mark -
299 #pragma mark Сортировка упорядоченных множеств
300 - (NSOrderedSet *)ascendingSortedOrderedSetWithSorter:(id<SCSorter>)sorter;
301 - (NSOrderedSet *)descendingSortedOrderedSetWithSorter:(id<SCSorter>)sorter;
302 - (NSOrderedSet *)sortedOrderedSetWithSorter:(id<SCSorter>)sorter;
303 - (NSOrderedSet *)ascendingSortedOrderedSet;
304 - (NSOrderedSet *)descendingSortedOrderedSet;
305 - (NSOrderedSet *)sortedOrderedSet;
306 
307 #pragma mark -
308 #pragma mark Дополнительные свойства и методы
309 - (NSArray *)allObjects;
310 
311 @end
BOOL isLibrarySet()
Definition: SCNSOrderedSet.m:910
Unordered set class.
Definition: SCSet.h:63
SCULong SCIndex
Index data type.
Definition: SCTypes.h:240
BOOL isFoundationSet()
Definition: SCNSOrderedSet.m:922
NSOrderedSet * sortedOrderedSet
Definition: SCNSOrderedSet.h:181
BOOL isFoundationArray()
Definition: SCNSOrderedSet.m:886
NSOrderedSet * foundationOrderedSet
Definition: SCNSOrderedSet.h:162
BOOL isLibraryCollection()
Definition: SCNSOrderedSet.m:838
Class for support the bidirectional lists of objects.
Definition: SCBidirectionalList.h:75
id< SCCollectioning > copyObject()
Definition: SCNSOrderedSet.m:749
NSSet * foundationSet
Definition: SCNSOrderedSet.h:156
NSArray * allObjects
Definition: SCNSOrderedSet.h:194
BOOL isLibraryArray()
Definition: SCNSOrderedSet.m:874
BOOL isLibraryOrderedSet()
Definition: SCNSOrderedSet.m:946
Unidirectional list class.
Definition: SCUnidirectionalList.h:74
SCOrderedSet * orderedSet
Definition: SCNSOrderedSet.h:114
SCIndex indexOfLastObject()
Definition: SCNSOrderedSet.m:1307
Standard class NSOrderedSet functionality extending category.
Definition: SCNSOrderedSet.h:54
NSOrderedSet * ascendingSortedOrderedSet()
Definition: SCNSOrderedSet.m:1497
SCSet * set
Definition: SCNSOrderedSet.h:108
Standard protocol NSCoding extention protocol.
Definition: SCCoding.h:40
Ordered set class.
Definition: SCOrderedSet.h:74
SCBidirectionalList * bidirectionalList
Definition: SCNSOrderedSet.h:144
BOOL readOnly
Definition: SCNSOrderedSet.h:87
SCArray * array
Definition: SCNSOrderedSet.h:102
enum _SCComparisonResult SCComparisonResult
Instances comparing results type.
Definition: SCCollectioning.h:60
BOOL isFoundationDictionary()
Definition: SCNSOrderedSet.m:994
Abstract implementation of the protocol SCSorter.
Definition: SCSorter.h:37
BOOL isStack()
Definition: SCNSOrderedSet.m:1006
BOOL isList()
Definition: SCNSOrderedSet.m:1030
Indexed collections protocol.
Definition: SCIndexedCollection.h:39
Protocol of methods for data exchanging between class instances and classes NSDictionary and NSMutabl...
Definition: SCDictionaring.h:42
SCStack * stack
Definition: SCNSOrderedSet.h:126
NSDictionary * foundationDictionary
Definition: SCNSOrderedSet.h:168
BOOL isDictionary()
Definition: SCNSOrderedSet.m:970
SCDictionary * dictionary
Definition: SCNSOrderedSet.h:120
BOOL isOrderedSet()
Definition: SCNSOrderedSet.m:934
Collections communications protocol.
Definition: SCCollectioning.h:78
Streams communications protocol.
Definition: SCStreaming.h:40
BOOL isSet()
Definition: SCNSOrderedSet.m:898
NSArray * foundationArray
Definition: SCNSOrderedSet.h:150
Abstract collections class.
Definition: SCCollection.h:94
BOOL isLibraryDictionary()
Definition: SCNSOrderedSet.m:982
Stack of objects class.
Definition: SCStack.h:69
BOOL isArray()
Definition: SCNSOrderedSet.m:862
NSDictionary * dataDictionary()
Definition: SCNSOrderedSet.m:524
SCUnidirectionalList * unidirectionalList
Definition: SCNSOrderedSet.h:138
Queue of objects class.
Definition: SCQueue.h:74
BOOL isFoundationCollection()
Definition: SCNSOrderedSet.m:850
BOOL isCollection()
Definition: SCNSOrderedSet.m:826
SCQueue * queue
Definition: SCNSOrderedSet.h:132
Dictionary class.
Definition: SCDictionary.h:75
BOOL isSortable()
Definition: SCNSOrderedSet.m:1042
Array class.
Definition: SCArray.h:77
BOOL isFoundationOrderedSet()
Definition: SCNSOrderedSet.m:958
NSOrderedSet * descendingSortedOrderedSet()
Definition: SCNSOrderedSet.m:1511
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:242
BOOL empty
Definition: SCNSOrderedSet.h:81
BOOL isQueue()
Definition: SCNSOrderedSet.m:1018