/src/icu/source/common/schriter.cpp
Line | Count | Source (jump to first uncovered line) |
1 | | // © 2016 and later: Unicode, Inc. and others. |
2 | | // License & terms of use: http://www.unicode.org/copyright.html |
3 | | /* |
4 | | ****************************************************************************** |
5 | | * Copyright (C) 1998-2012, International Business Machines Corporation and |
6 | | * others. All Rights Reserved. |
7 | | ****************************************************************************** |
8 | | * |
9 | | * File schriter.cpp |
10 | | * |
11 | | * Modification History: |
12 | | * |
13 | | * Date Name Description |
14 | | * 05/05/99 stephen Cleaned up. |
15 | | ****************************************************************************** |
16 | | */ |
17 | | |
18 | | #include "utypeinfo.h" // for 'typeid' to work |
19 | | |
20 | | #include "unicode/chariter.h" |
21 | | #include "unicode/schriter.h" |
22 | | |
23 | | U_NAMESPACE_BEGIN |
24 | | |
25 | | UOBJECT_DEFINE_RTTI_IMPLEMENTATION(StringCharacterIterator) |
26 | | |
27 | | StringCharacterIterator::StringCharacterIterator() |
28 | 0 | : UCharCharacterIterator(), |
29 | 0 | text() |
30 | 0 | { |
31 | | // NEVER DEFAULT CONSTRUCT! |
32 | 0 | } |
33 | | |
34 | | StringCharacterIterator::StringCharacterIterator(const UnicodeString& textStr) |
35 | 0 | : UCharCharacterIterator(textStr.getBuffer(), textStr.length()), |
36 | 0 | text(textStr) |
37 | 0 | { |
38 | | // we had set the input parameter's array, now we need to set our copy's array |
39 | 0 | UCharCharacterIterator::text = this->text.getBuffer(); |
40 | 0 | } |
41 | | |
42 | | StringCharacterIterator::StringCharacterIterator(const UnicodeString& textStr, |
43 | | int32_t textPos) |
44 | 0 | : UCharCharacterIterator(textStr.getBuffer(), textStr.length(), textPos), |
45 | 0 | text(textStr) |
46 | 0 | { |
47 | | // we had set the input parameter's array, now we need to set our copy's array |
48 | 0 | UCharCharacterIterator::text = this->text.getBuffer(); |
49 | 0 | } |
50 | | |
51 | | StringCharacterIterator::StringCharacterIterator(const UnicodeString& textStr, |
52 | | int32_t textBegin, |
53 | | int32_t textEnd, |
54 | | int32_t textPos) |
55 | 0 | : UCharCharacterIterator(textStr.getBuffer(), textStr.length(), textBegin, textEnd, textPos), |
56 | 0 | text(textStr) |
57 | 0 | { |
58 | | // we had set the input parameter's array, now we need to set our copy's array |
59 | 0 | UCharCharacterIterator::text = this->text.getBuffer(); |
60 | 0 | } |
61 | | |
62 | | StringCharacterIterator::StringCharacterIterator(const StringCharacterIterator& that) |
63 | 0 | : UCharCharacterIterator(that), |
64 | 0 | text(that.text) |
65 | 0 | { |
66 | | // we had set the input parameter's array, now we need to set our copy's array |
67 | 0 | UCharCharacterIterator::text = this->text.getBuffer(); |
68 | 0 | } |
69 | | |
70 | 0 | StringCharacterIterator::~StringCharacterIterator() { |
71 | 0 | } |
72 | | |
73 | | StringCharacterIterator& |
74 | 0 | StringCharacterIterator::operator=(const StringCharacterIterator& that) { |
75 | 0 | UCharCharacterIterator::operator=(that); |
76 | 0 | text = that.text; |
77 | | // we had set the input parameter's array, now we need to set our copy's array |
78 | 0 | UCharCharacterIterator::text = this->text.getBuffer(); |
79 | 0 | return *this; |
80 | 0 | } |
81 | | |
82 | | bool |
83 | 0 | StringCharacterIterator::operator==(const ForwardCharacterIterator& that) const { |
84 | 0 | if (this == &that) { |
85 | 0 | return TRUE; |
86 | 0 | } |
87 | | |
88 | | // do not call UCharCharacterIterator::operator==() |
89 | | // because that checks for array pointer equality |
90 | | // while we compare UnicodeString objects |
91 | | |
92 | 0 | if (typeid(*this) != typeid(that)) { |
93 | 0 | return FALSE; |
94 | 0 | } |
95 | | |
96 | 0 | StringCharacterIterator& realThat = (StringCharacterIterator&)that; |
97 | |
|
98 | 0 | return text == realThat.text |
99 | 0 | && pos == realThat.pos |
100 | 0 | && begin == realThat.begin |
101 | 0 | && end == realThat.end; |
102 | 0 | } |
103 | | |
104 | | StringCharacterIterator* |
105 | 0 | StringCharacterIterator::clone() const { |
106 | 0 | return new StringCharacterIterator(*this); |
107 | 0 | } |
108 | | |
109 | | void |
110 | 0 | StringCharacterIterator::setText(const UnicodeString& newText) { |
111 | 0 | text = newText; |
112 | 0 | UCharCharacterIterator::setText(text.getBuffer(), text.length()); |
113 | 0 | } |
114 | | |
115 | | void |
116 | 0 | StringCharacterIterator::getText(UnicodeString& result) { |
117 | 0 | result = text; |
118 | 0 | } |
119 | | U_NAMESPACE_END |