TargetGrant.cpp 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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/TargetGrant.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. TargetGrant::TargetGrant() :
  19. m_granteeHasBeenSet(false),
  20. m_permission(BucketLogsPermission::NOT_SET),
  21. m_permissionHasBeenSet(false)
  22. {
  23. }
  24. TargetGrant::TargetGrant(const XmlNode& xmlNode) :
  25. m_granteeHasBeenSet(false),
  26. m_permission(BucketLogsPermission::NOT_SET),
  27. m_permissionHasBeenSet(false)
  28. {
  29. *this = xmlNode;
  30. }
  31. TargetGrant& TargetGrant::operator =(const XmlNode& xmlNode)
  32. {
  33. XmlNode resultNode = xmlNode;
  34. if(!resultNode.IsNull())
  35. {
  36. XmlNode granteeNode = resultNode.FirstChild("Grantee");
  37. if(!granteeNode.IsNull())
  38. {
  39. m_grantee = granteeNode;
  40. m_granteeHasBeenSet = true;
  41. }
  42. XmlNode permissionNode = resultNode.FirstChild("Permission");
  43. if(!permissionNode.IsNull())
  44. {
  45. m_permission = BucketLogsPermissionMapper::GetBucketLogsPermissionForName(StringUtils::Trim(Aws::Utils::Xml::DecodeEscapedXmlText(permissionNode.GetText()).c_str()).c_str());
  46. m_permissionHasBeenSet = true;
  47. }
  48. }
  49. return *this;
  50. }
  51. void TargetGrant::AddToNode(XmlNode& parentNode) const
  52. {
  53. Aws::StringStream ss;
  54. if(m_granteeHasBeenSet)
  55. {
  56. XmlNode granteeNode = parentNode.CreateChildElement("Grantee");
  57. m_grantee.AddToNode(granteeNode);
  58. }
  59. if(m_permissionHasBeenSet)
  60. {
  61. XmlNode permissionNode = parentNode.CreateChildElement("Permission");
  62. permissionNode.SetText(BucketLogsPermissionMapper::GetNameForBucketLogsPermission(m_permission));
  63. }
  64. }
  65. } // namespace Model
  66. } // namespace S3
  67. } // namespace Aws