<?php
namespace Litespeed\Litemage\Helper\Data;

/**
 * Interceptor class for @see \Litespeed\Litemage\Helper\Data
 */
class Interceptor extends \Litespeed\Litemage\Helper\Data implements \Magento\Framework\Interception\InterceptorInterface
{
    use \Magento\Framework\Interception\Interceptor;

    public function __construct(\Magento\Framework\App\Helper\Context $context, \Litespeed\Litemage\Model\Config $config, \Litespeed\Litemage\Logger\Logger $logger)
    {
        $this->___init();
        parent::__construct($context, $config, $logger);
    }

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

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

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

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

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

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

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

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

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

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