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);
 }