#ifndef JEZUK_DOM_COMMENT_H #define JEZUK_DOM_COMMENT_H //////////////////////////// // C++ DOM definition // // $Id$ //////////////////////////// #include namespace Arabica { namespace DOM { template class Comment_impl; template > class Comment : public CharacterData { public: typedef Node NodeT; Comment() : CharacterData() { } explicit Comment(Comment_impl* impl) : CharacterData(dynamic_cast*>(impl)) { } Comment(const Comment& rhs) : CharacterData(rhs) { } explicit Comment(const Node& rhs) : CharacterData(rhs) { if(NodeT::impl_ == 0) // null nodes can always be cast return; if(rhs.getNodeType() != Node_base::COMMENT_NODE) throw DOMBadCast("Comment"); } // Comment }; // class Comment //////////////////////////////////////////////////////////////////// template class Comment_impl : virtual public CharacterData_impl { public: virtual ~Comment_impl() { } }; // Comment_impl } // namespace DOM } // namespace Arabica #endif