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

    <parameters>
        <parameter key="debril.parser.rss.class">Debril\RssAtomBundle\Protocol\Parser\RssParser</parameter>
        <parameter key="debril.parser.xml.class">Debril\RssAtomBundle\Protocol\Parser\XmlParser</parameter>
        <parameter key="debril.parser.rdf.class">Debril\RssAtomBundle\Protocol\Parser\RdfParser</parameter>
        <parameter key="debril.parser.atom.class">Debril\RssAtomBundle\Protocol\Parser\AtomParser</parameter>
        <parameter key="debril.parser.factory.class">Debril\RssAtomBundle\Protocol\Parser\Factory</parameter>
        <parameter key="debril.parser.feed.class">Debril\RssAtomBundle\Protocol\Parser\FeedContent</parameter>
        <parameter key="debril.parser.item.class">Debril\RssAtomBundle\Protocol\Parser\Item</parameter>
        <parameter key="debril.reader.class">Debril\RssAtomBundle\Protocol\FeedReader</parameter>
        <parameter key="debril.formatter.rss.class">Debril\RssAtomBundle\Protocol\Formatter\FeedRssFormatter</parameter>
        <parameter key="debril.formatter.atom.class">Debril\RssAtomBundle\Protocol\Formatter\FeedAtomFormatter</parameter>
        <parameter key="debril.http.curl.class">Debril\RssAtomBundle\Driver\HttpCurlDriver</parameter>
        <parameter key="debril.http.guzzle_bridge.class">Debril\RssAtomBundle\Driver\GuzzleBridgeDriver</parameter>
        <parameter key="debril.file.class">Debril\RssAtomBundle\Driver\FileDriver</parameter>
        <parameter key="debril.provider.mock.class">Debril\RssAtomBundle\Provider\MockProvider</parameter>
        <parameter key="debril.provider.default.class">Debril\RssAtomBundle\Provider\MockProvider</parameter>
        <parameter key="debril.provider.doctrine.class">Debril\RssAtomBundle\Provider\DoctrineFeedContentProvider</parameter>
    </parameters>
    <services>
        <service id="debril.parser.rss" class="%debril.parser.rss.class%">
            <call method="setDateFormats">
                <argument>%debril_rss_atom.date_formats%</argument>
            </call>
        </service>
        <service id="debril.parser.rdf" class="%debril.parser.rdf.class%">
            <call method="setDateFormats">
                <argument>%debril_rss_atom.date_formats%</argument>
            </call>
        </service>
        <service id="debril.parser.atom" class="%debril.parser.atom.class%">
            <call method="setDateFormats">
                <argument>%debril_rss_atom.date_formats%</argument>
            </call>
        </service>

        <service id="debril.parser.xml" class="%debril.parser.xml.class%" />

        <service id="debril.http.curl" class="%debril.http.curl.class%">
            <argument>%debril_rss_atom.curlopt%</argument>
        </service>    
        <service id="debril.http.guzzle_bridge" class="%debril.http.guzzle_bridge.class%" />
        <service id="debril.file" class="%debril.file.class%" />

        <service id="debril.parser.factory" class="%debril.parser.factory.class%">
            <call method="setFeedClass">
                <argument>%debril.parser.feed.class%</argument>
            </call>
            <call method="setItemClass">
                <argument>%debril.parser.item.class%</argument>
            </call>
        </service>

        <service id="debril.reader" class="%debril.reader.class%">
            <argument type="service" id="debril.http.curl"/><!-- ID may be changed by Extension -->
            <argument type="service" id="debril.parser.factory"/>
            <argument type="service" id="debril.parser.xml"/>
            <call method="addParser">
                <argument type="service" id="debril.parser.rss" />
            </call>
            <call method="addParser">
                <argument type="service" id="debril.parser.rdf" />
            </call>
            <call method="addParser">
                <argument type="service" id="debril.parser.atom" />
            </call>
        </service>

        <service id="debril.formatter.atom" class="%debril.formatter.atom.class%"  />
        <service id="debril.formatter.rss" class="%debril.formatter.rss.class%" />

        <service id="debril.provider.default" class="%debril.provider.default.class%" />
        <service id="debril.provider.mock" class="%debril.provider.mock.class%" />

    </services>
</container>
