Mercurial > hg > isophonics-drupal-site
view vendor/symfony/serializer/Mapping/AttributeMetadata.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | 1fec387a4317 |
children |
line wrap: on
line source
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Serializer\Mapping; /** * {@inheritdoc} * * @author Kévin Dunglas <dunglas@gmail.com> */ class AttributeMetadata implements AttributeMetadataInterface { /** * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link getName()} instead. */ public $name; /** * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link getGroups()} instead. */ public $groups = []; /** * @var int|null * * @internal This property is public in order to reduce the size of the * class' serialized representation. Do not access it. Use * {@link getMaxDepth()} instead. */ public $maxDepth; /** * Constructs a metadata for the given attribute. * * @param string $name */ public function __construct($name) { $this->name = $name; } /** * {@inheritdoc} */ public function getName() { return $this->name; } /** * {@inheritdoc} */ public function addGroup($group) { if (!\in_array($group, $this->groups)) { $this->groups[] = $group; } } /** * {@inheritdoc} */ public function getGroups() { return $this->groups; } /** * {@inheritdoc} */ public function setMaxDepth($maxDepth) { $this->maxDepth = $maxDepth; } /** * {@inheritdoc} */ public function getMaxDepth() { return $this->maxDepth; } /** * {@inheritdoc} */ public function merge(AttributeMetadataInterface $attributeMetadata) { foreach ($attributeMetadata->getGroups() as $group) { $this->addGroup($group); } // Overwrite only if not defined if (null === $this->maxDepth) { $this->maxDepth = $attributeMetadata->getMaxDepth(); } } /** * Returns the names of the properties that should be serialized. * * @return string[] */ public function __sleep() { return ['name', 'groups', 'maxDepth']; } }