Samond Classes Library 1.2.3-RELEASE build 192
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 - 2017 by Samond Development Corporation. All rights reserved.
7 //
8 
22 #import <scl/SCCollection.h>
23 
24 #pragma mark -
25 #pragma mark Class Constants
26 
35 #define SCSetClass @"SCSet"
36 
37 
69 @interface SCSet : SCCollection {
70  NSMutableSet *fSet; // Internal data storage
71 }
72 
96 @property (nonatomic, readonly, assign) SCArray *allObjects;
97 
102 @property (nonatomic, readonly, assign) id anyObject;
103 
106 #pragma mark -
107 #pragma mark Creating Sets
108 + (instancetype)setWithCoder:(NSCoder *)coder;
109 + (instancetype)setWithContentsOfSerializedFile:(NSString *)path;
110 + (instancetype)setWithDataDictionary:(NSDictionary *)dictionary;
111 + (instancetype)setWithDataDictionaryFromFile:(NSString *)path;
112 + (instancetype)setWithStream:(SCStream *)stream;
113 + (instancetype)setWithFileStream:(NSString *)path;
114 + (instancetype)setWithData:(NSData *)data;
115 + (instancetype)setWithContentsOfFile:(NSString *)path;
116 + (instancetype)setWithContentsOfURL:(NSURL *)url;
117 + (instancetype)setWithContentsOfURLString:(NSString *)urlString;
118 
119 + (instancetype)setWithName:(NSString *)name;
120 + (instancetype)setWithObject:(id<SCCollectioning>)object;
121 + (instancetype)setWithObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
122 + (instancetype)setWithCollection:(id<SCCollection>)collection;
123 + (instancetype)setWithSet:(SCSet *)set;
124 + (instancetype)setWithArray:(SCArray *)array;
125 + (instancetype)set;
126 
127 #pragma mark -
128 #pragma mark Initializing Sets
129 - (instancetype)initWithName:(NSString *)name;
130 - (instancetype)initWithObject:(id<SCCollectioning>)object;
131 - (instancetype)initWithObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
132 - (instancetype)initWithCollection:(id<SCCollection>)collection;
133 - (instancetype)initWithSet:(SCSet *)set;
134 - (instancetype)initWithArray:(SCArray *)array;
135 - (instancetype)init;
136 
137 #pragma mark -
138 #pragma mark Copying Sets
139 - (void)setSet:(SCSet *)set;
140 - (void)setArray:(SCArray *)array;
141 
142 #pragma mark -
143 #pragma mark Comparing Sets
144 - (BOOL)isSubsetOfSet:(id<SCCollection>)set;
145 - (BOOL)intersectsSet:(id<SCCollection>)set;
146 - (BOOL)isEqualToSet:(SCSet *)set;
147 - (BOOL)isEqualToArray:(SCArray *)array;
148 
149 #pragma mark -
150 #pragma mark Deriving New Sets
151 - (SCSet *)setByAddingObject:(id<SCCollectioning>)object;
152 - (SCSet *)setByAddingObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
153 - (SCSet *)setByAddingObjectsFromArray:(SCArray *)array;
154 - (SCSet *)setByAddingArray:(SCArray *)array;
155 - (SCSet *)setByAddingObjectsFromSet:(SCSet *)set;
156 - (SCSet *)setByAddingSet:(SCSet *)set;
157 - (SCSet *)setByAddingCollection:(id<SCCollection>)collection;
158 
159 #pragma mark -
160 #pragma mark Adding Objects
161 - (void)addObjectsFromArray:(SCArray *)array;
162 - (void)addArray:(SCArray *)array;
163 - (void)addObjectsFromSet:(SCSet *)set;
164 - (void)addSet:(SCSet *)set;
165 
166 #pragma mark -
167 #pragma mark Accessing Set Members
168 - (id)member:(id<SCCollectioning>)object;
169 
170 #pragma mark -
171 #pragma mark Combining and Recombining Sets
172 - (void)unionSet:(id<SCCollection>)set;
173 - (void)minusSet:(id<SCCollection>)set;
174 - (void)intersectSet:(id<SCCollection>)set;
175 
176 @end
Unordered set class.
Definition: SCSet.h:69
Collections communications protocol.
Definition: SCCollectioning.h:78
Abstract collections class.
Definition: SCCollection.h:97
Class SCCollection header file.
Array class.
Definition: SCArray.h:81
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:238