<?php

namespace Lc\SovBundle\Container;

use Lc\SovBundle\Component\ArrayComponent;
use Lc\SovBundle\Component\CitiesComponent;
use Lc\SovBundle\Component\CookieComponent;
use Lc\SovBundle\Component\DateComponent;
use Lc\SovBundle\Component\EntityComponent;
use Lc\SovBundle\Component\FileComponent;
use Lc\SovBundle\Component\FormComponent;
use Lc\SovBundle\Component\MetaComponent;
use Lc\SovBundle\Component\NumberComponent;
use Lc\SovBundle\Component\PointLocationComponent;
use Lc\SovBundle\Component\StringComponent;

class ComponentContainer
{
    protected CitiesComponent $citiesComponent;
    protected CookieComponent $cookieComponent;
    protected DateComponent $dateComponent;
    protected EntityComponent $entityComponent;
    protected FileComponent $fileComponent;
    protected FormComponent $formComponent;
    protected MetaComponent $metaComponent;
    protected NumberComponent $numberComponent;
    protected PointLocationComponent $pointLocationComponent;
    protected StringComponent $stringComponent;
    protected ArrayComponent $arrayComponent;

    public function __construct(
            CitiesComponent $citiesComponent,
            CookieComponent $cookieComponent,
            DateComponent $dateComponent,
            EntityComponent $entityComponent,
            FileComponent $fileComponent,
            FormComponent $formComponent,
            MetaComponent $metaComponent,
            NumberComponent $numberComponent,
            PointLocationComponent $pointLocationComponent,
            StringComponent $stringComponent,
            ArrayComponent $arrayComponent
    ) {
        $this->citiesComponent = $citiesComponent;
        $this->cookieComponent = $cookieComponent;
        $this->dateComponent = $dateComponent;
        $this->entityComponent = $entityComponent;
        $this->fileComponent = $fileComponent;
        $this->formComponent = $formComponent;
        $this->metaComponent = $metaComponent;
        $this->numberComponent = $numberComponent;
        $this->pointLocationComponent = $pointLocationComponent;
        $this->stringComponent = $stringComponent;
        $this->arrayComponent = $arrayComponent;
    }

    public function getCitiesComponent(): CitiesComponent
    {
        return $this->citiesComponent;
    }

    public function getCookieComponent(): CookieComponent
    {
        return $this->cookieComponent;
    }

    public function getDateComponent(): DateComponent
    {
        return $this->dateComponent;
    }

    public function getEntityComponent(): EntityComponent
    {
        return $this->entityComponent;
    }

    public function getFileComponent(): FileComponent
    {
        return $this->fileComponent;
    }

    public function getFormComponent(): FormComponent
    {
        return $this->formComponent;
    }

    public function getMetaComponent(): MetaComponent
    {
        return $this->metaComponent;
    }

    public function getNumberComponent(): NumberComponent
    {
        return $this->numberComponent;
    }

    public function getPointLocationComponent(): PointLocationComponent
    {
        return $this->pointLocationComponent;
    }

    public function getStringComponent(): StringComponent
    {
        return $this->stringComponent;
    }

    public function getArrayComponent(): ArrayComponent
    {
        return $this->arrayComponent;
    }
}