This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/Validator/Tests/Fixtures/FakeMetadataFactory.php

73 lines
1.9 KiB
PHP
Raw Normal View History

<?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\Validator\Tests\Fixtures;
use Symfony\Component\Validator\Exception\NoSuchMetadataException;
2015-09-30 14:39:58 +01:00
use Symfony\Component\Validator\Mapping\Factory\MetadataFactoryInterface;
use Symfony\Component\Validator\MetadataInterface;
class FakeMetadataFactory implements MetadataFactoryInterface
{
protected $metadatas = array();
public function getMetadataFor($class)
{
$hash = null;
if (is_object($class)) {
$hash = spl_object_hash($class);
$class = get_class($class);
}
if (!is_string($class)) {
2013-04-10 11:24:37 +01:00
throw new NoSuchMetadataException(sprintf('No metadata for type %s', gettype($class)));
}
if (!isset($this->metadatas[$class])) {
if (isset($this->metadatas[$hash])) {
return $this->metadatas[$hash];
}
2013-04-10 11:24:37 +01:00
throw new NoSuchMetadataException(sprintf('No metadata for "%s"', $class));
}
return $this->metadatas[$class];
}
public function hasMetadataFor($class)
{
$hash = null;
if (is_object($class)) {
$hash = spl_object_hash($class);
$class = get_class($class);
}
if (!is_string($class)) {
return false;
}
return isset($this->metadatas[$class]) || isset($this->metadatas[$hash]);
}
public function addMetadata($metadata)
{
$this->metadatas[$metadata->getClassName()] = $metadata;
}
public function addMetadataForValue($value, MetadataInterface $metadata)
{
$key = is_object($value) ? spl_object_hash($value) : $value;
$this->metadatas[$key] = $metadata;
}
}