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>
33 #pragma mark Константы класса
38 #define NSOrderedSetClass @"NSOrderedSet"
81 @property (nonatomic, assign, readonly, getter=
empty) BOOL empty;
87 @property (nonatomic, assign, readonly, getter=
readOnly) BOOL readOnly;
108 @property (nonatomic, retain, readonly, getter=
set)
SCSet *set;
150 @property (nonatomic, retain, readonly, getter=
foundationArray) NSArray *foundationArray;
156 @property (nonatomic, retain, readonly, getter=
foundationSet) NSSet *foundationSet;
181 @property (nonatomic, retain, readonly, getter=
sortedOrderedSet) NSOrderedSet *sortedOrderedSet;
194 @property (nonatomic, retain, readonly, getter=
allObjects) NSArray* allObjects;
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;
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;
219 #pragma mark Поддержка последовательных файлов
220 + (NSOrderedSet *)orderedSetWithCoder:(NSCoder *)coder;
221 + (NSOrderedSet *)orderedSetWithContentsOfSerializedFile:(NSString *)path;
222 - (id)initWithContentsOfSerializedFile:(NSString *)path;
223 - (BOOL)writeContentsToSerializedFile:(NSString *)path;
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;
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;
247 #pragma mark Поддержка коллекций
252 #pragma mark Реализация протокола SCCollection
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;
284 #pragma mark Преобразование упорядоченных множеств
299 #pragma mark Сортировка упорядоченных множеств
300 - (NSOrderedSet *)ascendingSortedOrderedSetWithSorter:(
id<
SCSorter>)sorter;
301 - (NSOrderedSet *)descendingSortedOrderedSetWithSorter:(
id<
SCSorter>)sorter;
302 - (NSOrderedSet *)sortedOrderedSetWithSorter:(
id<
SCSorter>)sorter;
308 #pragma mark Дополнительные свойства и методы
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