<!--
  ~ This file is part of the Alice package.
  ~
  ~ (c) Nelmio <hello@nelm.io>
  ~
  ~ For the full copyright and license information, please view the LICENSE
  ~ file that was distributed with this source code.
  -->

<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="nelmio_alice.generator.resolver.parameter_bag"
                 alias="nelmio_alice.generator.resolver.parameter_bag.remove_conflicting_parameters" />

        <service id="nelmio_alice.generator.resolver.parameter_bag.remove_conflicting_parameters"
                 class="Nelmio\Alice\Generator\Resolver\Parameter\RemoveConflictingParametersParameterBagResolver">
            <argument type="service" id="nelmio_alice.generator.resolver.parameter_bag.simple" />
        </service>

        <service id="nelmio_alice.generator.resolver.parameter_bag.simple"
                 class="Nelmio\Alice\Generator\Resolver\Parameter\SimpleParameterBagResolver">
            <argument type="service" id="nelmio_alice.generator.resolver.parameter.registry" />
        </service>

        <service id="nelmio_alice.generator.resolver.parameter.registry"
                 class="Nelmio\Alice\Generator\Resolver\Parameter\ParameterResolverRegistry">
            <!-- Injected via a compiler pass -->
        </service>


        <!-- Chainables -->
        <service id="nelmio_alice.generator.resolver.parameter.chainable.static_parameter_resolver"
                 class="Nelmio\Alice\Generator\Resolver\Parameter\Chainable\StaticParameterResolver">
            <tag name="nelmio_alice.generator.resolver.parameter.chainable_resolver" />
        </service>

        <service id="nelmio_alice.generator.resolver.parameter.chainable.array_parameter_resolver"
                 class="Nelmio\Alice\Generator\Resolver\Parameter\Chainable\ArrayParameterResolver">
            <tag name="nelmio_alice.generator.resolver.parameter.chainable_resolver" />
        </service>

        <service id="nelmio_alice.generator.resolver.parameter.chainable.recursive_parameter_resolver"
                 class="Nelmio\Alice\Generator\Resolver\Parameter\Chainable\RecursiveParameterResolver">
            <argument type="service" id="nelmio_alice.generator.resolver.parameter.chainable.string_parameter_resolver" />
            <argument>%nelmio_alice.loading_limit%</argument>

            <tag name="nelmio_alice.generator.resolver.parameter.chainable_resolver" />
        </service>

        <service id="nelmio_alice.generator.resolver.parameter.chainable.string_parameter_resolver"
                 class="Nelmio\Alice\Generator\Resolver\Parameter\Chainable\StringParameterResolver" />

    </services>

</container>
