You are here

AttributeMetadata.php in Zircon Profile 8

Same filename and directory in other branches
  1. 8.0 vendor/symfony/serializer/Mapping/AttributeMetadata.php

File

vendor/symfony/serializer/Mapping/AttributeMetadata.php
View 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 {

  /**
   * @var string
   *
   * @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;

  /**
   * @var array
   *
   * @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 = array();

  /**
   * 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 merge(AttributeMetadataInterface $attributeMetadata) {
    foreach ($attributeMetadata
      ->getGroups() as $group) {
      $this
        ->addGroup($group);
    }
  }

  /**
   * Returns the names of the properties that should be serialized.
   *
   * @return string[]
   */
  public function __sleep() {
    return array(
      'name',
      'groups',
    );
  }

}

Classes

Namesort descending Description
AttributeMetadata @author Kévin Dunglas <dunglas@gmail.com>