sites_group_overrides-1.x-dev/src/Plugin/DataType/EntityAdapter.php
src/Plugin/DataType/EntityAdapter.php
<?php
namespace Drupal\sites_group_overrides\Plugin\DataType;
use Drupal\Core\Entity\Plugin\DataType\EntityAdapter as EntityAdapterCore;
use Drupal\sites_group_overrides\SitesGroupOverridesServiceInterface;
/**
* Defines the "entity" data type.
*/
class EntityAdapter extends EntityAdapterCore {
/**
* The sites group overides service.
*
* @var SitesGroupOverridesServiceInterface
*/
protected SitesGroupOverridesServiceInterface $sitesGroupOverrideService;
/**
* {@inheritdoc}
*/
public function getValue() {
if ($this->entity && !$this->entity->isSyncing() && $this->getSitesGroupOverrideService()->entityIsOveridable($this->entity) && $group_relationship = $this->getSitesGroupOverrideService()->getRelationship($this->entity)) {
$this->entity = $this->getSitesGroupOverrideService()->syncFieldsToEntity($group_relationship, $this->entity);
}
return parent::getValue();
}
/**
* Get the ites_group_overrides.service
*
* @return SitesGroupOverridesServiceInterface
*/
protected function getSitesGroupOverrideService(): SitesGroupOverridesServiceInterface {
if (!isset($this->sitesGroupOverrideService)) {
$this->sitesGroupOverrideService = \Drupal::service('sites_group_overrides.service');
}
return $this->sitesGroupOverrideService;
}
}
