Index: icu46/source/common/schriter.cpp |
=================================================================== |
--- icu46/source/common/schriter.cpp (revision 0) |
+++ icu46/source/common/schriter.cpp (revision 0) |
@@ -0,0 +1,117 @@ |
+/* |
+****************************************************************************** |
+* Copyright (C) 1998-2010, International Business Machines Corporation and |
+* others. All Rights Reserved. |
+****************************************************************************** |
+* |
+* File schriter.cpp |
+* |
+* Modification History: |
+* |
+* Date Name Description |
+* 05/05/99 stephen Cleaned up. |
+****************************************************************************** |
+*/ |
+ |
+#include <typeinfo> // for 'typeid' to work |
+ |
+#include "unicode/chariter.h" |
+#include "unicode/schriter.h" |
+ |
+U_NAMESPACE_BEGIN |
+ |
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(StringCharacterIterator) |
+ |
+StringCharacterIterator::StringCharacterIterator() |
+ : UCharCharacterIterator(), |
+ text() |
+{ |
+ // NEVER DEFAULT CONSTRUCT! |
+} |
+ |
+StringCharacterIterator::StringCharacterIterator(const UnicodeString& textStr) |
+ : UCharCharacterIterator(textStr.getBuffer(), textStr.length()), |
+ text(textStr) |
+{ |
+ // we had set the input parameter's array, now we need to set our copy's array |
+ UCharCharacterIterator::text = this->text.getBuffer(); |
+} |
+ |
+StringCharacterIterator::StringCharacterIterator(const UnicodeString& textStr, |
+ int32_t textPos) |
+ : UCharCharacterIterator(textStr.getBuffer(), textStr.length(), textPos), |
+ text(textStr) |
+{ |
+ // we had set the input parameter's array, now we need to set our copy's array |
+ UCharCharacterIterator::text = this->text.getBuffer(); |
+} |
+ |
+StringCharacterIterator::StringCharacterIterator(const UnicodeString& textStr, |
+ int32_t textBegin, |
+ int32_t textEnd, |
+ int32_t textPos) |
+ : UCharCharacterIterator(textStr.getBuffer(), textStr.length(), textBegin, textEnd, textPos), |
+ text(textStr) |
+{ |
+ // we had set the input parameter's array, now we need to set our copy's array |
+ UCharCharacterIterator::text = this->text.getBuffer(); |
+} |
+ |
+StringCharacterIterator::StringCharacterIterator(const StringCharacterIterator& that) |
+ : UCharCharacterIterator(that), |
+ text(that.text) |
+{ |
+ // we had set the input parameter's array, now we need to set our copy's array |
+ UCharCharacterIterator::text = this->text.getBuffer(); |
+} |
+ |
+StringCharacterIterator::~StringCharacterIterator() { |
+} |
+ |
+StringCharacterIterator& |
+StringCharacterIterator::operator=(const StringCharacterIterator& that) { |
+ UCharCharacterIterator::operator=(that); |
+ text = that.text; |
+ // we had set the input parameter's array, now we need to set our copy's array |
+ UCharCharacterIterator::text = this->text.getBuffer(); |
+ return *this; |
+} |
+ |
+UBool |
+StringCharacterIterator::operator==(const ForwardCharacterIterator& that) const { |
+ if (this == &that) { |
+ return TRUE; |
+ } |
+ |
+ // do not call UCharCharacterIterator::operator==() |
+ // because that checks for array pointer equality |
+ // while we compare UnicodeString objects |
+ |
+ if (typeid(*this) != typeid(that)) { |
+ return FALSE; |
+ } |
+ |
+ StringCharacterIterator& realThat = (StringCharacterIterator&)that; |
+ |
+ return text == realThat.text |
+ && pos == realThat.pos |
+ && begin == realThat.begin |
+ && end == realThat.end; |
+} |
+ |
+CharacterIterator* |
+StringCharacterIterator::clone() const { |
+ return new StringCharacterIterator(*this); |
+} |
+ |
+void |
+StringCharacterIterator::setText(const UnicodeString& newText) { |
+ text = newText; |
+ UCharCharacterIterator::setText(text.getBuffer(), text.length()); |
+} |
+ |
+void |
+StringCharacterIterator::getText(UnicodeString& result) { |
+ result = text; |
+} |
+U_NAMESPACE_END |
Property changes on: icu46/source/common/schriter.cpp |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |