private function referenceWake() {
    if (!$this->isASleepingReference) {
      return true;
    }
    if (!class_exists($this->sleepingReference[2])) {
      throw new Exceptions\EntityClassNotFoundException(
          "Tried to wake sleeping reference entity that refers to a class ".
          "that can't be found, {$this->sleepingReference[2]}."
      );
    }
    $entity = Nymph::getEntity(
        ['class' => $this->sleepingReference[2], 'skip_ac' => $this->useSkipAc],
        ['&', 'guid' => $this->sleepingReference[1]]
    );
    if (!isset($entity)) {
      return false;
    }
    $this->isASleepingReference = false;
    $this->sleepingReference = null;
    $this->guid = $entity->guid;
    $this->tags = $entity->tags;
    $this->cdate = $entity->cdate;
    $this->mdate = $entity->mdate;
    $this->putData($entity->getData(), $entity->getSData());
    return true;
  }