1<?php
2
3declare(strict_types=1);
4
5namespace Metadata\Driver;
6
7use Metadata\ClassMetadata;
8use Symfony\Component\DependencyInjection\ContainerInterface;
9
10class LazyLoadingDriver implements DriverInterface
11{
12    /**
13     * @var ContainerInterface
14     */
15    private $container;
16
17    /**
18     * @var string
19     */
20    private $realDriverId;
21
22    public function __construct(ContainerInterface $container, string $realDriverId)
23    {
24        $this->container = $container;
25        $this->realDriverId = $realDriverId;
26    }
27
28    /**
29     * {@inheritDoc}
30     */
31    public function loadMetadataForClass(\ReflectionClass $class): ?ClassMetadata
32    {
33        return $this->container->get($this->realDriverId)->loadMetadataForClass($class);
34    }
35}
36