Samond Classes Library 1.2.1-RELEASE build 181
NSSet+SCSet.h
Go to the documentation of this file.
1 //
2 // NSSet+SCSet.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>
25 #import <scl/NSObject+SCObject.h>
26 #import <scl/SCCollectionProtocols.h>
27 
28 #pragma mark -
29 #pragma mark Class Constants
30 
34 #define NSSetClass @"NSSet"
35 
36 
65 @property (nonatomic, assign, readonly, getter=empty) BOOL empty;
66 
71 @property (nonatomic, assign, readonly, getter=readOnly) BOOL readOnly;
72 
86 @property (nonatomic, retain, readonly, getter=array) SCArray *array;
87 
92 @property (nonatomic, retain, readonly, getter=set) SCSet *set;
93 
98 #ifndef GNUSTEP
99 @property (nonatomic, retain, readonly, getter=orderedSet) SCOrderedSet *orderedSet;
100 #endif
101 
106 @property (nonatomic, retain, readonly, getter=dictionary) SCDictionary *dictionary;
107 
112 @property (nonatomic, retain, readonly, getter=stack) SCStack *stack;
113 
118 @property (nonatomic, retain, readonly, getter=queue) SCQueue *queue;
119 
124 @property (nonatomic, retain, readonly, getter=unidirectionalList) SCUnidirectionalList *unidirectionalList;
125 
130 @property (nonatomic, retain, readonly, getter=bidirectionalList) SCBidirectionalList *bidirectionalList;
131 
136 @property (nonatomic, retain, readonly, getter=foundationArray) NSArray *foundationArray;
137 
142 @property (nonatomic, retain, readonly, getter=foundationSet) NSSet *foundationSet;
143 
148 #ifndef GNUSTEP
149 @property (nonatomic, retain, readonly, getter=foundationOrderedSet) NSOrderedSet *foundationOrderedSet;
150 #endif
151 
156 @property (nonatomic, retain, readonly, getter=foundationDictionary) NSDictionary *foundationDictionary;
157 
160 #pragma mark -
161 #pragma mark Creating Sets
162 + (instancetype)setWithCoder:(NSCoder *)coder;
163 + (instancetype)setWithContentsOfSerializedFile:(NSString *)path;
164 + (instancetype)setWithDataDictionary:(NSDictionary *)dictionary;
165 + (instancetype)setWithDataDictionaryFromFile:(NSString *)path;
166 + (instancetype)setWithStream:(SCStream *)stream;
167 + (instancetype)setWithFileStream:(NSString *)path;
168 + (instancetype)setWithCollection:(id<SCCollection>)collection;
169 
170 #pragma mark -
171 #pragma mark Initializing Sets
172 - (instancetype)initWithCollection:(id<SCCollection>)collection;
173 
174 #pragma mark -
175 #pragma mark Protocol SCCollection Implementation
176 - (BOOL)empty;
177 - (BOOL)readOnly;
178 - (BOOL)isCollection;
179 - (BOOL)isLibraryCollection;
180 - (BOOL)isFoundationCollection;
181 - (BOOL)isArray;
182 - (BOOL)isLibraryArray;
183 - (BOOL)isFoundationArray;
184 - (BOOL)isSet;
185 - (BOOL)isLibrarySet;
186 - (BOOL)isFoundationSet;
187 - (BOOL)isOrderedSet;
188 - (BOOL)isLibraryOrderedSet;
189 - (BOOL)isFoundationOrderedSet;
190 - (BOOL)isDictionary;
191 - (BOOL)isLibraryDictionary;
192 - (BOOL)isFoundationDictionary;
193 - (BOOL)isStack;
194 - (BOOL)isQueue;
195 - (BOOL)isList;
196 - (BOOL)isSortable;
197 
198 #pragma mark -
199 #pragma mark Finding Objects in a Set
200 - (BOOL)containsObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
201 - (BOOL)containsCollection:(id<SCCollection>)collection;
202 - (BOOL)containsAnyObject:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
203 - (BOOL)containsAnyObjectFromCollection:(id<SCCollection>)collection;
204 
205 #pragma mark -
206 #pragma mark Converting Sets
207 - (SCArray *)array;
208 - (SCSet *)set;
209 #ifndef GNUSTEP
211 #endif
213 - (SCStack *)stack;
214 - (SCQueue *)queue;
217 - (NSArray *)foundationArray;
218 - (NSSet *)foundationSet;
219 #ifndef GNUSTEP
220 - (NSOrderedSet *)foundationOrderedSet;
221 #endif
222 - (NSDictionary *)foundationDictionary;
223 
224 @end
BOOL isLibraryCollection()
Definition: NSSet+SCSet.m:360
Unordered set class.
Definition: SCSet.h:65
BOOL empty
Definition: NSSet+SCSet.h:65
NSArray * foundationArray
Definition: NSSet+SCSet.h:136
Class for support the bidirectional lists of objects.
Definition: SCBidirectionalList.h:75
BOOL isArray()
Definition: NSSet+SCSet.m:384
BOOL readOnly
Definition: NSSet+SCSet.h:71
SCBidirectionalList * bidirectionalList
Definition: NSSet+SCSet.h:130
Unidirectional list class.
Definition: SCUnidirectionalList.h:74
SCDictionary * dictionary
Definition: NSSet+SCSet.h:106
Standard class NSSet functionality extending category.
Definition: NSSet+SCSet.h:49
Ordered set class.
Definition: SCOrderedSet.h:73
BOOL isSortable()
Definition: NSSet+SCSet.m:564
BOOL isLibraryOrderedSet()
Definition: NSSet+SCSet.m:468
BOOL isLibraryDictionary()
Definition: NSSet+SCSet.m:504
SCUnidirectionalList * unidirectionalList
Definition: NSSet+SCSet.h:124
BOOL isFoundationOrderedSet()
Definition: NSSet+SCSet.m:480
BOOL isFoundationArray()
Definition: NSSet+SCSet.m:408
SCQueue * queue
Definition: NSSet+SCSet.h:118
SCStack * stack
Definition: NSSet+SCSet.h:112
SCSet * set
Definition: NSSet+SCSet.h:92
BOOL isList()
Definition: NSSet+SCSet.m:552
BOOL isDictionary()
Definition: NSSet+SCSet.m:492
BOOL isQueue()
Definition: NSSet+SCSet.m:540
Collections communications protocol.
Definition: SCCollectioning.h:80
SCOrderedSet * orderedSet
Definition: NSSet+SCSet.h:99
SCArray * array
Definition: NSSet+SCSet.h:86
BOOL isSet()
Definition: NSSet+SCSet.m:420
Abstract collections class.
Definition: SCCollection.h:94
BOOL isCollection()
Definition: NSSet+SCSet.m:348
Stack of objects class.
Definition: SCStack.h:69
BOOL isOrderedSet()
Definition: NSSet+SCSet.m:456
NSDictionary * foundationDictionary
Definition: NSSet+SCSet.h:156
BOOL isFoundationSet()
Definition: NSSet+SCSet.m:444
BOOL isStack()
Definition: NSSet+SCSet.m:528
NSOrderedSet * foundationOrderedSet
Definition: NSSet+SCSet.h:149
Queue of objects class.
Definition: SCQueue.h:74
BOOL isLibrarySet()
Definition: NSSet+SCSet.m:432
Dictionary class.
Definition: SCDictionary.h:71
Array class.
Definition: SCArray.h:75
BOOL isLibraryArray()
Definition: NSSet+SCSet.m:396
BOOL isFoundationCollection()
Definition: NSSet+SCSet.m:372
NSSet * foundationSet
Definition: NSSet+SCSet.h:142
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:242
BOOL isFoundationDictionary()
Definition: NSSet+SCSet.m:516