00001 #ifndef ElementImpl_HEADER_GUARD_
00002 #define ElementImpl_HEADER_GUARD_
00003
00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024 00025 00026 00027 00028 00029 00030 00031 00032 00033 00034 00035 00036 00037 00038 00039 00040 00041 00042 00043 00044 00045 00046 00047 00048 00049 00050 00051 00052 00053 00054 00055 00056 00057 00058
00059
00060 00061 00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074 #include <util/XercesDefs.hpp>
00075 #include "AttrImpl.hpp"
00076 #include "ChildAndParentNode.hpp"
00077
00078 class DeepNodeListImpl;
00079
00080 class ElementImpl: public ChildAndParentNode {
00081 protected:
00082 DOMString name;
00083 NamedNodeMapImpl *attributes;
00084
00085 public:
00086 ElementImpl(DocumentImpl *ownerDoc, const DOMString &name);
00087 ElementImpl(const ElementImpl &other, bool deep=false);
00088 virtual ~ElementImpl();
00089
00090 virtual bool isElementImpl();
00091 virtual NodeImpl * cloneNode(bool deep);
00092 virtual DOMString getNodeName();
00093 virtual short getNodeType();
00094 virtual DOMString getAttribute(const DOMString &name);
00095 virtual AttrImpl *getAttributeNode(const DOMString &name);
00096 virtual NamedNodeMapImpl * getAttributes();
00097 virtual DeepNodeListImpl * getElementsByTagName(const DOMString &tagname);
00098 virtual DOMString getTagName();
00099 virtual void removeAttribute(const DOMString &name);
00100 virtual AttrImpl * removeAttributeNode(AttrImpl * oldAttr);
00101 virtual AttrImpl *setAttribute(const DOMString &name, const DOMString &value);
00102 virtual AttrImpl *setAttributeNode(AttrImpl *newAttr);
00103 virtual void setNodeValue(const DOMString &arg);
00104 virtual void setReadOnly(bool readOnly, bool deep);
00105
00106
00107 virtual DOMString getAttributeNS(const DOMString &namespaceURI,
00108 const DOMString &localName);
00109 virtual AttrImpl *setAttributeNS(const DOMString &namespaceURI,
00110 const DOMString &qualifiedName, const DOMString &value);
00111 virtual void removeAttributeNS(const DOMString &namespaceURI,
00112 const DOMString &localName);
00113 virtual AttrImpl *getAttributeNodeNS(const DOMString &namespaceURI,
00114 const DOMString &localName);
00115 virtual AttrImpl *setAttributeNodeNS(AttrImpl *newAttr);
00116 virtual DeepNodeListImpl *getElementsByTagNameNS(const DOMString &namespaceURI,
00117 const DOMString &localName);
00118
00119 virtual void setOwnerDocument(DocumentImpl *doc);
00120
00121
00122
00123 virtual NamedNodeMapImpl *NNM_cloneMap(NodeImpl *ownerNode);
00124
00125 virtual int NNM_findNamePoint(const DOMString &name);
00126 virtual unsigned int NNM_getLength();
00127 virtual NodeImpl *NNM_getNamedItem(const DOMString &name);
00128 virtual NodeImpl *NNM_item(unsigned int index);
00129 virtual void NNM_removeAll();
00130 virtual NodeImpl *NNM_removeNamedItem(const DOMString &name);
00131
00132 virtual NodeImpl *NNM_setNamedItem(NodeImpl *arg);
00133 virtual void NNM_setReadOnly(bool readOnly, bool deep);
00134
00135 virtual int NNM_findNamePoint(const DOMString &namespaceURI, const DOMString &localName);
00136 virtual NodeImpl *NNM_getNamedItemNS(const DOMString &namespaceURI, const DOMString &localName);
00137 virtual NodeImpl *NNM_setNamedItemNS(NodeImpl *arg);
00138 virtual NodeImpl *NNM_removeNamedItemNS(const DOMString &namespaceURI, const DOMString &localName);
00139 virtual void NNM_setOwnerDocument(DocumentImpl *doc);
00140
00141
00142 };
00143
00144 #endif