ifthenelse-8.x-1.x-dev-no-core/modules/contrib/default_content/src/Normalizer/TermEntityNormalizer.php
modules/contrib/default_content/src/Normalizer/TermEntityNormalizer.php
<?php
namespace Drupal\default_content\Normalizer;
use Drupal\hal\Normalizer\ContentEntityNormalizer;
/**
* Defines a class for normalizing terms to ensure parent is stored.
*/
class TermEntityNormalizer extends ContentEntityNormalizer {
/**
* {@inheritdoc}
*/
protected $supportedInterfaceOrClass = 'Drupal\taxonomy\TermInterface';
/**
* The taxonomy term storage.
*
* @var \Drupal\taxonomy\TermStorageInterface
*/
protected $termStorage;
/**
* {@inheritdoc}
*/
public function normalize($entity, $format = NULL, array $context = []) {
if ($parents = $this->getTermStorage()->loadParents($entity->id())) {
$entity->parent->setValue(array_keys($parents));
}
return parent::normalize($entity, $format, $context);
}
/**
* Returns taxonomy term storage.
*
* Prevents circular reference when used with multiversion.
*
* @return \Drupal\taxonomy\TermStorageInterface
* The taxonomy term storage.
*/
protected function getTermStorage() {
if (!$this->termStorage) {
$this->termStorage = $this->entityManager->getStorage('taxonomy_term');
}
return $this->termStorage;
}
}
