AccessorSetter.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. namespace JMS\Serializer\Tests\Fixtures;
  3. use JMS\Serializer\Annotation as Serializer;
  4. class AccessorSetter
  5. {
  6. /**
  7. * @var \stdClass
  8. * @Serializer\Type("JMS\Serializer\Tests\Fixtures\AccessorSetterElement")
  9. * @Serializer\Accessor(setter="setElementDifferent")
  10. */
  11. protected $element;
  12. /**
  13. * @var array
  14. * @Serializer\Type("array<string>")
  15. * @Serializer\Accessor(setter="setCollectionDifferent")
  16. * @Serializer\XmlList(inline=false)
  17. */
  18. protected $collection;
  19. /**
  20. * @return \stdClass
  21. */
  22. public function getElement()
  23. {
  24. return $this->element;
  25. }
  26. /**
  27. * @param AccessorSetterElement $element
  28. */
  29. public function setElementDifferent(AccessorSetterElement $element)
  30. {
  31. $this->element = new \stdClass();
  32. $this->element->element = $element;
  33. }
  34. /**
  35. * @return array
  36. */
  37. public function getCollection()
  38. {
  39. return $this->collection;
  40. }
  41. /**
  42. * @param array $collection
  43. */
  44. public function setCollectionDifferent($collection)
  45. {
  46. $this->collection = array_combine($collection, $collection);
  47. }
  48. }
  49. class AccessorSetterElement
  50. {
  51. /**
  52. * @var string
  53. * @Serializer\Type("string")
  54. * @Serializer\Accessor(setter="setAttributeDifferent")
  55. * @Serializer\XmlAttribute
  56. */
  57. protected $attribute;
  58. /**
  59. * @var string
  60. * @Serializer\Type("string")
  61. * @Serializer\Accessor(setter="setElementDifferent")
  62. * @Serializer\XmlValue
  63. */
  64. protected $element;
  65. /**
  66. * @return string
  67. */
  68. public function getAttribute()
  69. {
  70. return $this->attribute;
  71. }
  72. /**
  73. * @param string $attribute
  74. */
  75. public function setAttributeDifferent($attribute)
  76. {
  77. $this->attribute = $attribute . "-different";
  78. }
  79. /**
  80. * @param string $element
  81. */
  82. public function setElementDifferent($element)
  83. {
  84. $this->element = $element . "-different";
  85. }
  86. /**
  87. * @return string
  88. */
  89. public function getElement()
  90. {
  91. return $this->element;
  92. }
  93. }