<?php
namespace Smartwave\Megamenu\Block\Topmenu;

/**
 * Interceptor class for @see \Smartwave\Megamenu\Block\Topmenu
 */
class Interceptor extends \Smartwave\Megamenu\Block\Topmenu implements \Magento\Framework\Interception\InterceptorInterface
{
    use \Magento\Framework\Interception\Interceptor;

    public function __construct(\Magento\Framework\View\Element\Template\Context $context, \Magento\Catalog\Helper\Category $categoryHelper, \Smartwave\Megamenu\Helper\Data $helper, \Magento\Catalog\Model\Indexer\Category\Flat\State $categoryFlatState, \Magento\Catalog\Model\CategoryFactory $categoryFactory, \Magento\Theme\Block\Html\Topmenu $topMenu, \Magento\Cms\Model\Template\FilterProvider $filterProvider, \Magento\Cms\Model\BlockFactory $blockFactory)
    {
        $this->___init();
        parent::__construct($context, $categoryHelper, $helper, $categoryFlatState, $categoryFactory, $topMenu, $filterProvider, $blockFactory);
    }

    /**
     * {@inheritdoc}
     */
    public function getHtml($outermostClass = '', $childrenWrapClass = '', $limit = 0)
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getHtml');
        return $pluginInfo ? $this->___callPlugins('getHtml', func_get_args(), $pluginInfo) : parent::getHtml($outermostClass, $childrenWrapClass, $limit);
    }

    /**
     * {@inheritdoc}
     */
    public function getMegamenuHtml()
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getMegamenuHtml');
        return $pluginInfo ? $this->___callPlugins('getMegamenuHtml', func_get_args(), $pluginInfo) : parent::getMegamenuHtml();
    }

    /**
     * {@inheritdoc}
     */
    public function fetchView($fileName)
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'fetchView');
        return $pluginInfo ? $this->___callPlugins('fetchView', func_get_args(), $pluginInfo) : parent::fetchView($fileName);
    }

    /**
     * {@inheritdoc}
     */
    public function toHtml()
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'toHtml');
        return $pluginInfo ? $this->___callPlugins('toHtml', func_get_args(), $pluginInfo) : parent::toHtml();
    }
}
