Destination.cpp 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. /**
  2. * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
  3. * SPDX-License-Identifier: Apache-2.0.
  4. */
  5. #include <aws/s3/model/Destination.h>
  6. #include <aws/core/utils/xml/XmlSerializer.h>
  7. #include <aws/core/utils/StringUtils.h>
  8. #include <aws/core/utils/memory/stl/AWSStringStream.h>
  9. #include <utility>
  10. using namespace Aws::Utils::Xml;
  11. using namespace Aws::Utils;
  12. namespace Aws
  13. {
  14. namespace S3
  15. {
  16. namespace Model
  17. {
  18. Destination::Destination() :
  19. m_bucketHasBeenSet(false),
  20. m_accountHasBeenSet(false),
  21. m_storageClass(StorageClass::NOT_SET),
  22. m_storageClassHasBeenSet(false),
  23. m_accessControlTranslationHasBeenSet(false),
  24. m_encryptionConfigurationHasBeenSet(false),
  25. m_replicationTimeHasBeenSet(false),
  26. m_metricsHasBeenSet(false)
  27. {
  28. }
  29. Destination::Destination(const XmlNode& xmlNode) :
  30. m_bucketHasBeenSet(false),
  31. m_accountHasBeenSet(false),
  32. m_storageClass(StorageClass::NOT_SET),
  33. m_storageClassHasBeenSet(false),
  34. m_accessControlTranslationHasBeenSet(false),
  35. m_encryptionConfigurationHasBeenSet(false),
  36. m_replicationTimeHasBeenSet(false),
  37. m_metricsHasBeenSet(false)
  38. {
  39. *this = xmlNode;
  40. }
  41. Destination& Destination::operator =(const XmlNode& xmlNode)
  42. {
  43. XmlNode resultNode = xmlNode;
  44. if(!resultNode.IsNull())
  45. {
  46. XmlNode bucketNode = resultNode.FirstChild("Bucket");
  47. if(!bucketNode.IsNull())
  48. {
  49. m_bucket = Aws::Utils::Xml::DecodeEscapedXmlText(bucketNode.GetText());
  50. m_bucketHasBeenSet = true;
  51. }
  52. XmlNode accountNode = resultNode.FirstChild("Account");
  53. if(!accountNode.IsNull())
  54. {
  55. m_account = Aws::Utils::Xml::DecodeEscapedXmlText(accountNode.GetText());
  56. m_accountHasBeenSet = true;
  57. }
  58. XmlNode storageClassNode = resultNode.FirstChild("StorageClass");
  59. if(!storageClassNode.IsNull())
  60. {
  61. m_storageClass = StorageClassMapper::GetStorageClassForName(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(storageClassNode.GetText()).c_str()).c_str());
  62. m_storageClassHasBeenSet = true;
  63. }
  64. XmlNode accessControlTranslationNode = resultNode.FirstChild("AccessControlTranslation");
  65. if(!accessControlTranslationNode.IsNull())
  66. {
  67. m_accessControlTranslation = accessControlTranslationNode;
  68. m_accessControlTranslationHasBeenSet = true;
  69. }
  70. XmlNode encryptionConfigurationNode = resultNode.FirstChild("EncryptionConfiguration");
  71. if(!encryptionConfigurationNode.IsNull())
  72. {
  73. m_encryptionConfiguration = encryptionConfigurationNode;
  74. m_encryptionConfigurationHasBeenSet = true;
  75. }
  76. XmlNode replicationTimeNode = resultNode.FirstChild("ReplicationTime");
  77. if(!replicationTimeNode.IsNull())
  78. {
  79. m_replicationTime = replicationTimeNode;
  80. m_replicationTimeHasBeenSet = true;
  81. }
  82. XmlNode metricsNode = resultNode.FirstChild("Metrics");
  83. if(!metricsNode.IsNull())
  84. {
  85. m_metrics = metricsNode;
  86. m_metricsHasBeenSet = true;
  87. }
  88. }
  89. return *this;
  90. }
  91. void Destination::AddToNode(XmlNode& parentNode) const
  92. {
  93. Aws::StringStream ss;
  94. if(m_bucketHasBeenSet)
  95. {
  96. XmlNode bucketNode = parentNode.CreateChildElement("Bucket");
  97. bucketNode.SetText(m_bucket);
  98. }
  99. if(m_accountHasBeenSet)
  100. {
  101. XmlNode accountNode = parentNode.CreateChildElement("Account");
  102. accountNode.SetText(m_account);
  103. }
  104. if(m_storageClassHasBeenSet)
  105. {
  106. XmlNode storageClassNode = parentNode.CreateChildElement("StorageClass");
  107. storageClassNode.SetText(StorageClassMapper::GetNameForStorageClass(m_storageClass));
  108. }
  109. if(m_accessControlTranslationHasBeenSet)
  110. {
  111. XmlNode accessControlTranslationNode = parentNode.CreateChildElement("AccessControlTranslation");
  112. m_accessControlTranslation.AddToNode(accessControlTranslationNode);
  113. }
  114. if(m_encryptionConfigurationHasBeenSet)
  115. {
  116. XmlNode encryptionConfigurationNode = parentNode.CreateChildElement("EncryptionConfiguration");
  117. m_encryptionConfiguration.AddToNode(encryptionConfigurationNode);
  118. }
  119. if(m_replicationTimeHasBeenSet)
  120. {
  121. XmlNode replicationTimeNode = parentNode.CreateChildElement("ReplicationTime");
  122. m_replicationTime.AddToNode(replicationTimeNode);
  123. }
  124. if(m_metricsHasBeenSet)
  125. {
  126. XmlNode metricsNode = parentNode.CreateChildElement("Metrics");
  127. m_metrics.AddToNode(metricsNode);
  128. }
  129. }
  130. } // namespace Model
  131. } // namespace S3
  132. } // namespace Aws