Samond Classes Library 1.2.6-STABLE build 219
SCStrings.h
Go to the documentation of this file.
1 //
2 // SCStrings.h
3 // scl
4 //
5 // Created by Viacheslav Smolensky on 05.02.13.
6 // Copyright (c) 2007 - 2018 by Samond Development Corporation. All rights reserved.
7 //
8 
22 #import <Foundation/Foundation.h>
23 #import <scl/SCArray.h>
24 #import <scl/SCObject.h>
25 #import <scl/SCTextDelegate.h>
26 
27 #pragma mark -
28 #pragma mark Class Constants
29 
38 #define SCStringsClass @"SCStrings"
39 
40 
74 @interface SCStrings : SCObject <NSFastEnumeration> {
75  SCArray *_strings; // Internal data storage
76  BOOL _modified; // Modified flag
77  BOOL _caseInsensitive; // Case insensitive flag
78  id<SCTextDelegate> _delegate; // Delegate object
79 }
80 
81 #pragma mark -
82 #pragma mark Instance Properties
83 
92 @property (nonatomic, readwrite, retain) NSString *name;
93 
98 @property (nonatomic, readonly, assign) SCIndex count;
99 
104 @property (nonatomic, readwrite, assign) BOOL readOnly;
105 
110 @property (nonatomic, readonly, assign) BOOL empty;
111 
116 @property (nonatomic, readonly, assign) BOOL modified;
117 
122 @property (nonatomic, readwrite, assign) BOOL caseInsensitive;
123 
128 @property (nonatomic, readwrite, retain) id<SCTextDelegate> delegate;
129 
151 @property (nonatomic, readonly, assign) NSEnumerator *stringEnumerator;
152 
157 @property (nonatomic, readonly, assign) NSEnumerator *reverseStringEnumerator;
158 
168 @property (nonatomic, readonly, assign) SCArray *array;
169 
174 @property (nonatomic, readonly, retain) NSArray *foundationArray;
175 
189 @property (nonatomic, readonly, assign) SCStrings *ascendingSortedStrings;
190 
195 @property (nonatomic, readonly, assign) SCStrings *descendingSortedStrings;
196 
204 @property (nonatomic, readonly, assign) SCStrings *sortedStrings;
205 
223 @property (nonatomic, readonly, assign) SCStrings *reversedStrings;
224 
234 @property (nonatomic, readonly, assign) NSString *firstString;
235 
240 @property (nonatomic, readonly, assign) NSString *lastString;
241 
251 @property (nonatomic, readonly, assign) SCIndex indexOfLastString;
252 
255 #pragma mark -
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;
267 
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;
274 
275 #pragma mark -
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;
283 
284 #pragma mark -
285 #pragma mark Copying Strings Lists
286 - (void)setStrings:(SCStrings *)strings;
287 - (void)setCollection:(id<SCCollection>)collection;
288 - (void)setString:(NSString *)string;
289 
290 #pragma mark -
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;
296 
297 #pragma mark -
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;
304 
305 #pragma mark -
306 #pragma mark Strings Enumerators
307 - (void)enumerateWithDelegate:(id<SCTextDelegate>)delegate;
308 - (void)enumerate;
309 - (void)reverseEnumerateWithDelegate:(id<SCTextDelegate>)delegate;
310 - (void)reverseEnumerate;
311 - (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id *)buffer count:(NSUInteger)count;
312 
313 #pragma mark -
314 #pragma mark Sorting Strings Lists
315 - (void)sortAscendingWithSorter:(id<SCSorter>)sorter;
316 - (void)sortDescendingWithSorter:(id<SCSorter>)sorter;
317 - (void)sortWithSorter:(id<SCSorter>)sorter;
318 - (void)sortAscending;
319 - (void)sortDescending;
320 - (void)sort;
321 - (SCStrings *)ascendingSortedStringsWithSorter:(id<SCSorter>)sorter;
322 - (SCStrings *)descendingSortedStringsWithSorter:(id<SCSorter>)sorter;
323 - (SCStrings *)sortedStringsWithSorter:(id<SCSorter>)sorter;
324 
325 #pragma mark -
326 #pragma mark Adding Strings
327 - (void)addString:(NSString *)string;
328 - (void)addCollection:(id<SCCollection>)collection;
329 - (void)addStrings:(SCStrings *)strings;
330 - (void)addLine;
331 - (void)addStringsFromArray:(SCArray *)array;
332 - (void)addArray:(SCArray *)array;
333 
334 - (void)insertString:(NSString *)string atIndex:(SCIndex)index;
335 - (void)insertStrings:(SCStrings *)strings atIndex:(SCIndex)index;
336 - (void)insertCollection:(id<SCCollection>)collection atIndex:(SCIndex)index;
337 - (void)insertStrings:(SCStrings *)strings atIndexes:(NSIndexSet *)indexes;
338 - (void)insertCollection:(id<SCCollection>)collection atIndexes:(NSIndexSet *)indexes;
339 - (void)insertLineAtIndex:(SCIndex)index;
340 
341 #pragma mark -
342 #pragma mark Removing Strings
343 - (void)removeAllStrings;
344 - (void)removeFirstString;
345 - (void)removeLastString;
346 - (void)removeStringAtIndex:(SCIndex)index;
347 - (void)removeStringsAtIndexes:(NSIndexSet *)indexes;
348 - (void)removeString:(NSString *)string;
349 - (void)removeStrings:(SCStrings *)strings;
350 - (void)removeCollection:(id<SCCollection>)collection;
351 - (void)removeStringsWithSubstring:(NSString *)substring;
352 - (void)removeStringsNotAtIndexes:(NSIndexSet *)indexes;
353 - (void)removeStringsNotEqualTo:(NSString *)string;
354 - (void)removeStringsNotInStrings:(SCStrings *)strings;
355 - (void)removeStringsNotInCollection:(id<SCCollection>)collection;
356 - (void)removeStringsWithoutSubstring:(NSString *)substring;
357 - (void)removeDuplicatedStrings;
358 
359 #pragma mark -
360 #pragma mark Replacing Strings
361 - (void)replaceStringAtIndex:(SCIndex)index withString:(NSString *)string;
362 - (void)replaceStringsAtIndexes:(NSIndexSet *)indexes withStrings:(SCStrings *)strings;
363 - (void)replaceStringsAtIndexes:(NSIndexSet *)indexes withCollection:(id<SCCollection>)collection;
364 - (void)replaceString:(NSString *)string withString:(NSString *)newString;
365 - (void)setObject:(NSString *)object atIndexedSubscript:(SCIndex)index;
366 
367 #pragma mark -
368 #pragma mark Copying and Moving Strings
369 - (void)exchangeStringAtIndex:(SCIndex)index withStringAtIndex:(SCIndex)destination;
370 - (void)duplicateStringAtIndex:(SCIndex)index;
371 - (void)duplicateAllStrings;
372 - (void)duplicate;
373 - (void)copyStringAtIndex:(SCIndex)index toIndex:(SCIndex)destination;
374 - (void)moveStringAtIndex:(SCIndex)index toIndex:(SCIndex)destination;
375 - (void)forwardMoveStringAtIndex:(SCIndex)index steps:(SCIndex)steps;
376 - (void)forwardMoveStringAtIndex:(SCIndex)index;
377 - (void)backwardMoveStringAtIndex:(SCIndex)index steps:(SCIndex)steps;
378 - (void)backwardMoveStringAtIndex:(SCIndex)index;
379 - (void)moveToFirstPositionStringAtIndex:(SCIndex)index;
380 - (void)moveToLastPositionStringAtIndex:(SCIndex)index;
381 - (void)reverse;
382 
383 #pragma mark -
384 #pragma mark Querying a Strings List
385 - (NSString *)stringAtIndex:(SCIndex)index;
386 - (SCStrings *)stringsAtIndexes:(NSIndexSet *)indexes;
387 - (id)objectAtIndexedSubscript:(SCIndex)index;
388 
389 #pragma mark -
390 #pragma mark Finding Strings in a Strings List
391 - (BOOL)containsString:(NSString *)string;
392 - (BOOL)containsStrings:(SCStrings *)strings;
393 - (BOOL)containsCollection:(id<SCCollection>)collection;
394 - (BOOL)containsAnyString:(SCStrings *)strings;
395 - (BOOL)containsAnyStringFromCollection:(id<SCCollection>)collection;
396 - (BOOL)containsSubstring:(NSString *)substring;
397 - (BOOL)containsSubstrings:(SCStrings *)substrings;
398 - (BOOL)containsSubstringsFromCollection:(id<SCCollection>)collection;
399 - (BOOL)containsAnySubstring:(SCStrings *)substrings;
400 - (BOOL)containsAnySubstringFromCollection:(id<SCCollection>)collection;
401 - (BOOL)containsDuplicatedStrings;
402 
403 - (SCIndex)indexOfString:(NSString *)string;
404 - (SCIndex)indexOfSubstring:(NSString *)substring;
405 
406 - (SCStrings *)stringsWithSubstring:(NSString *)substring;
407 - (SCStrings *)stringsWithSubstrings:(SCStrings *)substrings;
408 - (SCStrings *)stringsWithSubstringsFromCollection:(id<SCCollection>)collection;
409 - (SCStrings *)stringsWithAnySubstring:(SCStrings *)substrings;
410 - (SCStrings *)stringsWithAnySubstringFromCollection:(id<SCCollection>)collection;
411 - (SCStrings *)stringsWithoutSubstring:(NSString *)substring;
412 - (SCStrings *)stringsWithoutSubstrings:(SCStrings *)substrings;
413 - (SCStrings *)stringsWithoutSubstringsFromCollection:(id<SCCollection>)collection;
414 
415 - (SCULong)countOfString:(NSString *)string;
416 - (SCULong)countOfSubstring:(NSString *)substring;
417 - (SCULong)countOfStringsWithSubstring:(NSString *)substring;
418 
419 @end
uint64_t SCULong
Definition: SCTypes.h:94
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:224