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