/**
  * @param RelationshipsInterface $relationships
  * @param $record
  */
 protected function hydrateRelationships(RelationshipsInterface $relationships, $record)
 {
     /** @var RelationshipInterface $relationship */
     foreach ($relationships->getAll() as $key => $relationship) {
         $this->callHydrateRelationship($key, $relationship, $record);
     }
 }
 /**
  * @param $key
  * @param RelationshipsInterface $relationships
  * @param ResourceInterface $resource
  * @param object|null $record
  * @return bool
  */
 protected function validateRelationship($key, RelationshipsInterface $relationships, ResourceInterface $resource, $record = null)
 {
     if (!is_object($relationships->get($key))) {
         $this->addError($this->errorFactory->memberObjectExpected($key, P::relationship($key)));
         return false;
     }
     $validator = $this->get($key);
     $relationship = $relationships->getRelationship($key);
     if (!$validator->isValid($relationship, $record, $key, $resource)) {
         $this->addErrors($validator->getErrors());
         return false;
     }
     return true;
 }
 /**
  * @inheritdoc
  */
 protected function hydrateRelationships(RelationshipsInterface $relationships, $record)
 {
     /** @var RelationshipInterface $relationship */
     foreach ($relationships->getAll() as $key => $relationship) {
         /** If there is a specific method for this relationship, we'll hydrate that */
         if ($this->callHydrateRelationship($key, $relationship, $record)) {
             continue;
         }
         /** If this is a has-one, we'll hydrate it. */
         if ($relationship->isHasOne()) {
             $this->hydrateHasOne($key, $relationship, $record);
         }
     }
 }