22 #import <Foundation/Foundation.h>
28 #pragma mark Class Constants
38 #define SCStringsClass @"SCStrings"
77 BOOL fCaseInsensitive;
78 id<SCTextDelegate> fDelegate;
82 #pragma mark Instance Properties
92 @property (nonatomic, readwrite, retain) NSString *name;
98 @property (nonatomic, readonly, assign)
SCIndex count;
104 @property (nonatomic, readwrite, assign) BOOL readOnly;
110 @property (nonatomic, readonly, assign) BOOL empty;
116 @property (nonatomic, readonly, assign) BOOL modified;
122 @property (nonatomic, readwrite, assign) BOOL caseInsensitive;
128 @property (nonatomic, readwrite, retain) id<SCTextDelegate> delegate;
151 @property (nonatomic, readonly, assign) NSEnumerator *stringEnumerator;
157 @property (nonatomic, readonly, assign) NSEnumerator *reverseStringEnumerator;
168 @property (nonatomic, readonly, assign)
SCArray *array;
174 @property (nonatomic, readonly, retain) NSArray *foundationArray;
189 @property (nonatomic, readonly, assign)
SCStrings *ascendingSortedStrings;
195 @property (nonatomic, readonly, assign)
SCStrings *descendingSortedStrings;
204 @property (nonatomic, readonly, assign)
SCStrings *sortedStrings;
223 @property (nonatomic, readonly, assign)
SCStrings *reversedStrings;
234 @property (nonatomic, readonly, assign) NSString *firstString;
240 @property (nonatomic, readonly, assign) NSString *lastString;
251 @property (nonatomic, readonly, assign)
SCIndex indexOfLastString;
256 #pragma mark Creating Strings Lists
257 + (instancetype)stringsWithCoder:(NSCoder *)coder;
258 + (instancetype)stringsWithContentsOfSerializedFile:(NSString *)path;
259 + (instancetype)stringsWithDataDictionary:(NSDictionary *)dictionary;
260 + (instancetype)stringsWithDataDictionaryFromFile:(NSString *)path;
261 + (instancetype)stringsWithStream:(
SCStream *)stream;
262 + (instancetype)stringsWithFileStream:(NSString *)path;
263 + (instancetype)stringsWithData:(NSData *)data;
264 + (instancetype)stringsWithContentsOfFile:(NSString *)path;
265 + (instancetype)stringsWithContentsOfURL:(NSURL *)url;
266 + (instancetype)stringsWithContentsOfURLString:(NSString *)urlString;
268 + (instancetype)stringsWithName:(NSString *)name;
269 + (instancetype)stringsWithString:(NSString *)string;
270 + (instancetype)stringsWithCollection:(
id<
SCCollection>)collection;
271 + (instancetype)stringsWithArray:(
SCArray *)array;
272 + (instancetype)stringsWithStrings:(
SCStrings *)strings;
273 + (instancetype)strings;
276 #pragma mark Initializing Strings Lists
277 - (instancetype)initWithName:(NSString *)name;
278 - (instancetype)initWithString:(NSString *)string;
279 - (instancetype)initWithCollection:(
id<
SCCollection>)collection;
280 - (instancetype)initWithArray:(
SCArray *)array;
281 - (instancetype)initWithStrings:(
SCStrings *)strings;
282 - (instancetype)init;
285 #pragma mark Copying Strings Lists
288 - (void)setString:(NSString *)string;
291 #pragma mark Comparing Strings Lists
292 - (BOOL)isEqualToStrings:(
SCStrings *)strings;
293 - (BOOL)isEqualToCollection:(
id<
SCCollection>)collection;
294 - (BOOL)isEqualTo:(
id)object;
295 - (BOOL)isEqual:(
id)object;
298 #pragma mark Deriving New Strings Lists
299 - (instancetype)stringsByAddingString:(NSString *)string;
300 - (instancetype)stringsByAddingCollection:(
id<
SCCollection>)collection;
301 - (instancetype)stringsByAddingStrings:(
SCStrings *)strings;
302 - (instancetype)stringsByAddingStringsFromArray:(
SCArray *)array;
303 - (instancetype)stringsByAddingArray:(
SCArray *)array;
306 #pragma mark Strings Enumerators
309 - (void)reverseEnumerateWithDelegate:(
id<
SCTextDelegate>)delegate;
310 - (void)reverseEnumerate;
313 #pragma mark Sorting Strings Lists
314 - (void)sortAscendingWithSorter:(
id<
SCSorter>)sorter;
315 - (void)sortDescendingWithSorter:(
id<
SCSorter>)sorter;
316 - (void)sortWithSorter:(
id<
SCSorter>)sorter;
317 - (void)sortAscending;
318 - (void)sortDescending;
325 #pragma mark Adding Strings
326 - (void)addString:(NSString *)string;
330 - (void)addStringsFromArray:(
SCArray *)array;
331 - (void)addArray:(
SCArray *)array;
333 - (void)insertString:(NSString *)string atIndex:(
SCIndex)index;
336 - (void)insertStrings:(
SCStrings *)strings atIndexes:(NSIndexSet *)indexes;
337 - (void)insertCollection:(
id<
SCCollection>)collection atIndexes:(NSIndexSet *)indexes;
338 - (void)insertLineAtIndex:(
SCIndex)index;
341 #pragma mark Removing Strings
342 - (void)removeAllStrings;
343 - (void)removeFirstString;
344 - (void)removeLastString;
345 - (void)removeStringAtIndex:(
SCIndex)index;
346 - (void)removeStringsAtIndexes:(NSIndexSet *)indexes;
347 - (void)removeString:(NSString *)string;
348 - (void)removeStrings:(
SCStrings *)strings;
350 - (void)removeStringsWithSubstring:(NSString *)substring;
351 - (void)removeStringsNotAtIndexes:(NSIndexSet *)indexes;
352 - (void)removeStringsNotEqualTo:(NSString *)string;
353 - (void)removeStringsNotInStrings:(
SCStrings *)strings;
354 - (void)removeStringsNotInCollection:(
id<
SCCollection>)collection;
355 - (void)removeStringsWithoutSubstring:(NSString *)substring;
356 - (void)removeDuplicatedStrings;
359 #pragma mark Replacing Strings
360 - (void)replaceStringAtIndex:(
SCIndex)index withString:(NSString *)string;
361 - (void)replaceStringsAtIndexes:(NSIndexSet *)indexes withStrings:(
SCStrings *)strings;
362 - (void)replaceStringsAtIndexes:(NSIndexSet *)indexes withCollection:(
id<
SCCollection>)collection;
363 - (void)replaceString:(NSString *)string withString:(NSString *)newString;
366 #pragma mark Copying and Moving Strings
367 - (void)exchangeStringAtIndex:(
SCIndex)index withStringAtIndex:(
SCIndex)destination;
368 - (void)duplicateStringAtIndex:(
SCIndex)index;
369 - (void)duplicateAllStrings;
371 - (void)copyStringAtIndex:(
SCIndex)index toIndex:(
SCIndex)destination;
372 - (void)moveStringAtIndex:(
SCIndex)index toIndex:(
SCIndex)destination;
373 - (void)forwardMoveStringAtIndex:(
SCIndex)index steps:(
SCIndex)steps;
374 - (void)forwardMoveStringAtIndex:(
SCIndex)index;
375 - (void)backwardMoveStringAtIndex:(
SCIndex)index steps:(
SCIndex)steps;
376 - (void)backwardMoveStringAtIndex:(
SCIndex)index;
377 - (void)moveToFirstPositionStringAtIndex:(
SCIndex)index;
378 - (void)moveToLastPositionStringAtIndex:(
SCIndex)index;
382 #pragma mark Querying a Strings List
383 - (NSString *)stringAtIndex:(
SCIndex)index;
384 - (
SCStrings *)stringsAtIndexes:(NSIndexSet *)indexes;
387 #pragma mark Finding Strings in a Strings List
388 - (BOOL)containsString:(NSString *)string;
389 - (BOOL)containsStrings:(
SCStrings *)strings;
390 - (BOOL)containsCollection:(
id<
SCCollection>)collection;
391 - (BOOL)containsAnyString:(
SCStrings *)strings;
392 - (BOOL)containsAnyStringFromCollection:(
id<
SCCollection>)collection;
393 - (BOOL)containsSubstring:(NSString *)substring;
394 - (BOOL)containsSubstrings:(
SCStrings *)substrings;
395 - (BOOL)containsSubstringsFromCollection:(
id<
SCCollection>)collection;
396 - (BOOL)containsAnySubstring:(
SCStrings *)substrings;
397 - (BOOL)containsAnySubstringFromCollection:(
id<
SCCollection>)collection;
398 - (BOOL)containsDuplicatedStrings;
400 - (
SCIndex)indexOfString:(NSString *)string;
401 - (
SCIndex)indexOfSubstring:(NSString *)substring;
403 - (
SCStrings *)stringsWithSubstring:(NSString *)substring;
408 - (
SCStrings *)stringsWithoutSubstring:(NSString *)substring;
412 - (
SCULong)countOfString:(NSString *)string;
413 - (
SCULong)countOfSubstring:(NSString *)substring;
414 - (
SCULong)countOfStringsWithSubstring:(NSString *)substring;
uint64_t SCULong
Definition: SCTypes.h:86
Protocol and class SCTextDelegate header file.
Class SCObject header file.
Strings list class.
Definition: SCStrings.h:74
Parent class of all library classes.
Definition: SCObject.h:61
Class SCArray header file.
Abstract implementation of the protocol SCSorter.
Definition: SCSorter.h:138
Text object event handlers class.
Definition: SCTextDelegate.h:716
Abstract collections class.
Definition: SCCollection.h:98
Array class.
Definition: SCArray.h:84
NSUInteger SCIndex
Definition: SCCollectionProtocols.h:53
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:237