1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #include <aws/cloudfront/model/Origins.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 CloudFront
19 {
20 namespace Model
21 {
22 
Origins()23 Origins::Origins() :
24     m_quantity(0),
25     m_quantityHasBeenSet(false),
26     m_itemsHasBeenSet(false)
27 {
28 }
29 
Origins(const XmlNode & xmlNode)30 Origins::Origins(const XmlNode& xmlNode) :
31     m_quantity(0),
32     m_quantityHasBeenSet(false),
33     m_itemsHasBeenSet(false)
34 {
35   *this = xmlNode;
36 }
37 
operator =(const XmlNode & xmlNode)38 Origins& Origins::operator =(const XmlNode& xmlNode)
39 {
40   XmlNode resultNode = xmlNode;
41 
42   if(!resultNode.IsNull())
43   {
44     XmlNode quantityNode = resultNode.FirstChild("Quantity");
45     if(!quantityNode.IsNull())
46     {
47       m_quantity = StringUtils::ConvertToInt32(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(quantityNode.GetText()).c_str()).c_str());
48       m_quantityHasBeenSet = true;
49     }
50     XmlNode itemsNode = resultNode.FirstChild("Items");
51     if(!itemsNode.IsNull())
52     {
53       XmlNode itemsMember = itemsNode.FirstChild("Origin");
54       while(!itemsMember.IsNull())
55       {
56         m_items.push_back(itemsMember);
57         itemsMember = itemsMember.NextNode("Origin");
58       }
59 
60       m_itemsHasBeenSet = true;
61     }
62   }
63 
64   return *this;
65 }
66 
AddToNode(XmlNode & parentNode) const67 void Origins::AddToNode(XmlNode& parentNode) const
68 {
69   Aws::StringStream ss;
70   if(m_quantityHasBeenSet)
71   {
72    XmlNode quantityNode = parentNode.CreateChildElement("Quantity");
73    ss << m_quantity;
74    quantityNode.SetText(ss.str());
75    ss.str("");
76   }
77 
78   if(m_itemsHasBeenSet)
79   {
80    XmlNode itemsParentNode = parentNode.CreateChildElement("Items");
81    for(const auto& item : m_items)
82    {
83      XmlNode itemsNode = itemsParentNode.CreateChildElement("Origin");
84      item.AddToNode(itemsNode);
85    }
86   }
87 
88 }
89 
90 } // namespace Model
91 } // namespace CloudFront
92 } // namespace Aws
93