book = $book; return $this; } final public function getBook() { return $this->book; } protected function newAtom($type) { return id(new DivinerAtom()) ->setBook($this->getBook()) ->setType($type); } protected function newRef($type, $name, $book = null, $context = null) { $book = coalesce($book, $this->getBook()); return id(new DivinerAtomRef()) ->setBook($book) ->setContext($context) ->setType($type) ->setName($name); } }