Samond Classes Library 1.2.2-RELEASE build 188
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 - 2017 by Samond Development Corporation. All rights reserved.
7 //
8 
22 #import <scl/SCObject.h>
23 #import <scl/SCArray.h>
24 #import <scl/SCTextDelegate.h>
25 
26 #pragma mark -
27 #pragma mark Class Constants
28 
37 #define SCStringsClass @"SCStrings"
38 
39 
73 @interface SCStrings : SCObject {
74  SCArray *fStrings; // Internal data storage
75  BOOL fModified; // Modified flag
76  BOOL fCaseInsensitive; // Case insensitive flag
77  id<SCTextDelegate> fDelegate; // Delegate object
78 }
79 
80 #pragma mark -
81 #pragma mark Instance Properties
82 
91 @property (nonatomic, readwrite, retain) NSString *name;
92 
97 @property (nonatomic, readonly, assign) SCIndex count;
98 
103 @property (nonatomic, readwrite, assign) BOOL readOnly;
104 
109 @property (nonatomic, readonly, assign) BOOL empty;
110 
115 @property (nonatomic, readonly, assign) BOOL modified;
116 
121 @property (nonatomic, readwrite, assign) BOOL caseInsensitive;
122 
127 @property (nonatomic, readwrite, retain) id<SCTextDelegate> delegate;
128 
148 @property (nonatomic, readonly, assign) NSEnumerator *stringEnumerator;
149 
154 @property (nonatomic, readonly, assign) NSEnumerator *reverseStringEnumerator;
155 
165 @property (nonatomic, readonly, assign) SCArray *array;
166 
171 @property (nonatomic, readonly, retain) NSArray *foundationArray;
172 
186 @property (nonatomic, readonly, assign) SCStrings *ascendingSortedStrings;
187 
192 @property (nonatomic, readonly, assign) SCStrings *descendingSortedStrings;
193 
201 @property (nonatomic, readonly, assign) SCStrings *sortedStrings;
202 
220 @property (nonatomic, readonly, assign) SCStrings *reversedStrings;
221 
231 @property (nonatomic, readonly, assign) NSString *firstString;
232 
237 @property (nonatomic, readonly, assign) NSString *lastString;
238 
248 @property (nonatomic, readonly, assign) SCIndex indexOfLastString;
249 
252 #pragma mark -
253 #pragma mark Creating Strings Lists
254 + (instancetype)stringsWithCoder:(NSCoder *)coder;
255 + (instancetype)stringsWithContentsOfSerializedFile:(NSString *)path;
256 + (instancetype)stringsWithDataDictionary:(NSDictionary *)dictionary;
257 + (instancetype)stringsWithDataDictionaryFromFile:(NSString *)path;
258 + (instancetype)stringsWithStream:(SCStream *)stream;
259 + (instancetype)stringsWithFileStream:(NSString *)path;
260 
261 + (instancetype)stringsWithName:(NSString *)name;
262 + (instancetype)stringsWithString:(NSString *)string;
263 + (instancetype)stringsWithCollection:(id<SCCollection>)collection;
264 + (instancetype)stringsWithStrings:(SCStrings *)strings;
265 + (instancetype)strings;
266 
267 #pragma mark -
268 #pragma mark Initializing Strings Lists
269 - (instancetype)initWithName:(NSString *)name;
270 - (instancetype)initWithString:(NSString *)string;
271 - (instancetype)initWithCollection:(id<SCCollection>)collection;
272 - (instancetype)initWithStrings:(SCStrings *)strings;
273 - (instancetype)init;
274 
275 #pragma mark -
276 #pragma mark Copying Strings Lists
277 - (void)setStrings:(SCStrings *)strings;
278 - (void)setCollection:(id<SCCollection>)collection;
279 - (void)setString:(NSString *)string;
280 
281 #pragma mark -
282 #pragma mark Comparing Strings Lists
283 - (BOOL)isEqualToStrings:(SCStrings *)strings;
284 - (BOOL)isEqualToCollection:(id<SCCollection>)collection;
285 - (BOOL)isEqualTo:(id)object;
286 - (BOOL)isEqual:(id)object;
287 
288 #pragma mark -
289 #pragma mark Strings Enumerators
290 - (void)enumerateWithDelegate:(id<SCTextDelegate>)delegate;
291 - (void)enumerate;
292 - (void)reverseEnumerateWithDelegate:(id<SCTextDelegate>)delegate;
293 - (void)reverseEnumerate;
294 
295 #pragma mark -
296 #pragma mark Sorting Strings Lists
297 - (void)sortAscendingWithSorter:(id<SCSorter>)sorter;
298 - (void)sortDescendingWithSorter:(id<SCSorter>)sorter;
299 - (void)sortWithSorter:(id<SCSorter>)sorter;
300 - (void)sortAscending;
301 - (void)sortDescending;
302 - (void)sort;
303 - (SCStrings *)ascendingSortedStringsWithSorter:(id<SCSorter>)sorter;
304 - (SCStrings *)descendingSortedStringsWithSorter:(id<SCSorter>)sorter;
305 - (SCStrings *)sortedStringsWithSorter:(id<SCSorter>)sorter;
306 
307 #pragma mark -
308 #pragma mark Adding Strings
309 - (void)addString:(NSString *)string;
310 - (void)addCollection:(id<SCCollection>)collection;
311 - (void)addStrings:(SCStrings *)strings;
312 - (void)addLine;
313 
314 - (void)insertString:(NSString *)string atIndex:(SCIndex)index;
315 - (void)insertStrings:(SCStrings *)strings atIndex:(SCIndex)index;
316 - (void)insertCollection:(id<SCCollection>)collection atIndex:(SCIndex)index;
317 - (void)insertStrings:(SCStrings *)strings atIndexes:(NSIndexSet *)indexes;
318 - (void)insertCollection:(id<SCCollection>)collection atIndexes:(NSIndexSet *)indexes;
319 - (void)insertLineAtIndex:(SCIndex)index;
320 
321 #pragma mark -
322 #pragma mark Removing Strings
323 - (void)removeAllStrings;
324 - (void)removeFirstString;
325 - (void)removeLastString;
326 - (void)removeStringAtIndex:(SCIndex)index;
327 - (void)removeStringsAtIndexes:(NSIndexSet *)indexes;
328 - (void)removeString:(NSString *)string;
329 - (void)removeStrings:(SCStrings *)strings;
330 - (void)removeCollection:(id<SCCollection>)collection;
331 - (void)removeStringsWithSubstring:(NSString *)substring;
332 - (void)removeStringsNotAtIndexes:(NSIndexSet *)indexes;
333 - (void)removeStringsNotEqualTo:(NSString *)string;
334 - (void)removeStringsNotInStrings:(SCStrings *)strings;
335 - (void)removeStringsNotInCollection:(id<SCCollection>)collection;
336 - (void)removeStringsWithoutSubstring:(NSString *)substring;
337 - (void)removeDuplicatedStrings;
338 
339 #pragma mark -
340 #pragma mark Replacing Strings
341 - (void)replaceStringAtIndex:(SCIndex)index withString:(NSString *)string;
342 - (void)replaceStringsAtIndexes:(NSIndexSet *)indexes withStrings:(SCStrings *)strings;
343 - (void)replaceStringsAtIndexes:(NSIndexSet *)indexes withCollection:(id<SCCollection>)collection;
344 - (void)replaceString:(NSString *)string withString:(NSString *)newString;
345 
346 #pragma mark -
347 #pragma mark Copying and Moving Strings
348 - (void)exchangeStringAtIndex:(SCIndex)index withStringAtIndex:(SCIndex)destination;
349 - (void)duplicateStringAtIndex:(SCIndex)index;
350 - (void)duplicateAllStrings;
351 - (void)duplicate;
352 - (void)copyStringAtIndex:(SCIndex)index toIndex:(SCIndex)destination;
353 - (void)moveStringAtIndex:(SCIndex)index toIndex:(SCIndex)destination;
354 - (void)forwardMoveStringAtIndex:(SCIndex)index steps:(SCIndex)steps;
355 - (void)forwardMoveStringAtIndex:(SCIndex)index;
356 - (void)backwardMoveStringAtIndex:(SCIndex)index steps:(SCIndex)steps;
357 - (void)backwardMoveStringAtIndex:(SCIndex)index;
358 - (void)moveToFirstPositionStringAtIndex:(SCIndex)index;
359 - (void)moveToLastPositionStringAtIndex:(SCIndex)index;
360 - (void)reverse;
361 
362 #pragma mark -
363 #pragma mark Querying a Strings List
364 - (NSString *)stringAtIndex:(SCIndex)index;
365 - (SCStrings *)stringsAtIndexes:(NSIndexSet *)indexes;
366 
367 #pragma mark -
368 #pragma mark Finding Strings in a Strings List
369 - (BOOL)containsString:(NSString *)string;
370 - (BOOL)containsStrings:(SCStrings *)strings;
371 - (BOOL)containsCollection:(id<SCCollection>)collection;
372 - (BOOL)containsAnyString:(SCStrings *)strings;
373 - (BOOL)containsAnyStringFromCollection:(id<SCCollection>)collection;
374 - (BOOL)containsSubstring:(NSString *)substring;
375 - (BOOL)containsSubstrings:(SCStrings *)substrings;
376 - (BOOL)containsSubstringsFromCollection:(id<SCCollection>)collection;
377 - (BOOL)containsAnySubstring:(SCStrings *)substrings;
378 - (BOOL)containsAnySubstringFromCollection:(id<SCCollection>)collection;
379 - (BOOL)containsDuplicatedStrings;
380 
381 - (SCIndex)indexOfString:(NSString *)string;
382 - (SCIndex)indexOfSubstring:(NSString *)substring;
383 
384 - (SCStrings *)stringsWithSubstring:(NSString *)substring;
385 - (SCStrings *)stringsWithSubstrings:(SCStrings *)substrings;
386 - (SCStrings *)stringsWithSubstringsFromCollection:(id<SCCollection>)collection;
387 - (SCStrings *)stringsWithAnySubstring:(SCStrings *)substrings;
388 - (SCStrings *)stringsWithAnySubstringFromCollection:(id<SCCollection>)collection;
389 - (SCStrings *)stringsWithoutSubstring:(NSString *)substring;
390 - (SCStrings *)stringsWithoutSubstrings:(SCStrings *)substrings;
391 - (SCStrings *)stringsWithoutSubstringsFromCollection:(id<SCCollection>)collection;
392 
393 - (SCULong)countOfString:(NSString *)string;
394 - (SCULong)countOfSubstring:(NSString *)substring;
395 - (SCULong)countOfStringsWithSubstring:(NSString *)substring;
396 
397 @end
uint64_t SCULong
Definition: SCTypes.h:82
Protocol and class SCTextDelegate header file.
Class SCObject header file.
Strings list class.
Definition: SCStrings.h:73
Parent class of all library classes.
Definition: SCObject.h:58
Class SCArray header file.
Abstract implementation of the protocol SCSorter.
Definition: SCSorter.h:136
Text object event handlers class.
Definition: SCTextDelegate.h:715
Abstract collections class.
Definition: SCCollection.h:101
Array class.
Definition: SCArray.h:81
NSUInteger SCIndex
Definition: SCCollectionProtocols.h:50
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:226