#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 }
|
|