<?php
namespace Amasty\Sorting\Helper\Data;

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

    public function __construct(\Amasty\Base\Model\Serializer $serializer, \Magento\Framework\App\Helper\Context $context, \Amasty\Sorting\Model\Elasticsearch\IsElasticSort $isElasticSort)
    {
        $this->___init();
        parent::__construct($serializer, $context, $isElasticSort);
    }

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

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

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

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

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

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

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

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

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

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

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

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

    /**
     * {@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);
    }
}
