Samond Classes Library 1.2.6-STABLE build 219
SCList.h
Go to the documentation of this file.
1 //
2 // SCList.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 SCListClass @"SCList"
39 
40 
73 @interface SCList : SCCollection {
74  NSMutableArray *_list; // Internal data storage
75  SCIndex _currentObject; // Index of the current object
76 }
77 
93 @property (nonatomic, readonly, assign) id currentObject;
94 
99 @property (nonatomic, readonly, assign) id firstObject;
100 
103 #pragma mark -
104 #pragma mark Creating Lists
105 + (instancetype)listWithCoder:(NSCoder *)coder;
106 + (instancetype)listWithContentsOfSerializedFile:(NSString *)path;
107 + (instancetype)listWithDataDictionary:(NSDictionary *)dictionary;
108 + (instancetype)listWithDataDictionaryFromFile:(NSString *)path;
109 + (instancetype)listWithStream:(SCStream *)stream;
110 + (instancetype)listWithFileStream:(NSString *)path;
111 + (instancetype)listWithData:(NSData *)data;
112 + (instancetype)listWithContentsOfFile:(NSString *)path;
113 + (instancetype)listWithContentsOfURL:(NSURL *)url;
114 + (instancetype)listWithContentsOfURLString:(NSString *)urlString;
115 
116 + (instancetype)listWithName:(NSString *)name;
117 + (instancetype)listWithObject:(id<SCCollectioning>)object;
118 + (instancetype)listWithObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
119 + (instancetype)listWithCollection:(id<SCCollection>)collection;
120 + (instancetype)listWithArray:(SCArray *)array;
121 + (instancetype)listWithList:(SCList *)list;
122 + (instancetype)list;
123 
124 #pragma mark -
125 #pragma mark Initializing Lists
126 - (instancetype)initWithName:(NSString *)name;
127 - (instancetype)initWithObject:(id<SCCollectioning>)object;
128 - (instancetype)initWithObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
129 - (instancetype)initWithCollection:(id<SCCollection>)collection;
130 - (instancetype)initWithArray:(SCArray *)array;
131 - (instancetype)initWithList:(SCList *)list;
132 - (instancetype)init;
133 
134 #pragma mark -
135 #pragma mark Copying Lists
136 - (void)setList:(SCList *)list;
137 
138 #pragma mark -
139 #pragma mark Comparing Lists
140 - (BOOL)isEqualToList:(SCList *)list;
141 
142 #pragma mark -
143 #pragma mark Deriving New Lists
144 - (instancetype)listByAddingObject:(id<SCCollectioning>)object;
145 - (instancetype)listByAddingObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
146 - (instancetype)listByAddingCollection:(id<SCCollection>)collection;
147 - (instancetype)listByAddingObjectsFromArray:(SCArray *)array;
148 - (instancetype)listByAddingArray:(SCArray *)array;
149 - (instancetype)listByAddingObjectsFromList:(SCList *)list;
150 - (instancetype)listByAddingList:(SCList *)list;
151 
152 #pragma mark -
153 #pragma mark List Control
154 - (id)nextObject;
155 
156 #pragma mark -
157 #pragma mark Adding Objects
158 - (void)insertCurrentObject:(id<SCCollectioning>)object;
159 - (void)insertCurrentObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
160 - (void)insertCurrentCollection:(id<SCCollection>)collection;
161 
162 - (void)insertFirstObject:(id<SCCollectioning>)object;
163 - (void)insertFirstObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
164 - (void)insertFirstCollection:(id<SCCollection>)collection;
165 
166 - (void)addObjectsFromArray:(SCArray *)array;
167 - (void)addArray:(SCArray *)array;
168 - (void)addObjectsFromList:(SCList *)list;
169 - (void)addList:(SCList *)list;
170 
171 #pragma mark -
172 #pragma mark Removing Objects
173 - (void)removeCurrentObject;
174 - (void)removeFirstObject;
175 
176 #pragma mark -
177 #pragma mark Replacing Objects
178 - (void)replaceCurrentObjectWithObject:(id<SCCollectioning>)object;
179 - (void)replaceFirstObjectWithObject:(id<SCCollectioning>)object;
180 
181 #pragma mark -
182 #pragma mark Copying Objects
183 - (void)duplicateCurrentObject;
184 - (void)duplicateFirstObject;
185 
186 @end
Caregory NSArray(SCArray) header file.
Collections communications protocol.
Definition: SCCollectioning.h:79
Parent class of the object list classes.
Definition: SCList.h:73
Category NSDictionary(SCDictionary) header file.
Abstract collections class.
Definition: SCCollection.h:98
Class SCCollection header file.
Array class.
Definition: SCArray.h:84
NSUInteger SCIndex
Definition: SCCollectionProtocols.h:53
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:224