1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #include <aws/route53/model/ResourceTagSet.h> 7 #include <aws/core/utils/xml/XmlSerializer.h> 8 #include <aws/core/utils/StringUtils.h> 9 #include <aws/core/utils/memory/stl/AWSStringStream.h> 10 11 #include <utility> 12 13 using namespace Aws::Utils::Xml; 14 using namespace Aws::Utils; 15 16 namespace Aws 17 { 18 namespace Route53 19 { 20 namespace Model 21 { 22 ResourceTagSet()23ResourceTagSet::ResourceTagSet() : 24 m_resourceType(TagResourceType::NOT_SET), 25 m_resourceTypeHasBeenSet(false), 26 m_resourceIdHasBeenSet(false), 27 m_tagsHasBeenSet(false) 28 { 29 } 30 ResourceTagSet(const XmlNode & xmlNode)31ResourceTagSet::ResourceTagSet(const XmlNode& xmlNode) : 32 m_resourceType(TagResourceType::NOT_SET), 33 m_resourceTypeHasBeenSet(false), 34 m_resourceIdHasBeenSet(false), 35 m_tagsHasBeenSet(false) 36 { 37 *this = xmlNode; 38 } 39 operator =(const XmlNode & xmlNode)40ResourceTagSet& ResourceTagSet::operator =(const XmlNode& xmlNode) 41 { 42 XmlNode resultNode = xmlNode; 43 44 if(!resultNode.IsNull()) 45 { 46 XmlNode resourceTypeNode = resultNode.FirstChild("ResourceType"); 47 if(!resourceTypeNode.IsNull()) 48 { 49 m_resourceType = TagResourceTypeMapper::GetTagResourceTypeForName(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(resourceTypeNode.GetText()).c_str()).c_str()); 50 m_resourceTypeHasBeenSet = true; 51 } 52 XmlNode resourceIdNode = resultNode.FirstChild("ResourceId"); 53 if(!resourceIdNode.IsNull()) 54 { 55 m_resourceId = Aws::Utils::Xml::DecodeEscapedXmlText(resourceIdNode.GetText()); 56 m_resourceIdHasBeenSet = true; 57 } 58 XmlNode tagsNode = resultNode.FirstChild("Tags"); 59 if(!tagsNode.IsNull()) 60 { 61 XmlNode tagsMember = tagsNode.FirstChild("Tag"); 62 while(!tagsMember.IsNull()) 63 { 64 m_tags.push_back(tagsMember); 65 tagsMember = tagsMember.NextNode("Tag"); 66 } 67 68 m_tagsHasBeenSet = true; 69 } 70 } 71 72 return *this; 73 } 74 AddToNode(XmlNode & parentNode) const75void ResourceTagSet::AddToNode(XmlNode& parentNode) const 76 { 77 Aws::StringStream ss; 78 if(m_resourceTypeHasBeenSet) 79 { 80 XmlNode resourceTypeNode = parentNode.CreateChildElement("ResourceType"); 81 resourceTypeNode.SetText(TagResourceTypeMapper::GetNameForTagResourceType(m_resourceType)); 82 } 83 84 if(m_resourceIdHasBeenSet) 85 { 86 XmlNode resourceIdNode = parentNode.CreateChildElement("ResourceId"); 87 resourceIdNode.SetText(m_resourceId); 88 } 89 90 if(m_tagsHasBeenSet) 91 { 92 XmlNode tagsParentNode = parentNode.CreateChildElement("Tags"); 93 for(const auto& item : m_tags) 94 { 95 XmlNode tagsNode = tagsParentNode.CreateChildElement("Tag"); 96 item.AddToNode(tagsNode); 97 } 98 } 99 100 } 101 102 } // namespace Model 103 } // namespace Route53 104 } // namespace Aws 105