khtml Library API Documentation

dom_text.cpp

00001 00023 #include "dom/dom_exception.h" 00024 #include "dom/dom_text.h" 00025 #include "xml/dom_textimpl.h" 00026 00027 using namespace DOM; 00028 00029 CharacterData::CharacterData() : Node() 00030 { 00031 } 00032 00033 CharacterData::CharacterData(const CharacterData &other) : Node(other) 00034 { 00035 } 00036 00037 CharacterData &CharacterData::operator = (const Node &other) 00038 { 00039 NodeImpl* ohandle = other.handle(); 00040 if ( impl != ohandle ) { 00041 if (!ohandle || 00042 ( ohandle->nodeType() != CDATA_SECTION_NODE && 00043 ohandle->nodeType() != TEXT_NODE && 00044 ohandle->nodeType() != COMMENT_NODE )) { 00045 if ( impl ) impl->deref(); 00046 impl = 0; 00047 } else { 00048 Node::operator =(other); 00049 } 00050 } 00051 return *this; 00052 } 00053 00054 CharacterData &CharacterData::operator = (const CharacterData &other) 00055 { 00056 Node::operator =(other); 00057 return *this; 00058 } 00059 00060 CharacterData::~CharacterData() 00061 { 00062 } 00063 00064 DOMString CharacterData::data() const 00065 { 00066 if(!impl) return DOMString(); 00067 return ((CharacterDataImpl *)impl)->data(); 00068 } 00069 00070 void CharacterData::setData( const DOMString &str ) 00071 { 00072 if (!impl) 00073 return; // ### enable throw DOMException(DOMException::NOT_FOUND_ERR); 00074 00075 int exceptioncode = 0; 00076 ((CharacterDataImpl *)impl)->setData(str, exceptioncode); 00077 if ( exceptioncode ) 00078 throw DOMException( exceptioncode ); 00079 return; 00080 } 00081 00082 unsigned long CharacterData::length() const 00083 { 00084 if ( impl ) 00085 return ((CharacterDataImpl *)impl)->length(); 00086 return 0; 00087 } 00088 00089 DOMString CharacterData::substringData( const unsigned long offset, const unsigned long count ) 00090 { 00091 if (!impl) 00092 return DOMString(); // ### enable throw DOMException(DOMException::NOT_FOUND_ERR); 00093 00094 int exceptioncode = 0; 00095 DOMString str = ((CharacterDataImpl *)impl)->substringData(offset, count, exceptioncode); 00096 if ( exceptioncode ) 00097 throw DOMException( exceptioncode ); 00098 return str; 00099 } 00100 00101 void CharacterData::appendData( const DOMString &arg ) 00102 { 00103 if (!impl) 00104 return; // ### enable throw DOMException(DOMException::NOT_FOUND_ERR); 00105 00106 int exceptioncode = 0; 00107 ((CharacterDataImpl *)impl)->appendData(arg, exceptioncode); 00108 if ( exceptioncode ) 00109 throw DOMException( exceptioncode ); 00110 } 00111 00112 void CharacterData::insertData( const unsigned long offset, const DOMString &arg ) 00113 { 00114 if (!impl) 00115 return; // ### enable throw DOMException(DOMException::NOT_FOUND_ERR); 00116 00117 int exceptioncode = 0; 00118 ((CharacterDataImpl *)impl)->insertData(offset, arg, exceptioncode); 00119 if ( exceptioncode ) 00120 throw DOMException( exceptioncode ); 00121 } 00122 00123 void CharacterData::deleteData( const unsigned long offset, const unsigned long count ) 00124 { 00125 if (!impl) 00126 return; // ### enable throw DOMException(DOMException::NOT_FOUND_ERR); 00127 00128 int exceptioncode = 0; 00129 ((CharacterDataImpl *)impl)->deleteData(offset, count, exceptioncode); 00130 if ( exceptioncode ) 00131 throw DOMException( exceptioncode ); 00132 } 00133 00134 void CharacterData::replaceData( const unsigned long offset, const unsigned long count, const DOMString &arg ) 00135 { 00136 if (!impl) 00137 return; // ### enable throw DOMException(DOMException::NOT_FOUND_ERR); 00138 00139 int exceptioncode = 0; 00140 ((CharacterDataImpl *)impl)->replaceData(offset, count, arg, exceptioncode); 00141 if ( exceptioncode ) 00142 throw DOMException( exceptioncode ); 00143 } 00144 00145 CharacterData::CharacterData(CharacterDataImpl *i) : Node(i) 00146 { 00147 } 00148 00149 // --------------------------------------------------------------------------- 00150 00151 Comment::Comment() : CharacterData() 00152 { 00153 } 00154 00155 Comment::Comment(const Comment &other) : CharacterData(other) 00156 { 00157 } 00158 00159 Comment &Comment::operator = (const Node &other) 00160 { 00161 NodeImpl* ohandle = other.handle(); 00162 if ( impl != ohandle ) { 00163 if (!ohandle || ohandle->nodeType() != COMMENT_NODE) { 00164 if ( impl ) impl->deref(); 00165 impl = 0; 00166 } else { 00167 Node::operator =(other); 00168 } 00169 } 00170 return *this; 00171 } 00172 00173 Comment &Comment::operator = (const Comment &other) 00174 { 00175 CharacterData::operator =(other); 00176 return *this; 00177 } 00178 00179 Comment::~Comment() 00180 { 00181 } 00182 00183 Comment::Comment(CommentImpl *i) : CharacterData(i) 00184 { 00185 } 00186 00187 // ---------------------------------------------------------------------------- 00188 00189 Text::Text() 00190 { 00191 } 00192 00193 Text::Text(const Text &other) : CharacterData(other) 00194 { 00195 } 00196 00197 Text &Text::operator = (const Node &other) 00198 { 00199 NodeImpl* ohandle = other.handle(); 00200 if ( impl != ohandle ) { 00201 if (!ohandle || 00202 (ohandle->nodeType() != TEXT_NODE && 00203 ohandle->nodeType() != CDATA_SECTION_NODE)) { 00204 if ( impl ) impl->deref(); 00205 impl = 0; 00206 } else { 00207 Node::operator =(other); 00208 } 00209 } 00210 return *this; 00211 } 00212 00213 Text &Text::operator = (const Text &other) 00214 { 00215 Node::operator =(other); 00216 return *this; 00217 } 00218 00219 Text::~Text() 00220 { 00221 } 00222 00223 Text Text::splitText( const unsigned long offset ) 00224 { 00225 if (!impl) 00226 return 0; // ### enable throw DOMException(DOMException::NOT_FOUND_ERR); 00227 00228 int exceptioncode = 0; 00229 TextImpl *newText = static_cast<TextImpl *>(impl)->splitText(offset, exceptioncode ); 00230 if ( exceptioncode ) 00231 throw DOMException( exceptioncode ); 00232 return newText; 00233 } 00234 00235 Text::Text(TextImpl *i) : CharacterData(i) 00236 { 00237 }
KDE Logo
This file is part of the documentation for khtml Library Version 3.2.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Oct 8 11:16:06 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003