exml/exml/Declaration.cpp

69 lines
1.7 KiB
C++

/** @file
* @author Edouard DUPIN
* @copyright 2011, Edouard DUPIN, all right reserved
* @license APACHE v2.0 (see license file)
*/
#include <exml/Declaration.h>
#include <exml/debug.h>
#include <exml/internal/Declaration.h>
exml::Declaration::Declaration(ememory::SharedPtr<exml::internal::Node> _internalNode) :
exml::AttributeList(_internalNode) {
if (m_data == nullptr) {
return;
}
if (m_data->isDeclaration() == false) {
// try to set wrong type inside ... ==> remove it ...
m_data = nullptr;
}
}
exml::Declaration::Declaration(const exml::Declaration& _obj) :
exml::AttributeList(_obj.m_data) {
}
exml::Declaration::Declaration(const std::string& _name) :
exml::AttributeList() {
m_data = exml::internal::Declaration::create();
}
exml::Declaration& exml::Declaration::operator= (const exml::Declaration& _obj) {
m_data = _obj.m_data;
return *this;
}
//////////////////////////////////////////////////////////////////////////////////
exml::DeclarationXML::DeclarationXML(ememory::SharedPtr<exml::internal::Node> _internalNode) :
exml::Declaration(_internalNode) {
if (m_data == nullptr) {
return;
}
// TODO: Do it better
if (m_data->isDeclaration() == false) {
// try to set wrong type inside ... ==> remove it ...
m_data = nullptr;
}
}
exml::DeclarationXML::DeclarationXML(const exml::DeclarationXML& _obj) :
exml::Declaration(_obj.m_data) {
}
exml::DeclarationXML::DeclarationXML(const std::string& _version, const std::string& _format, bool _standalone) :
exml::Declaration() {
m_data = exml::internal::DeclarationXML::create(_version, _format, _standalone);
}
exml::DeclarationXML& exml::DeclarationXML::operator= (const exml::DeclarationXML& _obj) {
m_data = _obj.m_data;
return *this;
}