<?xml version="1.0" encoding="UTF-8" ?>

<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <services>

        <!-- file locator -->
        <service id="vich_uploader.metadata.file_locator" class="Metadata\Driver\FileLocator" public="false">
            <argument type="collection" /><!-- namespace prefixes mapping to directories, injected by extension -->
        </service>

        <!-- reader -->
        <service id="vich_uploader.metadata.attribute_reader" class="Vich\UploaderBundle\Metadata\Driver\AttributeReader" public="false" />

        <!-- drivers -->
        <service id="vich_uploader.metadata_driver.annotation" class="Vich\UploaderBundle\Metadata\Driver\AnnotationDriver" public="false">
            <argument key="$reader" type="service" id="vich_uploader.metadata.reader" />
            <argument key="$managerRegistryList" /> <!-- replaced by compiler pass -->
        </service>

        <service id="vich_uploader.metadata_driver.xml" class="Vich\UploaderBundle\Metadata\Driver\XmlDriver" public="false">
            <argument type="service" id="vich_uploader.metadata.file_locator" />
        </service>

        <service id="vich_uploader.metadata_driver.yml" class="Vich\UploaderBundle\Metadata\Driver\YmlDriver" public="false">
            <argument type="service" id="vich_uploader.metadata.file_locator" />
        </service>

        <service id="vich_uploader.metadata_driver.yaml" class="Vich\UploaderBundle\Metadata\Driver\YamlDriver" public="false">
            <argument type="service" id="vich_uploader.metadata.file_locator" />
        </service>

        <service id="vich_uploader.metadata_driver.chain" class="Metadata\Driver\DriverChain" public="false">
            <argument /> <!-- injected by compiler pass -->
        </service>

        <service id="vich_uploader.metadata_driver" alias="vich_uploader.metadata_driver.chain" public="false" />

        <!-- metadata services -->
        <service id="vich_uploader.metadata.cache.file_cache" class="Metadata\Cache\FileCache" public="false">
            <argument /><!-- cache directory, injected by extension -->
        </service>
        <service id="vich_uploader.metadata.cache" alias="vich_uploader.metadata.cache.file_cache" public="false" />

        <service id="vich_uploader.metadata_factory" class="Metadata\MetadataFactory" public="false">
            <argument type="service" id="vich_uploader.metadata_driver" />
            <argument>Metadata\ClassHierarchyMetadata</argument>
            <argument>%kernel.debug%</argument>
            <call method="setCache">
                <argument type="service" id="vich_uploader.metadata.cache" on-invalid="ignore" />
            </call>
        </service>

        <service id="vich_uploader.metadata_reader" class="Vich\UploaderBundle\Metadata\MetadataReader" public="false">
            <argument type="service" id="vich_uploader.metadata_factory" />
        </service>

        <!-- cache warmer -->
        <service id="Vich\UploaderBundle\Metadata\CacheWarmer" public="false">
            <argument /><!-- cache directory, injected by extension -->
            <argument type="service" id="vich_uploader.metadata_reader"/>
            <tag name="kernel.cache_warmer"/>
        </service>

    </services>

</container>
