Access to the list of edits. More...
#include <edits.h>
Public Member Functions | |
| Iterator () | |
| Default constructor, empty iterator. | |
| Iterator (const Iterator &other) | |
| Copy constructor. | |
| Iterator & | operator= (const Iterator &other) |
| Assignment operator. | |
| UBool | next (UErrorCode &errorCode) |
| Advances the iterator to the next edit. | |
| UBool | findSourceIndex (int32_t i, UErrorCode &errorCode) |
| Moves the iterator to the edit that contains the source index. | |
| UBool | findDestinationIndex (int32_t i, UErrorCode &errorCode) |
| Moves the iterator to the edit that contains the destination index. | |
| int32_t | destinationIndexFromSourceIndex (int32_t i, UErrorCode &errorCode) |
| Computes the destination index corresponding to the given source index. | |
| int32_t | sourceIndexFromDestinationIndex (int32_t i, UErrorCode &errorCode) |
| Computes the source index corresponding to the given destination index. | |
| UBool | hasChange () const |
| Returns whether the edit currently represented by the iterator is a change edit. | |
| int32_t | oldLength () const |
| The length of the current span in the source string, which starts at sourceIndex. | |
| int32_t | newLength () const |
| The length of the current span in the destination string, which starts at destinationIndex, or in the replacement string, which starts at replacementIndex. | |
| int32_t | sourceIndex () const |
| The start index of the current span in the source string; the span has length oldLength. | |
| int32_t | replacementIndex () const |
| The start index of the current span in the replacement string; the span has length newLength. | |
| int32_t | destinationIndex () const |
| The start index of the current span in the destination string; the span has length newLength. | |
| UnicodeString & | toString (UnicodeString &appendTo) const |
| A string representation of the current edit represented by the iterator for debugging. | |
Friends | |
| class | Edits |
Access to the list of edits.
At any moment in time, an instance of this class points to a single edit: a "window" into a span of the source string and the corresponding span of the destination string. The source string span starts at sourceIndex() and runs for oldLength() chars; the destination string span starts at destinationIndex() and runs for newLength() chars.
The iterator can be moved between edits using the `next()`, `findSourceIndex(int32_t, UErrorCode &)`, and `findDestinationIndex(int32_t, UErrorCode &)` methods. Calling any of these methods mutates the iterator to make it point to the corresponding edit.
For more information, see the documentation for Edits.
Definition at line 203 of file edits.h.
| int32_t icu::final::final::destinationIndex | ( | ) | const [inline] |
| int32_t icu::final::final::destinationIndexFromSourceIndex | ( | int32_t | i, | |
| UErrorCode & | errorCode | |||
| ) |
Computes the destination index corresponding to the given source index.
If the source index is inside a change edit (not at its start), then the destination index at the end of that edit is returned, since there is no information about index mapping inside a change edit.
(This means that indexes to the start and middle of an edit, for example around a grapheme cluster, are mapped to indexes encompassing the entire edit. The alternative, mapping an interior index to the start, would map such an interval to an empty one.)
This operation will usually but not always modify this object. The iterator state after this search is undefined.
| i | source index | |
| errorCode | ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.) |
| UBool icu::final::final::findDestinationIndex | ( | int32_t | i, | |
| UErrorCode & | errorCode | |||
| ) | [inline] |
Moves the iterator to the edit that contains the destination index.
The destination index may be found in a no-change edit even if normal iteration would skip no-change edits. Normal iteration can continue from a found edit.
The iterator state before this search logically does not matter. (It may affect the performance of the search.)
The iterator state after this search is undefined if the source index is out of bounds for the source string.
| i | destination index | |
| errorCode | ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.) |
Definition at line 276 of file edits.h.
References FALSE.
| UBool icu::final::final::findSourceIndex | ( | int32_t | i, | |
| UErrorCode & | errorCode | |||
| ) | [inline] |
Moves the iterator to the edit that contains the source index.
The source index may be found in a no-change edit even if normal iteration would skip no-change edits. Normal iteration can continue from a found edit.
The iterator state before this search logically does not matter. (It may affect the performance of the search.)
The iterator state after this search is undefined if the source index is out of bounds for the source string.
| i | source index | |
| errorCode | ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.) |
Definition at line 253 of file edits.h.
References TRUE.
| UBool icu::final::final::hasChange | ( | ) | const [inline] |
Returns whether the edit currently represented by the iterator is a change edit.
| icu::final::final::Iterator | ( | const Iterator & | other | ) |
Copy constructor.
| icu::final::final::Iterator | ( | ) | [inline] |
| int32_t icu::final::final::newLength | ( | ) | const [inline] |
The length of the current span in the destination string, which starts at destinationIndex, or in the replacement string, which starts at replacementIndex.
| UBool icu::final::final::next | ( | UErrorCode & | errorCode | ) | [inline] |
Advances the iterator to the next edit.
| errorCode | ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.) |
Definition at line 232 of file edits.h.
References next().
Referenced by next().
| int32_t icu::final::final::oldLength | ( | ) | const [inline] |
The length of the current span in the source string, which starts at sourceIndex.
| Iterator& icu::final::final::operator= | ( | const Iterator & | other | ) |
Assignment operator.
| int32_t icu::final::final::replacementIndex | ( | ) | const [inline] |
The start index of the current span in the replacement string; the span has length newLength.
Well-defined only if the current edit is a change edit.
The *replacement string* is the concatenation of all substrings of the destination string corresponding to change edits.
This method is intended to be used together with operations that write only replacement characters (e.g. operations specifying the U_OMIT_UNCHANGED_TEXT option). The source string can then be modified in-place.
| int32_t icu::final::final::sourceIndex | ( | ) | const [inline] |
| int32_t icu::final::final::sourceIndexFromDestinationIndex | ( | int32_t | i, | |
| UErrorCode & | errorCode | |||
| ) |
Computes the source index corresponding to the given destination index.
If the destination index is inside a change edit (not at its start), then the source index at the end of that edit is returned, since there is no information about index mapping inside a change edit.
(This means that indexes to the start and middle of an edit, for example around a grapheme cluster, are mapped to indexes encompassing the entire edit. The alternative, mapping an interior index to the start, would map such an interval to an empty one.)
This operation will usually but not always modify this object. The iterator state after this search is undefined.
| i | destination index | |
| errorCode | ICU error code. Its input value must pass the U_SUCCESS() test, or else the function returns immediately. Check for U_FAILURE() on output or use with function chaining. (See User Guide for details.) |
| UnicodeString& icu::final::final::toString | ( | UnicodeString & | appendTo | ) | const |
A string representation of the current edit represented by the iterator for debugging.
You should not depend on the contents of the return string.
1.6.1