<?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>

        <!-- doctrine listeners -->
        <service id="vich_uploader.listener.doctrine.base" abstract="true" public="false">
            <argument /> <!-- will contain the mapping name -->
            <argument /> <!-- adapter -->
            <argument type="service" id="vich_uploader.metadata_reader" />
            <argument type="service" id="vich_uploader.upload_handler" />
        </service>

        <service id="vich_uploader.listener.inject.orm" class="Vich\UploaderBundle\EventListener\Doctrine\InjectListener" parent="vich_uploader.listener.doctrine.base" />
        <service id="vich_uploader.listener.upload.orm" class="Vich\UploaderBundle\EventListener\Doctrine\UploadListener" parent="vich_uploader.listener.doctrine.base" />
        <service id="vich_uploader.listener.clean.orm" class="Vich\UploaderBundle\EventListener\Doctrine\CleanListener" parent="vich_uploader.listener.doctrine.base" />
        <service id="vich_uploader.listener.remove.orm" class="Vich\UploaderBundle\EventListener\Doctrine\RemoveListener" parent="vich_uploader.listener.doctrine.base" />

        <service id="vich_uploader.listener.inject.mongodb" parent="vich_uploader.listener.inject.orm" />
        <service id="vich_uploader.listener.upload.mongodb" parent="vich_uploader.listener.upload.orm" />
        <service id="vich_uploader.listener.clean.mongodb" parent="vich_uploader.listener.clean.orm" />
        <service id="vich_uploader.listener.remove.mongodb" parent="vich_uploader.listener.remove.orm" />

        <service id="vich_uploader.listener.inject.phpcr" parent="vich_uploader.listener.inject.orm" />
        <service id="vich_uploader.listener.upload.phpcr" parent="vich_uploader.listener.upload.orm" />
        <service id="vich_uploader.listener.clean.phpcr" parent="vich_uploader.listener.clean.orm" />
        <service id="vich_uploader.listener.remove.phpcr" parent="vich_uploader.listener.remove.orm" />

    </services>

</container>
