<?php declare(strict_types=1);

namespace App\Sitemap;

abstract class SitemapSubscriber implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
{

    public const string DEFAULT_SECTION = 'default';

    /**
     * @inheritdoc
     */
    public static function getSubscribedEvents(): array
    {
        return [
            \Presta\SitemapBundle\Event\SitemapPopulateEvent::class => 'populate',
        ];
    }

    public function populate(\Presta\SitemapBundle\Event\SitemapPopulateEvent $event): void
    {
        $this->registerUrls($event->getUrlContainer(), $event->getUrlGenerator());
    }

    abstract public function registerUrls(\Presta\SitemapBundle\Service\UrlContainerInterface $urls, \Symfony\Component\Routing\Generator\UrlGeneratorInterface $router): void;

}