Samond Classes Library 1.2.0-RELEASE build 166
SCCollection.h
Go to the documentation of this file.
1 //
2 // SCCollection.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/SCObject.h>
23 #import <scl/SCMutableCollection.h>
24 
25 #pragma mark -
26 #pragma mark Константы класса
27 
31 #define SCCollectionClass @"SCCollection"
32 #define SCNotFound NSNotFound
34 
36 @protocol SCCollectionDelegate;
37 
95  NSString *fName; // Название коллекции
96  BOOL fReadOnly; // Флаг нахождения коллекции в режиме только для чтения
97  id<SCCollectionDelegate> fDelegate; // Указатель на обработчик событий коллекции
98 }
99 #pragma mark -
100 #pragma mark Свойства экземпляра класса
101 
110 @property (nonatomic, retain, getter=name, setter=setName:) NSString *name;
111 
116 @property (nonatomic, assign, getter=readOnly, setter=setReadOnly:) BOOL readOnly;
117 
122 @property (nonatomic, assign, getter=delegate, setter=setDelegate:) id<SCCollectionDelegate> delegate;
123 
128 @property (nonatomic, assign, readonly, getter=count) SCULong count;
129 
134 @property (nonatomic, assign, readonly, getter=empty) BOOL empty;
135 
140 @property (nonatomic, retain, readonly, getter=typeName) NSString *typeName;
141 
146 @property (nonatomic, retain, readonly, getter=description) NSString *description;
147 
165 @property (nonatomic, retain, readonly, getter=objectEnumerator) NSEnumerator *objectEnumerator;
166 
171 @property (nonatomic, retain, readonly, getter=reverseObjectEnumerator) NSEnumerator *reverseObjectEnumerator;
172 
175 #pragma mark -
176 #pragma mark Инициализация коллекций
177 - (id)initWithCollection:(id)collection;
178 
179 #pragma mark -
180 #pragma mark Свойства экземпляра класса
181 - (NSString *)name;
182 - (BOOL)readOnly;
183 - (id<SCCollectionDelegate>)delegate;
184 - (SCULong)count;
185 - (BOOL)empty;
186 - (NSString *)typeName;
187 - (void)setName:(NSString *)name;
188 - (void)setReadOnly:(BOOL)flag;
189 - (void)setDelegate:(id<SCCollectionDelegate>)delegate;
190 
191 #pragma mark -
192 #pragma mark Копирование коллекций
193 - (void)setCollection:(id)collection;
194 - (void)setObject:(id)object;
195 - (void)setObjects:(id)object, ... NS_REQUIRES_NIL_TERMINATION;
196 
197 #pragma mark -
198 #pragma mark Сравнение коллекций
199 - (BOOL)isEqualToCollection:(id)collection;
200 - (BOOL)isEqualToContentsOfCollection:(id)collection;
201 - (BOOL)isEqual:(id)object;
202 
203 #pragma mark -
204 #pragma mark Счетчики объектов
205 - (NSEnumerator *)objectEnumerator;
206 - (NSEnumerator *)reverseObjectEnumerator;
207 - (void)enumerateWithDelegate:(id<SCCollectionDelegate>)delegate;
208 - (void)enumerate;
209 - (void)reverseEnumerateWithDelegate:(id<SCCollectionDelegate>)delegate;
210 - (void)reverseEnumerate;
211 
212 #pragma mark -
213 #pragma mark Преобразование коллекций
214 - (SCArray *)array;
215 - (SCSet *)set;
216 - (SCOrderedSet *)orderedSet;
217 - (SCDictionary *)dictionary;
218 - (SCStack *)stack;
219 - (SCQueue *)queue;
220 - (SCUnidirectionalList *)unidirectionalList;
221 - (SCBidirectionalList *)bidirectionalList;
222 - (NSArray *)foundationArray;
223 - (NSSet *)foundationSet;
224 - (NSOrderedSet *)foundationOrderedSet;
225 - (NSDictionary *)foundationDictionary;
226 
227 #pragma mark -
228 #pragma mark Добавление объктов
229 - (void)addObject:(id)object;
230 - (void)addObjects:(id)object, ... NS_REQUIRES_NIL_TERMINATION;
231 - (void)addByte:(SCByte)value;
232 - (void)addUByte:(SCUByte)value;
233 - (void)addShort:(SCShort)value;
234 - (void)addUShort:(SCUShort)value;
235 - (void)addInteger:(SCInteger)value;
236 - (void)addUInteger:(SCUInteger)value;
237 - (void)addLong:(SCLong)value;
238 - (void)addULong:(SCULong)value;
239 - (void)addChar:(char)value;
240 - (void)addUnichar:(unichar)value;
241 - (void)addCharString:(const char *)string;
242 - (void)addBool:(BOOL)value;
243 - (void)addFloat:(SCFloat)value;
244 - (void)addDouble:(SCDouble)value;
245 - (void)addCollection:(id)collection;
246 
247 #pragma mark -
248 #pragma mark Удаление объектов
249 - (void)removeAllObjects;
250 - (void)removeObjectsWithClass:(Class)oclass;
251 - (void)removeObjectsWithClassName:(NSString *)name;
252 - (void)removeCollection:(id)collection;
253 - (void)removeObject:(id)object;
254 - (void)removeByte:(SCByte)value;
255 - (void)removeUByte:(SCUByte)value;
256 - (void)removeShort:(SCShort)value;
257 - (void)removeUShort:(SCUShort)value;
258 - (void)removeInteger:(SCInteger)value;
259 - (void)removeUInteger:(SCUInteger)value;
260 - (void)removeLong:(SCLong)value;
261 - (void)removeULong:(SCULong)value;
262 - (void)removeChar:(char)value;
263 - (void)removeUnichar:(unichar)value;
264 - (void)removeCharString:(const char *)string;
265 - (void)removeBool:(BOOL)value;
266 - (void)removeFloat:(SCFloat)value;
267 - (void)removeDouble:(SCDouble)value;
268 - (void)removeObjects:(id)object, ... NS_REQUIRES_NIL_TERMINATION;
269 
270 #pragma mark -
271 #pragma mark Поиск объектов
272 - (BOOL)containsObject:(id)object;
273 - (BOOL)containsByte:(SCByte)value;
274 - (BOOL)containsUByte:(SCUByte)value;
275 - (BOOL)containsShort:(SCShort)value;
276 - (BOOL)containsUShort:(SCUShort)value;
277 - (BOOL)containsInteger:(SCInteger)value;
278 - (BOOL)containsUInteger:(SCUInteger)value;
279 - (BOOL)containsLong:(SCLong)value;
280 - (BOOL)containsULong:(SCULong)value;
281 - (BOOL)containsChar:(char)value;
282 - (BOOL)containsUnichar:(unichar)value;
283 - (BOOL)containsCharString:(const char *)string;
284 - (BOOL)containsBool:(BOOL)value;
285 - (BOOL)containsFloat:(SCFloat)value;
286 - (BOOL)containsDouble:(SCDouble)value;
287 - (BOOL)containsObjects:(id)object, ... NS_REQUIRES_NIL_TERMINATION;
288 - (BOOL)containsCollection:(id)collection;
289 - (BOOL)containsAnyObject:(id)object, ... NS_REQUIRES_NIL_TERMINATION;
290 - (BOOL)containsAnyObjectFromCollection:(id)collection;
291 
292 #pragma mark -
293 #pragma mark Определение типов коллекций
294 + (BOOL)isCollectionClass:(NSString *)name;
295 + (BOOL)isLibraryCollectionClass:(NSString *)name;
296 + (BOOL)isFoundationCollectionClass:(NSString *)name;
297 + (BOOL)isArrayClass:(NSString *)name;
298 + (BOOL)isLibraryArrayClass:(NSString *)name;
299 + (BOOL)isFoundationArrayClass:(NSString *)name;
300 + (BOOL)isSetClass:(NSString *)name;
301 + (BOOL)isLibrarySetClass:(NSString *)name;
302 + (BOOL)isFoundationSetClass:(NSString *)name;
303 + (BOOL)isOrderedSetClass:(NSString *)name;
304 + (BOOL)isLibraryOrderedSetClass:(NSString *)name;
305 + (BOOL)isFoundationOrderedSetClass:(NSString *)name;
306 + (BOOL)isDictionaryClass:(NSString *)name;
307 + (BOOL)isLibraryDictionaryClass:(NSString *)name;
308 + (BOOL)isFoundationDictionaryClass:(NSString *)name;
309 + (BOOL)isStackClass:(NSString *)name;
310 + (BOOL)isQueueClass:(NSString *)name;
311 + (BOOL)isListClass:(NSString *)name;
312 + (BOOL)isSortableClass:(NSString *)name;
313 
314 + (BOOL)isCollection:(id)object;
315 + (BOOL)isLibraryCollection:(id)object;
316 + (BOOL)isFoundationCollection:(id)object;
317 + (BOOL)isArray:(id)object;
318 + (BOOL)isLibraryArray:(id)object;
319 + (BOOL)isFoundationArray:(id)object;
320 + (BOOL)isSet:(id)object;
321 + (BOOL)isLibrarySet:(id)object;
322 + (BOOL)isFoundationSet:(id)object;
323 + (BOOL)isOrderedSet:(id)object;
324 + (BOOL)isLibraryOrderedSet:(id)object;
325 + (BOOL)isFoundationOrderedSet:(id)object;
326 + (BOOL)isDictionary:(id)object;
327 + (BOOL)isLibraryDictionary:(id)object;
328 + (BOOL)isFoundationDictionary:(id)object;
329 + (BOOL)isStack:(id)object;
330 + (BOOL)isQueue:(id)object;
331 + (BOOL)isList:(id)object;
332 + (BOOL)isSortable:(id)object;
333 
334 - (BOOL)isCollection;
335 - (BOOL)isLibraryCollection;
336 - (BOOL)isFoundationCollection;
337 - (BOOL)isArray;
338 - (BOOL)isLibraryArray;
339 - (BOOL)isFoundationArray;
340 - (BOOL)isSet;
341 - (BOOL)isLibrarySet;
342 - (BOOL)isFoundationSet;
343 - (BOOL)isOrderedSet;
344 - (BOOL)isLibraryOrderedSet;
345 - (BOOL)isFoundationOrderedSet;
346 - (BOOL)isDictionary;
347 - (BOOL)isLibraryDictionary;
348 - (BOOL)isFoundationDictionary;
349 - (BOOL)isStack;
350 - (BOOL)isQueue;
351 - (BOOL)isList;
352 - (BOOL)isSortable;
353 
354 @end
Unordered set class.
Definition: SCSet.h:63
NSEnumerator * objectEnumerator
Definition: SCCollection.h:165
uint64_t SCULong
Definition: SCTypes.h:78
int16_t SCShort
Definition: SCTypes.h:42
int64_t SCLong
Definition: SCTypes.h:54
Class for support the bidirectional lists of objects.
Definition: SCBidirectionalList.h:75
int32_t SCInteger
Definition: SCTypes.h:48
Unidirectional list class.
Definition: SCUnidirectionalList.h:74
Mutable collections protocol.
Definition: SCMutableCollection.h:38
uint32_t SCUInteger
Definition: SCTypes.h:72
int8_t SCByte
Definition: SCTypes.h:36
id< SCCollectionDelegate > delegate
Definition: SCCollection.h:122
BOOL readOnly
Definition: SCCollection.h:116
Ordered set class.
Definition: SCOrderedSet.h:74
uint16_t SCUShort
Definition: SCTypes.h:66
Parent class of all library classes.
Definition: SCObject.h:57
uint8_t SCUByte
Definition: SCTypes.h:60
SCULong count
Definition: SCCollection.h:128
NSString * typeName
Definition: SCCollection.h:140
float_t SCFloat
Definition: SCTypes.h:84
Collections events handling class.
Definition: SCCollectionDelegate.h:46
Abstract collections class.
Definition: SCCollection.h:94
Stack of objects class.
Definition: SCStack.h:69
Queue of objects class.
Definition: SCQueue.h:74
BOOL empty
Definition: SCCollection.h:134
NSString * description
Definition: SCCollection.h:146
NSString * name
Definition: SCCollection.h:110
NSEnumerator * reverseObjectEnumerator
Definition: SCCollection.h:171
Dictionary class.
Definition: SCDictionary.h:75
Array class.
Definition: SCArray.h:77
double_t SCDouble
Definition: SCTypes.h:90