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