blob: 7a622df798ebb022c4338f88b2cfa1a1a9008b79 (
plain) (
tree)
|
|
/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#include <aws/s3/model/CORSRule.h>
#include <aws/core/utils/xml/XmlSerializer.h>
#include <aws/core/utils/StringUtils.h>
#include <aws/core/utils/memory/stl/AWSStringStream.h>
#include <utility>
using namespace Aws::Utils::Xml;
using namespace Aws::Utils;
namespace Aws
{
namespace S3
{
namespace Model
{
CORSRule::CORSRule() :
m_iDHasBeenSet(false),
m_allowedHeadersHasBeenSet(false),
m_allowedMethodsHasBeenSet(false),
m_allowedOriginsHasBeenSet(false),
m_exposeHeadersHasBeenSet(false),
m_maxAgeSeconds(0),
m_maxAgeSecondsHasBeenSet(false)
{
}
CORSRule::CORSRule(const XmlNode& xmlNode) :
m_iDHasBeenSet(false),
m_allowedHeadersHasBeenSet(false),
m_allowedMethodsHasBeenSet(false),
m_allowedOriginsHasBeenSet(false),
m_exposeHeadersHasBeenSet(false),
m_maxAgeSeconds(0),
m_maxAgeSecondsHasBeenSet(false)
{
*this = xmlNode;
}
CORSRule& CORSRule::operator =(const XmlNode& xmlNode)
{
XmlNode resultNode = xmlNode;
if(!resultNode.IsNull())
{
XmlNode iDNode = resultNode.FirstChild("ID");
if(!iDNode.IsNull())
{
m_iD = Aws::Utils::Xml::DecodeEscapedXmlText(iDNode.GetText());
m_iDHasBeenSet = true;
}
XmlNode allowedHeadersNode = resultNode.FirstChild("AllowedHeader");
if(!allowedHeadersNode.IsNull())
{
XmlNode allowedHeaderMember = allowedHeadersNode;
while(!allowedHeaderMember.IsNull())
{
m_allowedHeaders.push_back(allowedHeaderMember.GetText());
allowedHeaderMember = allowedHeaderMember.NextNode("AllowedHeader");
}
m_allowedHeadersHasBeenSet = true;
}
XmlNode allowedMethodsNode = resultNode.FirstChild("AllowedMethod");
if(!allowedMethodsNode.IsNull())
{
XmlNode allowedMethodMember = allowedMethodsNode;
while(!allowedMethodMember.IsNull())
{
m_allowedMethods.push_back(allowedMethodMember.GetText());
allowedMethodMember = allowedMethodMember.NextNode("AllowedMethod");
}
m_allowedMethodsHasBeenSet = true;
}
XmlNode allowedOriginsNode = resultNode.FirstChild("AllowedOrigin");
if(!allowedOriginsNode.IsNull())
{
XmlNode allowedOriginMember = allowedOriginsNode;
while(!allowedOriginMember.IsNull())
{
m_allowedOrigins.push_back(allowedOriginMember.GetText());
allowedOriginMember = allowedOriginMember.NextNode("AllowedOrigin");
}
m_allowedOriginsHasBeenSet = true;
}
XmlNode exposeHeadersNode = resultNode.FirstChild("ExposeHeader");
if(!exposeHeadersNode.IsNull())
{
XmlNode exposeHeaderMember = exposeHeadersNode;
while(!exposeHeaderMember.IsNull())
{
m_exposeHeaders.push_back(exposeHeaderMember.GetText());
exposeHeaderMember = exposeHeaderMember.NextNode("ExposeHeader");
}
m_exposeHeadersHasBeenSet = true;
}
XmlNode maxAgeSecondsNode = resultNode.FirstChild("MaxAgeSeconds");
if(!maxAgeSecondsNode.IsNull())
{
m_maxAgeSeconds = StringUtils::ConvertToInt32(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(maxAgeSecondsNode.GetText()).c_str()).c_str());
m_maxAgeSecondsHasBeenSet = true;
}
}
return *this;
}
void CORSRule::AddToNode(XmlNode& parentNode) const
{
Aws::StringStream ss;
if(m_iDHasBeenSet)
{
XmlNode iDNode = parentNode.CreateChildElement("ID");
iDNode.SetText(m_iD);
}
if(m_allowedHeadersHasBeenSet)
{
for(const auto& item : m_allowedHeaders)
{
XmlNode allowedHeadersNode = parentNode.CreateChildElement("AllowedHeader");
allowedHeadersNode.SetText(item);
}
}
if(m_allowedMethodsHasBeenSet)
{
for(const auto& item : m_allowedMethods)
{
XmlNode allowedMethodsNode = parentNode.CreateChildElement("AllowedMethod");
allowedMethodsNode.SetText(item);
}
}
if(m_allowedOriginsHasBeenSet)
{
for(const auto& item : m_allowedOrigins)
{
XmlNode allowedOriginsNode = parentNode.CreateChildElement("AllowedOrigin");
allowedOriginsNode.SetText(item);
}
}
if(m_exposeHeadersHasBeenSet)
{
for(const auto& item : m_exposeHeaders)
{
XmlNode exposeHeadersNode = parentNode.CreateChildElement("ExposeHeader");
exposeHeadersNode.SetText(item);
}
}
if(m_maxAgeSecondsHasBeenSet)
{
XmlNode maxAgeSecondsNode = parentNode.CreateChildElement("MaxAgeSeconds");
ss << m_maxAgeSeconds;
maxAgeSecondsNode.SetText(ss.str());
ss.str("");
}
}
} // namespace Model
} // namespace S3
} // namespace Aws
|