<?php
namespace Magento\Store\Model\StoreSwitcher\HashProcessor;

/**
 * Interceptor class for @see \Magento\Store\Model\StoreSwitcher\HashProcessor
 */
class Interceptor extends \Magento\Store\Model\StoreSwitcher\HashProcessor implements \Magento\Framework\Interception\InterceptorInterface
{
    use \Magento\Framework\Interception\Interceptor;

    public function __construct(\Magento\Framework\App\RequestInterface $request, \Magento\Store\Model\StoreSwitcher\RedirectDataPostprocessorInterface $postprocessor, \Magento\Store\Model\StoreSwitcher\RedirectDataSerializerInterface $dataSerializer, \Magento\Framework\Message\ManagerInterface $messageManager, \Magento\Store\Model\StoreSwitcher\ContextInterfaceFactory $contextFactory, \Magento\Store\Model\StoreSwitcher\RedirectDataInterfaceFactory $dataFactory, \Magento\Store\Model\StoreSwitcher\RedirectDataValidator $dataValidator, \Psr\Log\LoggerInterface $logger)
    {
        $this->___init();
        parent::__construct($request, $postprocessor, $dataSerializer, $messageManager, $contextFactory, $dataFactory, $dataValidator, $logger);
    }

    /**
     * {@inheritdoc}
     */
    public function switch(\Magento\Store\Api\Data\StoreInterface $fromStore, \Magento\Store\Api\Data\StoreInterface $targetStore, string $redirectUrl): string
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'switch');
        return $pluginInfo ? $this->___callPlugins('switch', func_get_args(), $pluginInfo) : parent::switch($fromStore, $targetStore, $redirectUrl);
    }
}
