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\Validator\Mapping\Cache; Chris@0: Chris@0: use Doctrine\Common\Cache\Cache; Chris@0: use Symfony\Component\Validator\Mapping\ClassMetadata; Chris@0: Chris@0: /** Chris@0: * Adapts a Doctrine cache to a CacheInterface. Chris@0: * Chris@0: * @author Florian Voutzinos Chris@0: */ Chris@0: final class DoctrineCache implements CacheInterface Chris@0: { Chris@0: private $cache; Chris@0: Chris@0: public function __construct(Cache $cache) Chris@0: { Chris@0: $this->cache = $cache; Chris@0: } Chris@0: Chris@0: public function setCache(Cache $cache) Chris@0: { Chris@0: $this->cache = $cache; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function has($class) Chris@0: { Chris@0: return $this->cache->contains($class); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function read($class) Chris@0: { Chris@0: return $this->cache->fetch($class); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function write(ClassMetadata $metadata) Chris@0: { Chris@0: $this->cache->save($metadata->getClassName(), $metadata); Chris@0: } Chris@0: }