Samond Classes Library 1.2.6-STABLE build 219
SCSet.h
Go to the documentation of this file.
1 //
2 // SCSet.h
3 // scl
4 //
5 // Created by Viacheslav Smolensky on 13.04.12.
6 // Copyright (c) 2007 - 2018 by Samond Development Corporation. All rights reserved.
7 //
8 
22 #import <Foundation/Foundation.h>
23 #import <scl/NSArray+SCArray.h>
25 #import <scl/SCCollection.h>
26 
27 #pragma mark -
28 #pragma mark Class Constants
29 
38 #define SCSetClass @"SCSet"
39 
40 
72 @interface SCSet : SCCollection {
73  NSMutableSet *_set; // Internal data storage
74 }
75 
99 @property (nonatomic, readonly, assign) SCArray *allObjects;
100 
105 @property (nonatomic, readonly, assign) id anyObject;
106 
109 #pragma mark -
110 #pragma mark Creating Sets
111 + (instancetype)setWithCoder:(NSCoder *)coder;
112 + (instancetype)setWithContentsOfSerializedFile:(NSString *)path;
113 + (instancetype)setWithDataDictionary:(NSDictionary *)dictionary;
114 + (instancetype)setWithDataDictionaryFromFile:(NSString *)path;
115 + (instancetype)setWithStream:(SCStream *)stream;
116 + (instancetype)setWithFileStream:(NSString *)path;
117 + (instancetype)setWithData:(NSData *)data;
118 + (instancetype)setWithContentsOfFile:(NSString *)path;
119 + (instancetype)setWithContentsOfURL:(NSURL *)url;
120 + (instancetype)setWithContentsOfURLString:(NSString *)urlString;
121 
122 + (instancetype)setWithName:(NSString *)name;
123 + (instancetype)setWithObject:(id<SCCollectioning>)object;
124 + (instancetype)setWithObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
125 + (instancetype)setWithCollection:(id<SCCollection>)collection;
126 + (instancetype)setWithSet:(SCSet *)set;
127 + (instancetype)setWithArray:(SCArray *)array;
128 + (instancetype)set;
129 
130 #pragma mark -
131 #pragma mark Initializing Sets
132 - (instancetype)initWithName:(NSString *)name;
133 - (instancetype)initWithObject:(id<SCCollectioning>)object;
134 - (instancetype)initWithObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
135 - (instancetype)initWithCollection:(id<SCCollection>)collection;
136 - (instancetype)initWithSet:(SCSet *)set;
137 - (instancetype)initWithArray:(SCArray *)array;
138 - (instancetype)init;
139 
140 #pragma mark -
141 #pragma mark Copying Sets
142 - (void)setSet:(SCSet *)set;
143 - (void)setArray:(SCArray *)array;
144 
145 #pragma mark -
146 #pragma mark Comparing Sets
147 - (BOOL)isSubsetOfSet:(id<SCCollection>)set;
148 - (BOOL)intersectsSet:(id<SCCollection>)set;
149 - (BOOL)isEqualToSet:(SCSet *)set;
150 - (BOOL)isEqualToArray:(SCArray *)array;
151 
152 #pragma mark -
153 #pragma mark Deriving New Sets
154 - (SCSet *)setByAddingObject:(id<SCCollectioning>)object;
155 - (SCSet *)setByAddingObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
156 - (SCSet *)setByAddingObjectsFromArray:(SCArray *)array;
157 - (SCSet *)setByAddingArray:(SCArray *)array;
158 - (SCSet *)setByAddingObjectsFromSet:(SCSet *)set;
159 - (SCSet *)setByAddingSet:(SCSet *)set;
160 - (SCSet *)setByAddingCollection:(id<SCCollection>)collection;
161 
162 #pragma mark -
163 #pragma mark Adding Objects
164 - (void)addObjectsFromArray:(SCArray *)array;
165 - (void)addArray:(SCArray *)array;
166 - (void)addObjectsFromSet:(SCSet *)set;
167 - (void)addSet:(SCSet *)set;
168 
169 #pragma mark -
170 #pragma mark Accessing Set Members
171 - (id)member:(id<SCCollectioning>)object;
172 
173 #pragma mark -
174 #pragma mark Combining and Recombining Sets
175 - (void)unionSet:(id<SCCollection>)set;
176 - (void)minusSet:(id<SCCollection>)set;
177 - (void)intersectSet:(id<SCCollection>)set;
178 
179 @end
Unordered set class.
Definition: SCSet.h:72
Caregory NSArray(SCArray) header file.
Collections communications protocol.
Definition: SCCollectioning.h:79
Category NSDictionary(SCDictionary) header file.
Abstract collections class.
Definition: SCCollection.h:98
Class SCCollection header file.
Array class.
Definition: SCArray.h:84
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:224