Samond Classes Library 1.2.0-RELEASE build 166
SCNSArray.h
Go to the documentation of this file.
1 //
2 // SCArrayNSArray.h
3 // scl
4 //
5 // Created by Viacheslav Smolensky on 13.05.12.
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/SCSorter.h>
30 #import <scl/SCIndexedCollection.h>
31 
32 #pragma mark -
33 #pragma mark Константы класса
34 
38 #define NSArrayClass @"NSArray"
39 
40 
56 
80 @property (nonatomic, assign, readonly, getter=empty) BOOL empty;
81 
86 @property (nonatomic, assign, readonly, getter=readOnly) BOOL readOnly;
87 
101 @property (nonatomic, retain, readonly, getter=array) SCArray *array;
102 
107 @property (nonatomic, retain, readonly, getter=set) SCSet *set;
108 
113 @property (nonatomic, retain, readonly, getter=orderedSet) SCOrderedSet *orderedSet;
114 
119 @property (nonatomic, retain, readonly, getter=dictionary) SCDictionary *dictionary;
120 
125 @property (nonatomic, retain, readonly, getter=stack) SCStack *stack;
126 
131 @property (nonatomic, retain, readonly, getter=queue) SCQueue *queue;
132 
137 @property (nonatomic, retain, readonly, getter=unidirectionalList) SCUnidirectionalList *unidirectionalList;
138 
143 @property (nonatomic, retain, readonly, getter=bidirectionalList) SCBidirectionalList *bidirectionalList;
144 
149 @property (nonatomic, retain, readonly, getter=foundationArray) NSArray *foundationArray;
150 
155 @property (nonatomic, retain, readonly, getter=foundationSet) NSSet *foundationSet;
156 
161 @property (nonatomic, retain, readonly, getter=foundationOrderedSet) NSOrderedSet *foundationOrderedSet;
162 
167 @property (nonatomic, retain, readonly, getter=foundationDictionary) NSDictionary *foundationDictionary;
168 
173 @property (nonatomic, retain, readonly, getter=reversedArray) NSArray *reversedArray;
174 
186 @property (nonatomic, retain, readonly, getter=sortedArray) NSArray *sortedArray;
187 
190 #pragma mark -
191 #pragma mark Создание массивов
192 + (NSArray *)arrayWithAscendingSortedCollection:(id)collection sorter:(id<SCSorter>)sorter;
193 + (NSArray *)arrayWithDescendingSortedCollection:(id)collection sorter:(id<SCSorter>)sorter;
194 + (NSArray *)arrayWithSortedCollection:(id)collection sorter:(id<SCSorter>)sorter;
195 + (NSArray *)arrayWithAscendingSortedCollection:(id)collection;
196 + (NSArray *)arrayWithDescendingSortedCollection:(id)collection;
197 + (NSArray *)arrayWithSortedCollection:(id)collection;
198 + (NSArray *)arrayWithCollection:(id)collection;
199 
200 #pragma mark -
201 #pragma mark Инициализация массивов
202 - (id)initWithAscendingSortedCollection:(id)collection sorter:(id<SCSorter>)sorter;
203 - (id)initWithDescendingSortedCollection:(id)collection sorter:(id<SCSorter>)sorter;
204 - (id)initWithSortedCollection:(id)collection sorter:(id<SCSorter>)sorter;
205 - (id)initWithAscendingSortedCollection:(id)collection;
206 - (id)initWithDescendingSortedCollection:(id)collection;
207 - (id)initWithSortedCollection:(id)collection;
208 - (id)initWithCollection:(id)collection;
209 
210 #pragma mark -
211 #pragma mark Поддержка последовательных файлов
212 + (NSArray *)arrayWithCoder:(NSCoder *)coder;
213 + (NSArray *)arrayWithContentsOfSerializedFile:(NSString *)path;
214 - (id)initWithContentsOfSerializedFile:(NSString *)path;
215 - (BOOL)writeContentsToSerializedFile:(NSString *)path;
216 
217 #pragma mark -
218 #pragma mark Поддержка словарей
219 + (NSArray *)arrayWithDataDictionary:(NSDictionary *)dictionary;
220 + (NSArray *)arrayWithDataDictionaryFromFile:(NSString *)path;
221 - (id)initWithDataDictionary:(NSDictionary *)dictionary;
222 - (id)initWithDataDictionaryFromFile:(NSString *)path;
223 - (void)writeToDataDictionary:(NSMutableDictionary *)dictionary;
224 - (void)writeToDataDictionaryFile:(NSString *)path atomically:(BOOL)atomically;
225 - (void)writeToDataDictionaryFile:(NSString *)path;
226 - (NSDictionary *)dataDictionary;
227 
228 #pragma mark -
229 #pragma mark Поддержка потоков
230 + (NSArray *)arrayWithStream:(SCStream *)stream;
231 + (NSArray *)arrayWithFileStream:(NSString *)path;
232 - (id)initWithStream:(SCStream *)stream;
233 - (id)initWithFileStream:(NSString *)path;
234 - (void)writeToStream:(SCStream *)stream;
235 - (void)writeToFileStream:(NSString *)path;
236 - (void)appendToFileStream:(NSString *)path;
237 
238 #pragma mark -
239 #pragma mark Поддержка коллекций
240 - (id<SCCollectioning>)copyObject;
241 - (SCComparisonResult)compareWithObject:(id<SCCollectioning>)object;
242 
243 #pragma mark -
244 #pragma mark Реализация протокола SCCollection
245 - (BOOL)empty;
246 - (BOOL)readOnly;
247 - (BOOL)isCollection;
248 - (BOOL)isLibraryCollection;
249 - (BOOL)isFoundationCollection;
250 - (BOOL)isArray;
251 - (BOOL)isLibraryArray;
252 - (BOOL)isFoundationArray;
253 - (BOOL)isSet;
254 - (BOOL)isLibrarySet;
255 - (BOOL)isFoundationSet;
256 - (BOOL)isOrderedSet;
257 - (BOOL)isLibraryOrderedSet;
258 - (BOOL)isFoundationOrderedSet;
259 - (BOOL)isDictionary;
260 - (BOOL)isLibraryDictionary;
261 - (BOOL)isFoundationDictionary;
262 - (BOOL)isStack;
263 - (BOOL)isQueue;
264 - (BOOL)isList;
265 - (BOOL)isSortable;
266 
267 #pragma mark -
268 #pragma mark Поиск объектов
269 - (BOOL)containsObjects:(id)object, ... NS_REQUIRES_NIL_TERMINATION;
270 - (BOOL)containsCollection:(id)collection;
271 - (BOOL)containsAnyObject:(id)object, ... NS_REQUIRES_NIL_TERMINATION;
272 - (BOOL)containsAnyObjectFromCollection:(id)collection;
274 
275 #pragma mark -
276 #pragma mark Преобразование массивов
277 - (SCArray *)array;
278 - (SCSet *)set;
281 - (SCStack *)stack;
282 - (SCQueue *)queue;
285 - (NSArray *)foundationArray;
286 - (NSSet *)foundationSet;
287 - (NSOrderedSet *)foundationOrderedSet;
288 - (NSDictionary *)foundationDictionary;
289 - (NSArray *)reversedArray;
290 
291 #pragma mark -
292 #pragma mark Сортировка массивов
293 - (NSArray *)ascendingSortedArrayWithSorter:(id<SCSorter>)sorter;
294 - (NSArray *)descendingSortedArrayWithSorter:(id<SCSorter>)sorter;
295 - (NSArray *)sortedArrayWithSorter:(id<SCSorter>)sorter;
296 - (NSArray *)ascendingSortedArray;
297 - (NSArray *)descendingSortedArray;
298 - (NSArray *)sortedArray;
299 
300 @end
BOOL isQueue()
Definition: SCNSArray.m:1020
SCUnidirectionalList * unidirectionalList
Definition: SCNSArray.h:137
BOOL isFoundationCollection()
Definition: SCNSArray.m:852
Unordered set class.
Definition: SCSet.h:63
BOOL isLibraryArray()
Definition: SCNSArray.m:876
SCULong SCIndex
Index data type.
Definition: SCTypes.h:240
NSOrderedSet * foundationOrderedSet
Definition: SCNSArray.h:161
NSArray * descendingSortedArray()
Definition: SCNSArray.m:1522
Class for support the bidirectional lists of objects.
Definition: SCBidirectionalList.h:75
BOOL isFoundationArray()
Definition: SCNSArray.m:888
SCArray * array
Definition: SCNSArray.h:101
SCQueue * queue
Definition: SCNSArray.h:131
Unidirectional list class.
Definition: SCUnidirectionalList.h:74
SCStack * stack
Definition: SCNSArray.h:125
NSArray * sortedArray
Definition: SCNSArray.h:186
BOOL readOnly
Definition: SCNSArray.h:86
SCDictionary * dictionary
Definition: SCNSArray.h:119
NSSet * foundationSet
Definition: SCNSArray.h:155
NSArray * ascendingSortedArray()
Definition: SCNSArray.m:1508
Standard protocol NSCoding extention protocol.
Definition: SCCoding.h:40
BOOL isDictionary()
Definition: SCNSArray.m:972
Ordered set class.
Definition: SCOrderedSet.h:74
NSArray * foundationArray
Definition: SCNSArray.h:149
BOOL isFoundationOrderedSet()
Definition: SCNSArray.m:960
enum _SCComparisonResult SCComparisonResult
Instances comparing results type.
Definition: SCCollectioning.h:60
BOOL isLibraryCollection()
Definition: SCNSArray.m:840
Abstract implementation of the protocol SCSorter.
Definition: SCSorter.h:37
BOOL isSet()
Definition: SCNSArray.m:900
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
BOOL isArray()
Definition: SCNSArray.m:864
SCBidirectionalList * bidirectionalList
Definition: SCNSArray.h:143
BOOL isCollection()
Definition: SCNSArray.m:828
BOOL isLibrarySet()
Definition: SCNSArray.m:912
SCOrderedSet * orderedSet
Definition: SCNSArray.h:113
BOOL isFoundationSet()
Definition: SCNSArray.m:924
BOOL isSortable()
Definition: SCNSArray.m:1044
Collections communications protocol.
Definition: SCCollectioning.h:78
SCSet * set
Definition: SCNSArray.h:107
Streams communications protocol.
Definition: SCStreaming.h:40
NSDictionary * dataDictionary()
Definition: SCNSArray.m:517
SCIndex indexOfLastObject()
Definition: SCNSArray.m:1307
Abstract collections class.
Definition: SCCollection.h:94
BOOL isList()
Definition: SCNSArray.m:1032
Stack of objects class.
Definition: SCStack.h:69
BOOL isOrderedSet()
Definition: SCNSArray.m:936
id< SCCollectioning > copyObject()
Definition: SCNSArray.m:735
BOOL isFoundationDictionary()
Definition: SCNSArray.m:996
NSArray * reversedArray
Definition: SCNSArray.h:173
Queue of objects class.
Definition: SCQueue.h:74
Standard class NSArray functionality extending category.
Definition: SCNSArray.h:54
Dictionary class.
Definition: SCDictionary.h:75
NSDictionary * foundationDictionary
Definition: SCNSArray.h:167
Array class.
Definition: SCArray.h:77
BOOL empty
Definition: SCNSArray.h:80
BOOL isStack()
Definition: SCNSArray.m:1008
BOOL isLibraryOrderedSet()
Definition: SCNSArray.m:948
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:242
BOOL isLibraryDictionary()
Definition: SCNSArray.m:984