protected function handleKeyword() { $keyword = new Keyword(); $keyword->setKeyword($this->currentCdata); $currentObject = end($this->stack); if ($currentObject instanceof BasicRecord) { // Associate this keyword object with the current Record->BaiscRecord object $currentObject->addKeyword($keyword); $keyword->addReferenceBasicRecord($currentObject); $this->logger->trace('In method ' . __METHOD__ . '. Associating keyword ' . $keyword . ' with basicrecord ' . $currentObject); } elseif ($currentObject instanceof File) { // Associate this keyword object with the current File object $currentObject->addKeyword($keyword); // $keyword->addReferenceFile($this->currentFile); $this->logger->trace('In method ' . __METHOD__ . '. Associating keyword ' . $keyword . ' with File ' . $currentObject); } elseif ($currentObject instanceof Klass) { // Associate this keyword object with the current Klass object $currentObject->addKeyword($keyword); $keyword->addReferenceClass($currentObject); $this->logger->trace('In method ' . __METHOD__ . '. Associating keyword ' . $keyword . ' with class ' . $currentObject); } else { throw new Exception(Constants::STACK_ERROR . __METHOD__ . ". Found a keyword associated with a " . get_class(end($this->stack)) . " object but according to n5 standard, this object cannot be associated with a keyword"); } $this->entityManager->persist($keyword); $this->entityManager->flush(); $this->logger->trace('Merging updated keyword to database. Method (' . __METHOD__ . ')' . $keyword); }