| // Copyright 2017 PDFium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| |
| #ifndef XFA_FDE_XML_CFDE_XMLINSTRUCTION_H_ |
| #define XFA_FDE_XML_CFDE_XMLINSTRUCTION_H_ |
| |
| #include <vector> |
| |
| #include "core/fxcrt/fx_string.h" |
| #include "xfa/fde/xml/cfde_xmlnode.h" |
| |
| class CFDE_XMLInstruction : public CFDE_XMLNode { |
| public: |
| explicit CFDE_XMLInstruction(const CFX_WideString& wsTarget); |
| ~CFDE_XMLInstruction() override; |
| |
| // CFDE_XMLNode |
| FDE_XMLNODETYPE GetType() const override; |
| CFDE_XMLNode* Clone(bool bRecursive) override; |
| |
| void GetTargetName(CFX_WideString& wsTarget) const { wsTarget = m_wsTarget; } |
| int32_t CountAttributes() const; |
| bool GetAttribute(int32_t index, |
| CFX_WideString& wsAttriName, |
| CFX_WideString& wsAttriValue) const; |
| bool HasAttribute(const wchar_t* pwsAttriName) const; |
| void GetString(const wchar_t* pwsAttriName, |
| CFX_WideString& wsAttriValue, |
| const wchar_t* pwsDefValue = nullptr) const; |
| void SetString(const CFX_WideString& wsAttriName, |
| const CFX_WideString& wsAttriValue); |
| int32_t GetInteger(const wchar_t* pwsAttriName, int32_t iDefValue = 0) const; |
| void SetInteger(const wchar_t* pwsAttriName, int32_t iAttriValue); |
| float GetFloat(const wchar_t* pwsAttriName, float fDefValue = 0) const; |
| void SetFloat(const wchar_t* pwsAttriName, float fAttriValue); |
| void RemoveAttribute(const wchar_t* pwsAttriName); |
| int32_t CountData() const; |
| bool GetData(int32_t index, CFX_WideString& wsData) const; |
| void AppendData(const CFX_WideString& wsData); |
| void RemoveData(int32_t index); |
| |
| CFX_WideString m_wsTarget; |
| std::vector<CFX_WideString> m_Attributes; |
| std::vector<CFX_WideString> m_TargetData; |
| }; |
| |
| #endif // XFA_FDE_XML_CFDE_XMLINSTRUCTION_H_ |