/** * @inheritdoc */ public function join(FQN $join) { $result = new self($join->getLast()); $resultParts = $this->getParts(); $joiningParts = $join->getParts(); if ($this->getLast() === $join->getFirst()) { array_shift($joiningParts); } $result->setParts(array_merge($resultParts, $joiningParts)); return $result; }