<?xml version="1.0" ?>

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

        <service
            id="addiks_rdm.data_loader"
            class="Addiks\RDMBundle\DataLoader\DataLoaderInterface"
            public="true"
        >
            <factory service="addiks_rdm.data_loader.factory" method="createDataLoader" />
        </service>

        <service id="addiks_rdm.data_loader.factory" class="Addiks\RDMBundle\DataLoader\ChoosingDataLoaderFactory">
            <argument type="service" id="service_container" />
            <argument type="collection">
                <argument key="slow-and-stable">addiks_rdm.data_loader.simple</argument>
                <argument key="fast-and-unstable">addiks_rdm.data_loader.black_magic</argument>
            </argument>
            <argument>addiks_rdm.data_loader.stability</argument>
            <argument>addiks_rdm.data_loader.simple</argument>
            <argument>doctrine.orm.entity_manager</argument>
        </service>

        <service
            id="addiks_rdm.data_loader.simple"
            class="Addiks\RDMBundle\DataLoader\SimpleSelectDataLoader"
            public="true"
        >
            <argument type="service" id="addiks_rdm.mapping.driver" />
        </service>

        <service
            id="addiks_rdm.data_loader.black_magic"
            class="Addiks\RDMBundle\DataLoader\BlackMagic\BlackMagicDataLoader"
            public="true"
        >
            <argument type="service" id="addiks_rdm.mapping.driver" />
        </service>

    </services>
</container>
