<?php

namespace Webkul\WebkulCsvImportBundle\Datasource;

use Webkul\WebkulCsvImportBundle\Repository\TemplateConfigurationRepository;

$classLoader = new \Webkul\WebkulCsvImportBundle\Listener\ClassDefinationForCompatibility();
$classLoader->customLoaderSystem();

class TemplateDatasource extends \Datasource
{
    /** @var TemplateConfigurationRepository */
    protected $repository;

    /** @var CustomObjectIdHydrator */
    protected $hydrator;

    /** @var array */
    protected $parameters = [];

    /**
     * @param TemplateConfigurationRepository $om
     * @param \HydratorInterface          $hydrator
     */
    public function __construct(TemplateConfigurationRepository $repository, \HydratorInterface $hydrator)
    {
        $this->repository = $repository;
        $this->hydrator = $hydrator;
    }

    /**
     * @param string $method the query builder creation method
     * @param array  $config the query builder creation config
     *
     * @return Datasource
     */
    protected function initializeQueryBuilder($method, array $config = [])
    {
        $this->qb = $this->repository->$method('wem');
        
        return $this;
    }

    /**
     * {@inheritdoc}
     */
    public function getResults()
    {
        return $this->hydrator->hydrate($this->qb);
    }
}
