#include <StringImpl.h>
Inheritance diagram for Core::StringImpl:


Public Member Functions | |
| virtual Character * | at (int index) const abstract |
| virtual void | put (int index, Character *object) abstract |
| virtual int | byteSize (void) abstract |
| virtual long | size (void) const |
| virtual void | changeSize (long newSize) abstract |
| virtual bool | isEqual (StringImpl *object) abstract |
| virtual bool | isEqualToBytes (unsigned char *string) abstract |
| virtual bool | isEqualToShorts (unsigned short *object) abstract |
| virtual ByteString * | asByteString (void) |
| virtual TwoByteString * | asTwoByteString (void) |
| virtual CharacterArray * | asCharacterArray (void) |
| virtual bool | isByteString (void) const |
| virtual bool | isTwoByteString (void) const |
| virtual bool | isCharacterArray (void) const |
Protected Attributes | |
| long | tally |
These are really poor in functionality so use String instead.
Definition at line 39 of file StringImpl.h.
|
|
Reimplemented in Core::ByteString. Definition at line 46 of file StringImpl.cc. References at(), Core::Character::byteSize(), Core::Object::error(), Core::ByteString::put(), and size(). Referenced by Core::String::changeWideToFit(). 00047 {
00048 Character *ch;
00049 ByteString *newString = new ByteString(size());
00050 for (int i = 0; i < size(); i++) {
00051 ch = at(i);
00052 if (ch->byteSize() > 1) {
00053 error(new String("Can't convert String to ByteString. Characters out of range."),
00054 new String(__PRETTY_FUNCTION__));
00055 }
00056 newString->put(i, at(i));
00057 }
00058 return newString;
00059 }
|
|
|
Reimplemented in Core::CharacterArray. Definition at line 77 of file StringImpl.cc. References at(), Core::CharacterArray::put(), and size(). Referenced by Core::String::changeWideToFit(). 00078 {
00079 CharacterArray *newString = new CharacterArray(size());
00080 for (int i = 0; i < size(); i++) {
00081 newString->put(i, at(i));
00082 }
00083 return newString;
00084 }
|
|
|
Reimplemented in Core::ByteString, and Core::TwoByteString. Definition at line 61 of file StringImpl.cc. References at(), Core::Character::byteSize(), Core::Object::error(), Core::TwoByteString::put(), and size(). Referenced by Core::String::changeWideToFit(). 00062 {
00063 Character *ch;
00064 TwoByteString *newString = new TwoByteString(size());
00065 for (int i = 0; i < size(); i++) {
00066 ch = at(i);
00067 if (ch->byteSize() > 1) {
00068 /* Can't convert to ByteString, keep this implementor */
00069 error(new String("Can't convert String to TwoByteString. Characters out of range."),
00070 new String(__PRETTY_FUNCTION__));
00071 }
00072 newString->put(i, at(i));
00073 }
00074 return newString;
00075 }
|
|
|
Reimplemented in Core::ByteString, Core::CharacterArray, and Core::TwoByteString. Referenced by asByteString(), asCharacterArray(), asTwoByteString(), and Core::String::at(). |
|
|
Reimplemented in Core::ByteString, Core::CharacterArray, and Core::TwoByteString. Referenced by Core::String::put(). |
|
|
Reimplemented in Core::ByteString, Core::CharacterArray, and Core::TwoByteString. Referenced by Core::String::changeSize(). |
|
|
Reimplemented in Core::ByteString. Definition at line 87 of file StringImpl.cc. Referenced by Core::String::isByteString(). 00088 {
00089 return false;
00090 }
|
|
|
Reimplemented in Core::CharacterArray. Definition at line 97 of file StringImpl.cc. Referenced by Core::String::isCharacterArray(). 00098 {
00099 return false;
00100 }
|
|
|
Reimplemented in Core::ByteString, Core::CharacterArray, and Core::TwoByteString. Referenced by Core::String::isEqual(). |
|
|
Reimplemented in Core::ByteString, Core::CharacterArray, and Core::TwoByteString. Referenced by Core::ByteString::isEqual(). |
|
|
Reimplemented in Core::ByteString, Core::CharacterArray, and Core::TwoByteString. Referenced by Core::TwoByteString::isEqual(). |
|
|
Reimplemented in Core::TwoByteString. Definition at line 92 of file StringImpl.cc. Referenced by Core::String::isTwoByteString(). 00093 {
00094 return false;
00095 }
|
|
||||||||||||
|
Reimplemented in Core::ByteString, Core::CharacterArray, and Core::TwoByteString. Referenced by Core::String::put(), and Core::String::String(). |
|
|
Reimplemented in Core::CharacterArray. Definition at line 40 of file StringImpl.cc. References tally. Referenced by asByteString(), asCharacterArray(), asTwoByteString(), Core::ByteString::asTwoByteString(), Core::TwoByteString::changeSize(), Core::ByteString::changeSize(), and Core::String::size(). 00041 {
00042 return tally;
00043 }
|
|
1.4.2