Chris@0: Chris@0: * Chris@0: * For the full copyright and license information, please view the LICENSE Chris@0: * file that was distributed with this source code. Chris@0: */ Chris@0: Chris@0: namespace Symfony\Component\Serializer\Mapping; Chris@0: Chris@0: /** Chris@0: * Stores metadata needed for serializing and deserializing attributes. Chris@0: * Chris@0: * Primarily, the metadata stores serialization groups. Chris@0: * Chris@0: * @internal Chris@0: * Chris@0: * @author Kévin Dunglas Chris@0: */ Chris@0: interface AttributeMetadataInterface Chris@0: { Chris@0: /** Chris@0: * Gets the attribute name. Chris@0: * Chris@0: * @return string Chris@0: */ Chris@0: public function getName(); Chris@0: Chris@0: /** Chris@0: * Adds this attribute to the given group. Chris@0: * Chris@0: * @param string $group Chris@0: */ Chris@0: public function addGroup($group); Chris@0: Chris@0: /** Chris@0: * Gets groups of this attribute. Chris@0: * Chris@0: * @return string[] Chris@0: */ Chris@0: public function getGroups(); Chris@0: Chris@0: /** Chris@0: * Sets the serialization max depth for this attribute. Chris@0: * Chris@0: * @param int|null $maxDepth Chris@0: */ Chris@0: public function setMaxDepth($maxDepth); Chris@0: Chris@0: /** Chris@0: * Gets the serialization max depth for this attribute. Chris@0: * Chris@0: * @return int|null Chris@0: */ Chris@0: public function getMaxDepth(); Chris@0: Chris@0: /** Chris@0: * Merges an {@see AttributeMetadataInterface} with in the current one. Chris@0: */ Chris@17: public function merge(self $attributeMetadata); Chris@0: }