summaryrefslogtreecommitdiff
path: root/core/fxcrt/xml/cfx_xmlelement.h
diff options
context:
space:
mode:
authordan sinclair <dsinclair@chromium.org>2018-04-16 21:24:57 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-04-16 21:24:57 +0000
commit8b0cf76f00c6e89e8bb7bf4bcf2189b27baac31c (patch)
treeec18d4aa800ccd9d32f113f8ec41d89948479ab3 /core/fxcrt/xml/cfx_xmlelement.h
parent262b496f25be27978abe7d98f20978820ecaeec8 (diff)
downloadpdfium-8b0cf76f00c6e89e8bb7bf4bcf2189b27baac31c.tar.xz
Merge CFX_XMLElement and CFX_XMLAttributeNode
CFX_XMLElement is the only subclass of CFX_XMLAttributeNode. This CL merges the two classes together. The {Set|Get}String method has been renamed to {Set|Get}Attribute to make it clearer what you're retrieving. Change-Id: I158c961d4d8c5f563d937a3e7a35321a33622562 Reviewed-on: https://pdfium-review.googlesource.com/30710 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Diffstat (limited to 'core/fxcrt/xml/cfx_xmlelement.h')
-rw-r--r--core/fxcrt/xml/cfx_xmlelement.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/core/fxcrt/xml/cfx_xmlelement.h b/core/fxcrt/xml/cfx_xmlelement.h
index f713114eb7..f8533a1445 100644
--- a/core/fxcrt/xml/cfx_xmlelement.h
+++ b/core/fxcrt/xml/cfx_xmlelement.h
@@ -7,13 +7,14 @@
#ifndef CORE_FXCRT_XML_CFX_XMLELEMENT_H_
#define CORE_FXCRT_XML_CFX_XMLELEMENT_H_
+#include <map>
#include <memory>
#include <vector>
#include "core/fxcrt/fx_string.h"
-#include "core/fxcrt/xml/cfx_xmlattributenode.h"
+#include "core/fxcrt/xml/cfx_xmlnode.h"
-class CFX_XMLElement : public CFX_XMLAttributeNode {
+class CFX_XMLElement : public CFX_XMLNode {
public:
explicit CFX_XMLElement(const WideString& wsTag);
~CFX_XMLElement() override;
@@ -23,6 +24,17 @@ class CFX_XMLElement : public CFX_XMLAttributeNode {
std::unique_ptr<CFX_XMLNode> Clone() override;
void Save(const RetainPtr<CFX_SeekableStreamProxy>& pXMLStream) override;
+ WideString GetName() const { return name_; }
+
+ const std::map<WideString, WideString>& GetAttributes() const {
+ return attrs_;
+ }
+ bool HasAttribute(const WideString& name) const;
+ void SetAttribute(const WideString& name, const WideString& value);
+ WideString GetAttribute(const WideString& name) const;
+
+ void RemoveAttribute(const WideString& name);
+
CFX_XMLElement* GetFirstChildNamed(const WideStringView& name) const;
CFX_XMLElement* GetNthChildNamed(const WideStringView& name,
size_t idx) const;
@@ -33,6 +45,12 @@ class CFX_XMLElement : public CFX_XMLAttributeNode {
WideString GetTextData() const;
void SetTextData(const WideString& wsText);
+
+ private:
+ WideString AttributeToString(const WideString& name, const WideString& value);
+
+ WideString name_;
+ std::map<WideString, WideString> attrs_;
};
#endif // CORE_FXCRT_XML_CFX_XMLELEMENT_H_