code: protected function loadForeignObject()
      {
          if ($this->_isLoadingForeignObject) {
              throw new RecursionException('Ran into recursion while loading foreign object');
          }
          $this->_isLoadingForeignObject = true;
          if (isset($this->foreignPrimaryKey)) {
              $foreignObject = $this->dataSource->getForeignDataModel($this->foreignPrimaryKey);
              if ($foreignObject) {
                  $this->foreignObject = $foreignObject;
              }
          }
          if (empty($this->_foreignObject)) {
              \d($this->foreignPrimaryKey);
              \d($this->dataSource->name);
              throw new MissingItemException('Foreign item could not be found: ' . $this->foreignPrimaryKey);
          }
          $this->_isLoadingForeignObject = false;
      }
docs: Retrieve the foreign object.
  
  @throws RecursionException   when an object load is attempted when it is already being loaded above the call
  @throws MissingItemException when the item can't be found in the foreign data source