Samond Classes Library 1.2.2-RELEASE build 188
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 - 2017 by Samond Development Corporation. All rights reserved.
7 //
8 
24 #import <Foundation/Foundation.h>
27 #import <scl/SCSorter.h>
28 
29 #pragma mark -
30 #pragma mark Class Constants
31 
40 #define NSArrayClass @"NSArray"
41 
42 
57 
73 @property (nonatomic, readonly, retain) NSString *name;
74 
79 @property (nonatomic, readonly, assign) BOOL empty;
80 
85 @property (nonatomic, readonly, assign) BOOL readOnly;
86 
91 @property (nonatomic, readonly, retain) id<SCCollectionDelegate> delegate;
92 
97 @property (nonatomic, readonly, assign) SCCollectionType collectionType;
98 
103 @property (nonatomic, readonly, assign) BOOL isCollection;
104 
109 @property (nonatomic, readonly, assign) BOOL isLibraryCollection;
110 
115 @property (nonatomic, readonly, assign) BOOL isFoundationCollection;
116 
121 @property (nonatomic, readonly, assign) BOOL isArray;
122 
127 @property (nonatomic, readonly, assign) BOOL isLibraryArray;
128 
134 @property (nonatomic, readonly, assign) BOOL isFoundationArray;
135 
140 @property (nonatomic, readonly, assign) BOOL isSet;
141 
146 @property (nonatomic, readonly, assign) BOOL isLibrarySet;
147 
153 @property (nonatomic, readonly, assign) BOOL isFoundationSet;
154 
159 @property (nonatomic, readonly, assign) BOOL isOrderedSet;
160 
165 @property (nonatomic, readonly, assign) BOOL isLibraryOrderedSet;
166 
173 @property (nonatomic, readonly, assign) BOOL isFoundationOrderedSet;
174 
179 @property (nonatomic, readonly, assign) BOOL isDictionary;
180 
185 @property (nonatomic, readonly, assign) BOOL isLibraryDictionary;
186 
193 @property (nonatomic, readonly, assign) BOOL isFoundationDictionary;
194 
199 @property (nonatomic, readonly, assign) BOOL isStack;
200 
205 @property (nonatomic, readonly, assign) BOOL isQueue;
206 
212 @property (nonatomic, readonly, assign) BOOL isList;
213 
219 @property (nonatomic, readonly, assign) BOOL isSortable;
220 
232 @property (nonatomic, readonly, assign) SCIndex indexOfLastObject;
233 
244 @property (nonatomic, readonly, assign) SCArray *array;
245 
250 @property (nonatomic, readonly, assign) SCSet *set;
251 
256 #ifndef GNUSTEP
257 @property (nonatomic, readonly, assign) SCOrderedSet *orderedSet;
258 #endif
259 
264 @property (nonatomic, readonly, assign) SCDictionary *dictionary;
265 
270 @property (nonatomic, readonly, assign) SCStack *stack;
271 
276 @property (nonatomic, readonly, assign) SCQueue *queue;
277 
282 @property (nonatomic, readonly, assign) SCUnidirectionalList *unidirectionalList;
283 
288 @property (nonatomic, readonly, assign) SCBidirectionalList *bidirectionalList;
289 
294 @property (nonatomic, readonly, assign) NSArray *foundationArray;
295 
300 @property (nonatomic, readonly, assign) NSSet *foundationSet;
301 
306 #ifndef GNUSTEP
307 @property (nonatomic, readonly, assign) NSOrderedSet *foundationOrderedSet;
308 #endif
309 
314 @property (nonatomic, readonly, assign) NSDictionary *foundationDictionary;
315 
320 @property (nonatomic, readonly, assign) NSArray *reversedArray;
321 
337 @property (nonatomic, readonly, assign) NSArray *ascendingSortedArray;
338 
343 @property (nonatomic, readonly, assign) NSArray *descendingSortedArray;
344 
352 @property (nonatomic, readonly, assign) NSArray *sortedArray;
353 
356 #pragma mark -
357 #pragma mark Creating Arrays
358 + (instancetype)arrayWithCoder:(NSCoder *)coder;
359 + (instancetype)arrayWithContentsOfSerializedFile:(NSString *)path;
360 + (instancetype)arrayWithDataDictionary:(NSDictionary *)dictionary;
361 + (instancetype)arrayWithDataDictionaryFromFile:(NSString *)path;
362 + (instancetype)arrayWithStream:(SCStream *)stream;
363 + (instancetype)arrayWithFileStream:(NSString *)path;
364 
365 + (instancetype)arrayWithAscendingSortedCollection:(id<SCCollection>)collection sorter:(id<SCSorter>)sorter;
366 + (instancetype)arrayWithDescendingSortedCollection:(id<SCCollection>)collection sorter:(id<SCSorter>)sorter;
367 + (instancetype)arrayWithSortedCollection:(id<SCCollection>)collection sorter:(id<SCSorter>)sorter;
368 + (instancetype)arrayWithAscendingSortedCollection:(id<SCCollection>)collection;
369 + (instancetype)arrayWithDescendingSortedCollection:(id<SCCollection>)collection;
370 + (instancetype)arrayWithSortedCollection:(id<SCCollection>)collection;
371 + (instancetype)arrayWithCollection:(id<SCCollection>)collection;
372 
373 #pragma mark -
374 #pragma mark Initializing Arrays
375 - (instancetype)initWithAscendingSortedCollection:(id<SCCollection>)collection sorter:(id<SCSorter>)sorter;
376 - (instancetype)initWithDescendingSortedCollection:(id<SCCollection>)collection sorter:(id<SCSorter>)sorter;
377 - (instancetype)initWithSortedCollection:(id<SCCollection>)collection sorter:(id<SCSorter>)sorter;
378 - (instancetype)initWithAscendingSortedCollection:(id<SCCollection>)collection;
379 - (instancetype)initWithDescendingSortedCollection:(id<SCCollection>)collection;
380 - (instancetype)initWithSortedCollection:(id<SCCollection>)collection;
381 - (instancetype)initWithCollection:(id<SCCollection>)collection;
382 
383 #pragma mark -
384 #pragma mark Finding Objects in an Array
385 - (BOOL)containsObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
386 - (BOOL)containsCollection:(id<SCCollection>)collection;
387 - (BOOL)containsAnyObject:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
388 - (BOOL)containsAnyObjectFromCollection:(id<SCCollection>)collection;
389 
390 #pragma mark -
391 #pragma mark Sorting Arrays
392 - (NSArray *)ascendingSortedArrayWithSorter:(id<SCSorter>)sorter;
393 - (NSArray *)descendingSortedArrayWithSorter:(id<SCSorter>)sorter;
394 - (NSArray *)sortedArrayWithSorter:(id<SCSorter>)sorter;
395 
396 #pragma mark -
397 #pragma mark Comparing Arrays
398 - (BOOL)isEqualToCollection:(id<SCCollection>)collection;
399 
400 @end
Unordered set class.
Definition: SCSet.h:71
SCUnidirectionalList * unidirectionalList
Definition: NSArray+SCArray.h:282
NSArray * foundationArray
Definition: NSArray+SCArray.h:294
SCStack * stack
Definition: NSArray+SCArray.h:270
BOOL isFoundationArray
Definition: NSArray+SCArray.h:134
Class for support the bidirectional lists of objects.
Definition: SCBidirectionalList.h:80
SCDictionary * dictionary
Definition: NSArray+SCArray.h:264
BOOL isLibraryCollection
Definition: NSArray+SCArray.h:109
Unidirectional list class.
Definition: SCUnidirectionalList.h:79
BOOL isStack
Definition: NSArray+SCArray.h:199
BOOL isFoundationOrderedSet
Definition: NSArray+SCArray.h:173
Standard class NSArray functionality extending category.
Definition: NSArray+SCArray.h:56
NSArray * ascendingSortedArray
Definition: NSArray+SCArray.h:337
BOOL isLibrarySet
Definition: NSArray+SCArray.h:146
BOOL isLibraryOrderedSet
Definition: NSArray+SCArray.h:165
SCOrderedSet * orderedSet
Definition: NSArray+SCArray.h:257
BOOL isCollection
Definition: NSArray+SCArray.h:103
Ordered set class.
Definition: SCOrderedSet.h:79
NSSet * foundationSet
Definition: NSArray+SCArray.h:300
BOOL isDictionary
Definition: NSArray+SCArray.h:179
SCQueue * queue
Definition: NSArray+SCArray.h:276
BOOL isFoundationDictionary
Definition: NSArray+SCArray.h:193
SCBidirectionalList * bidirectionalList
Definition: NSArray+SCArray.h:288
NSString * name
Definition: NSArray+SCArray.h:73
Abstract implementation of the protocol SCSorter.
Definition: SCSorter.h:136
BOOL isOrderedSet
Definition: NSArray+SCArray.h:159
Indexed collections protocol.
Definition: SCCollectionProtocols.h:772
Protocol and class SCSorter header file.
NSArray * sortedArray
Definition: NSArray+SCArray.h:352
BOOL isList
Definition: NSArray+SCArray.h:212
BOOL isLibraryDictionary
Definition: NSArray+SCArray.h:185
BOOL readOnly
Definition: NSArray+SCArray.h:85
NSArray * reversedArray
Definition: NSArray+SCArray.h:320
NSDictionary * foundationDictionary
Definition: NSArray+SCArray.h:314
Collection types protocols header file.
BOOL isFoundationSet
Definition: NSArray+SCArray.h:153
SCSet * set
Definition: NSArray+SCArray.h:250
Collections communications protocol.
Definition: SCCollectioning.h:78
id< SCCollectionDelegate > delegate
Definition: NSArray+SCArray.h:91
BOOL empty
Definition: NSArray+SCArray.h:79
BOOL isSet
Definition: NSArray+SCArray.h:140
SCIndex indexOfLastObject
Definition: NSArray+SCArray.h:232
Abstract collections class.
Definition: SCCollection.h:101
Stack of objects class.
Definition: SCStack.h:74
BOOL isQueue
Definition: NSArray+SCArray.h:205
BOOL isLibraryArray
Definition: NSArray+SCArray.h:127
BOOL isFoundationCollection
Definition: NSArray+SCArray.h:115
SCCollectionType collectionType
Definition: NSArray+SCArray.h:97
BOOL isArray
Definition: NSArray+SCArray.h:121
Queue of objects class.
Definition: SCQueue.h:80
SCArray * array
Definition: NSArray+SCArray.h:244
Category NSObject(SCObject) header file.
NSArray * descendingSortedArray
Definition: NSArray+SCArray.h:343
Dictionary class.
Definition: SCDictionary.h:77
NSOrderedSet * foundationOrderedSet
Definition: NSArray+SCArray.h:307
Array class.
Definition: SCArray.h:81
BOOL isSortable
Definition: NSArray+SCArray.h:219
NSUInteger SCIndex
Definition: SCCollectionProtocols.h:50
SCCollectionType
Definition: SCCollectionProtocols.h:56
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:226