/**
  * retrieve rating options
  *
  * @return array
  */
 public function getOptions()
 {
     $options = $this->getData('options');
     if ($options) {
         return $options;
     } elseif ($this->getId()) {
         return $this->_ratingCollectionF->create()->addRatingFilter($this->getId())->setPositionOrder()->load()->getItems();
     }
     return [];
 }
 /**
  * Add options to ratings in collection
  *
  * @return $this
  */
 public function addOptionToItems()
 {
     $arrRatingId = $this->getColumnValues('rating_id');
     if (!empty($arrRatingId)) {
         /** @var \Magento\Review\Model\ResourceModel\Rating\Option\Collection $collection */
         $collection = $this->_ratingCollectionF->create()->addRatingFilter($arrRatingId)->setPositionOrder()->load();
         foreach ($this as $rating) {
             $rating->setOptions($collection->getItemsByColumnValue('rating_id', $rating->getId()));
         }
     }
     return $this;
 }
 /**
  * Add rating options
  *
  * @return $this
  */
 public function addRatingOptions()
 {
     if (!$this->getSize()) {
         return $this;
     }
     foreach ($this->getItems() as $item) {
         /** @var \Magento\Review\Model\ResourceModel\Rating\Option\Collection $options */
         $options = $this->_ratingCollectionF->create();
         $options->addRatingFilter($item->getRatingId())->load();
         if ($item->getRatingId()) {
             $item->setRatingOptions($options);
         } else {
             return $this;
         }
     }
     return $this;
 }