open-orchestra/open-orchestra-front-bundle

View on GitHub
FrontBundle/Routing/Database/Transformer/RouteDocumentCollectionToRouteCollectionTransformer.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace OpenOrchestra\FrontBundle\Routing\Database\Transformer;

use Doctrine\Common\Collections\Collection;
use OpenOrchestra\ModelInterface\Model\RouteDocumentInterface;
use Symfony\Component\Routing\RouteCollection;

/**
 * Class RouteDocumentCollectionToRouteCollectionTransformer
 */
class RouteDocumentCollectionToRouteCollectionTransformer
{
    protected $routeTransformer;

    /**
     * @param RouteDocumentToValueObjectTransformer $routeTransformer
     */
    public function __construct(RouteDocumentToValueObjectTransformer $routeTransformer)
    {
        $this->routeTransformer = $routeTransformer;
    }

    /**
     * @param array|Collection $routeDocuments
     *
     * @return RouteCollection
     */
    public function transform($routeDocuments)
    {
        $routeCollection = new RouteCollection();

        /** @var RouteDocumentInterface $routeDocument */
        foreach ($routeDocuments as $routeDocument) {
            $routeCollection->add($routeDocument->getName(), $this->routeTransformer->transform($routeDocument));
        }

        return $routeCollection;
    }
}