public function __construct(EntityTypeManagerInterface
$entity_type_manager, EntityRepositoryInterface
$entity_repository) { $this->entityTypeManager =
$entity_type_manager;
$this->entityRepository =
$entity_repository;
} /**
* {@inheritdoc}
*/
public function convert($value,
$definition,
$name, array
$defaults) { $entity_type_id =
$this->
getEntityTypeFromDefaults($definition,
$name,
$defaults);
$entity =
$this->entityTypeManager->
getStorage($entity_type_id)->
loadRevision($value);
// If the entity type is translatable, ensure we return the proper
// translation object for the current context.
if ($entity instanceof EntityInterface &&
$entity instanceof TranslatableInterface
) { $entity =
$this->entityRepository->
getTranslationFromContext($entity, NULL,
['operation' => 'entity_upcast'
]);
} return $entity;
}