helper = $helper; parent::__construct($objectFactory, $filterGroupBuilder, $sortOrderBuilder); } /** * @param $attributeCode * * @return $this */ public function removeFilter($attributeCode) { $this->filterGroupBuilder->removeFilter($attributeCode); return $this; } /** * @return SearchCriteriaBuilder */ public function cloneObject() { $cloneObject = clone $this; $cloneObject->setFilterGroupBuilder($this->filterGroupBuilder->cloneObject()); return $cloneObject; } /** * @param $filterGroupBuilder */ public function setFilterGroupBuilder($filterGroupBuilder) { $this->filterGroupBuilder = $filterGroupBuilder; } /** * Return the Data type class name * * @return string */ protected function _getDataObjectType() { return 'Magento\Framework\Api\Search\SearchCriteria'; } /** * Builds the SearchCriteria Data Object * * @return SearchCriteria */ public function create() { if ($this->helper->versionCompare('2.2.0')) { $this->data[SearchCriteria::FILTER_GROUPS] = [$this->filterGroupBuilder->create()]; $this->data[SearchCriteria::SORT_ORDERS] = [$this->sortOrderBuilder->create()]; } return parent::create(); } /** * Create a filter group based on the filter array provided and add to the filter groups * * @param \Magento\Framework\Api\Filter $filter * @return $this */ public function addFilter(\Magento\Framework\Api\Filter $filter) { $this->filterGroupBuilder->addFilter($filter); return $this; } }