Files
chill-bundles/src/Bundle/ChillPersonBundle/PersonIdentifier/Rendering/PersonIdentifierEntityRender.php

42 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
/*
* Chill is a software for social workers
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*/
namespace Chill\PersonBundle\PersonIdentifier\Rendering;
use Chill\MainBundle\Templating\Entity\ChillEntityRenderInterface;
use Chill\PersonBundle\Entity\Identifier\PersonIdentifier;
use Chill\PersonBundle\PersonIdentifier\PersonIdentifierManagerInterface;
/**
* @template-implements ChillEntityRenderInterface<PersonIdentifier>
*/
final readonly class PersonIdentifierEntityRender implements ChillEntityRenderInterface
{
public function __construct(private PersonIdentifierManagerInterface $identifierManager) {}
public function renderBox(mixed $entity, array $options): string
{
return $this->renderString($entity, $options);
}
public function renderString(mixed $entity, array $options): string
{
$worker = $this->identifierManager->buildWorkerByPersonIdentifierDefinition($entity->getDefinition());
return $worker->renderAsString($entity);
}
public function supports(object $entity, array $options): bool
{
return $entity instanceof PersonIdentifier;
}
}