/** * Returns the inverse equivalent of a given relationship * * @param Relationship $relationship * @return Relationship */ public function invertRelationship(Relationship $relationship) { if (!$relationship->getInversedBy()) { throw new InvalidArgumentException('Relationship "' . $relationship->getName() . '" is not inversed'); } $metadata = $this->getMapper()->getEntityMetadata($relationship->getTarget()); $inverse = $metadata->getRelationshipByName($relationship->getInversedBy()); if (!$inverse) { throw new InvalidEntityException('Relationship "' . $relationship->getName() . '" inverse side "' . $relationship->getInversedBy() . '" cannot be not found'); } return $inverse; }