diff options
author | Devtools Arcadia <arcadia-devtools@yandex-team.ru> | 2022-02-07 18:08:42 +0300 |
---|---|---|
committer | Devtools Arcadia <arcadia-devtools@mous.vla.yp-c.yandex.net> | 2022-02-07 18:08:42 +0300 |
commit | 1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch) | |
tree | e26c9fed0de5d9873cce7e00bc214573dc2195b7 /contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/S3Location.cpp | |
download | ydb-1110808a9d39d4b808aef724c861a2e1a38d2a69.tar.gz |
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/S3Location.cpp')
-rw-r--r-- | contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/S3Location.cpp | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/S3Location.cpp b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/S3Location.cpp new file mode 100644 index 0000000000..19615ed335 --- /dev/null +++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/S3Location.cpp @@ -0,0 +1,186 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include <aws/s3/model/S3Location.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 +{ + +S3Location::S3Location() : + m_bucketNameHasBeenSet(false), + m_prefixHasBeenSet(false), + m_encryptionHasBeenSet(false), + m_cannedACL(ObjectCannedACL::NOT_SET), + m_cannedACLHasBeenSet(false), + m_accessControlListHasBeenSet(false), + m_taggingHasBeenSet(false), + m_userMetadataHasBeenSet(false), + m_storageClass(StorageClass::NOT_SET), + m_storageClassHasBeenSet(false) +{ +} + +S3Location::S3Location(const XmlNode& xmlNode) : + m_bucketNameHasBeenSet(false), + m_prefixHasBeenSet(false), + m_encryptionHasBeenSet(false), + m_cannedACL(ObjectCannedACL::NOT_SET), + m_cannedACLHasBeenSet(false), + m_accessControlListHasBeenSet(false), + m_taggingHasBeenSet(false), + m_userMetadataHasBeenSet(false), + m_storageClass(StorageClass::NOT_SET), + m_storageClassHasBeenSet(false) +{ + *this = xmlNode; +} + +S3Location& S3Location::operator =(const XmlNode& xmlNode) +{ + XmlNode resultNode = xmlNode; + + if(!resultNode.IsNull()) + { + XmlNode bucketNameNode = resultNode.FirstChild("BucketName"); + if(!bucketNameNode.IsNull()) + { + m_bucketName = Aws::Utils::Xml::DecodeEscapedXmlText(bucketNameNode.GetText()); + m_bucketNameHasBeenSet = true; + } + XmlNode prefixNode = resultNode.FirstChild("Prefix"); + if(!prefixNode.IsNull()) + { + m_prefix = Aws::Utils::Xml::DecodeEscapedXmlText(prefixNode.GetText()); + m_prefixHasBeenSet = true; + } + XmlNode encryptionNode = resultNode.FirstChild("Encryption"); + if(!encryptionNode.IsNull()) + { + m_encryption = encryptionNode; + m_encryptionHasBeenSet = true; + } + XmlNode cannedACLNode = resultNode.FirstChild("CannedACL"); + if(!cannedACLNode.IsNull()) + { + m_cannedACL = ObjectCannedACLMapper::GetObjectCannedACLForName(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(cannedACLNode.GetText()).c_str()).c_str()); + m_cannedACLHasBeenSet = true; + } + XmlNode accessControlListNode = resultNode.FirstChild("AccessControlList"); + if(!accessControlListNode.IsNull()) + { + XmlNode accessControlListMember = accessControlListNode.FirstChild("Grant"); + while(!accessControlListMember.IsNull()) + { + m_accessControlList.push_back(accessControlListMember); + accessControlListMember = accessControlListMember.NextNode("Grant"); + } + + m_accessControlListHasBeenSet = true; + } + XmlNode taggingNode = resultNode.FirstChild("Tagging"); + if(!taggingNode.IsNull()) + { + m_tagging = taggingNode; + m_taggingHasBeenSet = true; + } + XmlNode userMetadataNode = resultNode.FirstChild("UserMetadata"); + if(!userMetadataNode.IsNull()) + { + XmlNode userMetadataMember = userMetadataNode.FirstChild("MetadataEntry"); + while(!userMetadataMember.IsNull()) + { + m_userMetadata.push_back(userMetadataMember); + userMetadataMember = userMetadataMember.NextNode("MetadataEntry"); + } + + m_userMetadataHasBeenSet = true; + } + XmlNode storageClassNode = resultNode.FirstChild("StorageClass"); + if(!storageClassNode.IsNull()) + { + m_storageClass = StorageClassMapper::GetStorageClassForName(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(storageClassNode.GetText()).c_str()).c_str()); + m_storageClassHasBeenSet = true; + } + } + + return *this; +} + +void S3Location::AddToNode(XmlNode& parentNode) const +{ + Aws::StringStream ss; + if(m_bucketNameHasBeenSet) + { + XmlNode bucketNameNode = parentNode.CreateChildElement("BucketName"); + bucketNameNode.SetText(m_bucketName); + } + + if(m_prefixHasBeenSet) + { + XmlNode prefixNode = parentNode.CreateChildElement("Prefix"); + prefixNode.SetText(m_prefix); + } + + if(m_encryptionHasBeenSet) + { + XmlNode encryptionNode = parentNode.CreateChildElement("Encryption"); + m_encryption.AddToNode(encryptionNode); + } + + if(m_cannedACLHasBeenSet) + { + XmlNode cannedACLNode = parentNode.CreateChildElement("CannedACL"); + cannedACLNode.SetText(ObjectCannedACLMapper::GetNameForObjectCannedACL(m_cannedACL)); + } + + if(m_accessControlListHasBeenSet) + { + XmlNode accessControlListParentNode = parentNode.CreateChildElement("AccessControlList"); + for(const auto& item : m_accessControlList) + { + XmlNode accessControlListNode = accessControlListParentNode.CreateChildElement("Grant"); + item.AddToNode(accessControlListNode); + } + } + + if(m_taggingHasBeenSet) + { + XmlNode taggingNode = parentNode.CreateChildElement("Tagging"); + m_tagging.AddToNode(taggingNode); + } + + if(m_userMetadataHasBeenSet) + { + XmlNode userMetadataParentNode = parentNode.CreateChildElement("UserMetadata"); + for(const auto& item : m_userMetadata) + { + XmlNode userMetadataNode = userMetadataParentNode.CreateChildElement("MetadataEntry"); + item.AddToNode(userMetadataNode); + } + } + + if(m_storageClassHasBeenSet) + { + XmlNode storageClassNode = parentNode.CreateChildElement("StorageClass"); + storageClassNode.SetText(StorageClassMapper::GetNameForStorageClass(m_storageClass)); + } + +} + +} // namespace Model +} // namespace S3 +} // namespace Aws |