Samond Classes Library 1.2.6-STABLE build 219
NSArray+SCArray.h
Go to the documentation of this file.
1 //
2 // NSArray+SCArray.h
3 // scl
4 //
5 // Created by Viacheslav Smolensky on 13.05.12.
6 // Copyright (c) 2007 - 2018 by Samond Development Corporation. All rights reserved.
7 //
8 
24 #import <Foundation/Foundation.h>
28 #import <scl/SCSorter.h>
29 
30 #pragma mark -
31 #pragma mark Class Constants
32 
41 #define NSArrayClass @"NSArray"
42 
43 
58 
74 @property (nonatomic, readonly, retain) NSString *name;
75 
80 @property (nonatomic, readonly, assign) BOOL empty;
81 
86 @property (nonatomic, readonly, assign) BOOL readOnly;
87 
92 @property (nonatomic, readonly, retain) id<SCCollectionDelegate> delegate;
93 
98 @property (nonatomic, readonly, assign) SCCollectionType collectionType;
99 
104 @property (nonatomic, readonly, assign) BOOL isCollection;
105 
110 @property (nonatomic, readonly, assign) BOOL isLibraryCollection;
111 
116 @property (nonatomic, readonly, assign) BOOL isFoundationCollection;
117 
122 @property (nonatomic, readonly, assign) BOOL isArray;
123 
128 @property (nonatomic, readonly, assign) BOOL isLibraryArray;
129 
135 @property (nonatomic, readonly, assign) BOOL isFoundationArray;
136 
141 @property (nonatomic, readonly, assign) BOOL isSet;
142 
147 @property (nonatomic, readonly, assign) BOOL isLibrarySet;
148 
154 @property (nonatomic, readonly, assign) BOOL isFoundationSet;
155 
160 @property (nonatomic, readonly, assign) BOOL isOrderedSet;
161 
166 @property (nonatomic, readonly, assign) BOOL isLibraryOrderedSet;
167 
174 @property (nonatomic, readonly, assign) BOOL isFoundationOrderedSet;
175 
180 @property (nonatomic, readonly, assign) BOOL isDictionary;
181 
186 @property (nonatomic, readonly, assign) BOOL isLibraryDictionary;
187 
194 @property (nonatomic, readonly, assign) BOOL isFoundationDictionary;
195 
200 @property (nonatomic, readonly, assign) BOOL isStack;
201 
206 @property (nonatomic, readonly, assign) BOOL isQueue;
207 
213 @property (nonatomic, readonly, assign) BOOL isList;
214 
220 @property (nonatomic, readonly, assign) BOOL isSortable;
221 
233 @property (nonatomic, readonly, assign) SCIndex indexOfLastObject;
234 
245 @property (nonatomic, readonly, assign) SCArray *array;
246 
251 @property (nonatomic, readonly, assign) SCSet *set;
252 
257 @property (nonatomic, readonly, assign) SCOrderedSet *orderedSet;
258 
263 @property (nonatomic, readonly, assign) SCDictionary *dictionary;
264 
269 @property (nonatomic, readonly, assign) SCStack *stack;
270 
275 @property (nonatomic, readonly, assign) SCQueue *queue;
276 
281 @property (nonatomic, readonly, assign) SCUnidirectionalList *unidirectionalList;
282 
287 @property (nonatomic, readonly, assign) SCBidirectionalList *bidirectionalList;
288 
293 @property (nonatomic, readonly, assign) NSArray *foundationArray;
294 
299 @property (nonatomic, readonly, assign) NSSet *foundationSet;
300 
305 @property (nonatomic, readonly, assign) NSOrderedSet *foundationOrderedSet;
306 
311 @property (nonatomic, readonly, assign) NSDictionary *foundationDictionary;
312 
317 @property (nonatomic, readonly, assign) NSArray *reversedArray;
318 
334 @property (nonatomic, readonly, assign) NSArray *ascendingSortedArray;
335 
340 @property (nonatomic, readonly, assign) NSArray *descendingSortedArray;
341 
349 @property (nonatomic, readonly, assign) NSArray *sortedArray;
350 
353 #pragma mark -
354 #pragma mark Creating Arrays
355 + (instancetype)arrayWithCoder:(NSCoder *)coder;
356 + (instancetype)arrayWithContentsOfSerializedFile:(NSString *)path;
357 + (instancetype)arrayWithDataDictionary:(NSDictionary *)dictionary;
358 + (instancetype)arrayWithDataDictionaryFromFile:(NSString *)path;
359 + (instancetype)arrayWithStream:(SCStream *)stream;
360 + (instancetype)arrayWithFileStream:(NSString *)path;
361 + (instancetype)arrayWithData:(NSData *)data;
362 + (instancetype)arrayWithContentsOfURLString:(NSString *)urlString;
363 
364 + (instancetype)arrayWithAscendingSortedCollection:(id<SCCollection>)collection sorter:(id<SCSorter>)sorter;
365 + (instancetype)arrayWithDescendingSortedCollection:(id<SCCollection>)collection sorter:(id<SCSorter>)sorter;
366 + (instancetype)arrayWithSortedCollection:(id<SCCollection>)collection sorter:(id<SCSorter>)sorter;
367 + (instancetype)arrayWithAscendingSortedCollection:(id<SCCollection>)collection;
368 + (instancetype)arrayWithDescendingSortedCollection:(id<SCCollection>)collection;
369 + (instancetype)arrayWithSortedCollection:(id<SCCollection>)collection;
370 + (instancetype)arrayWithCollection:(id<SCCollection>)collection;
371 
372 #pragma mark -
373 #pragma mark Initializing Arrays
374 - (instancetype)initWithAscendingSortedCollection:(id<SCCollection>)collection sorter:(id<SCSorter>)sorter;
375 - (instancetype)initWithDescendingSortedCollection:(id<SCCollection>)collection sorter:(id<SCSorter>)sorter;
376 - (instancetype)initWithSortedCollection:(id<SCCollection>)collection sorter:(id<SCSorter>)sorter;
377 - (instancetype)initWithAscendingSortedCollection:(id<SCCollection>)collection;
378 - (instancetype)initWithDescendingSortedCollection:(id<SCCollection>)collection;
379 - (instancetype)initWithSortedCollection:(id<SCCollection>)collection;
380 - (instancetype)initWithCollection:(id<SCCollection>)collection;
381 
382 #pragma mark -
383 #pragma mark Finding Objects in an Array
384 - (BOOL)containsObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
385 - (BOOL)containsCollection:(id<SCCollection>)collection;
386 - (BOOL)containsAnyObject:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
387 - (BOOL)containsAnyObjectFromCollection:(id<SCCollection>)collection;
388 
389 #pragma mark -
390 #pragma mark Sorting Arrays
391 - (NSArray *)ascendingSortedArrayWithSorter:(id<SCSorter>)sorter;
392 - (NSArray *)descendingSortedArrayWithSorter:(id<SCSorter>)sorter;
393 - (NSArray *)sortedArrayWithSorter:(id<SCSorter>)sorter;
394 
395 #pragma mark -
396 #pragma mark Comparing Arrays
397 - (BOOL)isEqualToCollection:(id<SCCollection>)collection;
398 
399 #pragma mark -
400 #pragma mark Deriving New Arrays
401 - (NSArray *)arrayByAddingObjects:(id)object, ... NS_REQUIRES_NIL_TERMINATION;
402 - (NSArray *)arrayByAddingArray:(NSArray *)array;
403 - (NSArray *)arrayByAddingCollection:(id<SCCollection>)collection;
404 
405 @end
Unordered set class.
Definition: SCSet.h:72
SCUnidirectionalList * unidirectionalList
Definition: NSArray+SCArray.h:281
NSArray * foundationArray
Definition: NSArray+SCArray.h:293
SCStack * stack
Definition: NSArray+SCArray.h:269
BOOL isFoundationArray
Definition: NSArray+SCArray.h:135
Class for support the bidirectional lists of objects.
Definition: SCBidirectionalList.h:81
SCDictionary * dictionary
Definition: NSArray+SCArray.h:263
BOOL isLibraryCollection
Definition: NSArray+SCArray.h:110
Unidirectional list class.
Definition: SCUnidirectionalList.h:80
BOOL isStack
Definition: NSArray+SCArray.h:200
BOOL isFoundationOrderedSet
Definition: NSArray+SCArray.h:174
Standard class NSArray functionality extending category.
Definition: NSArray+SCArray.h:57
NSArray * ascendingSortedArray
Definition: NSArray+SCArray.h:334
BOOL isLibrarySet
Definition: NSArray+SCArray.h:147
BOOL isLibraryOrderedSet
Definition: NSArray+SCArray.h:166
SCOrderedSet * orderedSet
Definition: NSArray+SCArray.h:257
BOOL isCollection
Definition: NSArray+SCArray.h:104
Ordered set class.
Definition: SCOrderedSet.h:83
NSSet * foundationSet
Definition: NSArray+SCArray.h:299
BOOL isDictionary
Definition: NSArray+SCArray.h:180
SCQueue * queue
Definition: NSArray+SCArray.h:275
BOOL isFoundationDictionary
Definition: NSArray+SCArray.h:194
SCBidirectionalList * bidirectionalList
Definition: NSArray+SCArray.h:287
NSString * name
Definition: NSArray+SCArray.h:74
Abstract implementation of the protocol SCSorter.
Definition: SCSorter.h:138
BOOL isOrderedSet
Definition: NSArray+SCArray.h:160
Indexed collections protocol.
Definition: SCCollectionProtocols.h:793
Protocol and class SCSorter header file.
NSArray * sortedArray
Definition: NSArray+SCArray.h:349
BOOL isList
Definition: NSArray+SCArray.h:213
BOOL isLibraryDictionary
Definition: NSArray+SCArray.h:186
BOOL readOnly
Definition: NSArray+SCArray.h:86
NSArray * reversedArray
Definition: NSArray+SCArray.h:317
NSDictionary * foundationDictionary
Definition: NSArray+SCArray.h:311
Collection types protocols header file.
BOOL isFoundationSet
Definition: NSArray+SCArray.h:154
SCSet * set
Definition: NSArray+SCArray.h:251
Collections communications protocol.
Definition: SCCollectioning.h:79
Category NSDictionary(SCDictionary) header file.
id< SCCollectionDelegate > delegate
Definition: NSArray+SCArray.h:92
BOOL empty
Definition: NSArray+SCArray.h:80
BOOL isSet
Definition: NSArray+SCArray.h:141
SCIndex indexOfLastObject
Definition: NSArray+SCArray.h:233
Abstract collections class.
Definition: SCCollection.h:98
Stack of objects class.
Definition: SCStack.h:77
BOOL isQueue
Definition: NSArray+SCArray.h:206
BOOL isLibraryArray
Definition: NSArray+SCArray.h:128
BOOL isFoundationCollection
Definition: NSArray+SCArray.h:116
SCCollectionType collectionType
Definition: NSArray+SCArray.h:98
BOOL isArray
Definition: NSArray+SCArray.h:122
Queue of objects class.
Definition: SCQueue.h:83
SCArray * array
Definition: NSArray+SCArray.h:245
Category NSObject(SCObject) header file.
NSArray * descendingSortedArray
Definition: NSArray+SCArray.h:340
Dictionary class.
Definition: SCDictionary.h:80
NSOrderedSet * foundationOrderedSet
Definition: NSArray+SCArray.h:305
Array class.
Definition: SCArray.h:84
BOOL isSortable
Definition: NSArray+SCArray.h:220
NSUInteger SCIndex
Definition: SCCollectionProtocols.h:53
SCCollectionType
Definition: SCCollectionProtocols.h:59
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:224