#ifndef JEZUK_SimpleDOM_NOTATIONIMPL_H #define JEZUK_SimpleDOM_NOTATIONIMPL_H #include #include namespace Arabica { namespace SimpleDOM { template class NotationImpl : public DOM::Notation_impl, public NodeImplWithChildren { typedef NodeImplWithChildren NodeWithChildrenT; public: NotationImpl(DocumentImpl* ownerDoc, stringT name, stringT publicId, stringT systemId) : DOM::Notation_impl(), NodeImplWithChildren(ownerDoc), name_(name), publicId_(publicId), systemId_(systemId) { } // NotationImpl virtual ~NotationImpl() { } /////////////////////////////////////////////////////// // DOM::Notation methods virtual stringT getPublicId() const { return publicId_; } virtual stringT getSystemId() const { return systemId_; } /////////////////////////////////////////////////////// // DOM::Node methods virtual typename DOM::Node::Type getNodeType() const { return DOM::Node::NOTATION_NODE; } // getNodeType virtual const stringT& getNodeName() const { return name_; } // getNodeName virtual DOM::Node_impl* cloneNode(bool deep) const { NotationImpl* clone = new NotationImpl(NodeWithChildrenT::ownerDoc_, name_, publicId_, systemId_); NodeWithChildrenT::ownerDoc_->orphaned(clone); return clone; } // cloneNode virtual DOM::Node_impl* getParentNode() const { return 0; } protected: /////////////////////////////////////////////// virtual void checkChildType(DOM::Node_impl* child) { throw DOM::DOMException(DOM::DOMException::NO_MODIFICATION_ALLOWED_ERR); } // checkChildType private: stringT name_; stringT publicId_; stringT systemId_; }; // class NotationImpl } // namespace SAX2DOM } // namespace Arabica #endif