stateCollection = $stateCollection; $isCacheExists = $cache->test($cacheId); parent::__construct($reader, $cache, $cacheId, $serializer); if (!$isCacheExists) { $this->deleteNonexistentStates(); } } /** * Delete all states that are not in configuration * * @return void */ protected function deleteNonexistentStates() { foreach ($this->stateCollection->getItems() as $state) { /** @var \Magento\Indexer\Model\Indexer\State $state */ if (!isset($this->_data[$state->getIndexerId()])) { $state->delete(); } } } }