You are here

public function RendererFactory::create in Entity Print 8.2

Same name and namespace in other branches
  1. 8 src/Renderer/RendererFactory.php \Drupal\entity_print\Renderer\RendererFactory::create()

Create a new entity renderer.

Parameters

mixed $item: The item we require a renderer for.

string $context: The type, currently supports entities but could change in the future.

Return value

\Drupal\entity_print\Renderer\RendererInterface The constructed renderer.

Overrides RendererFactoryInterface::create

File

src/Renderer/RendererFactory.php, line 19

Class

RendererFactory
The RendererFactory class.

Namespace

Drupal\entity_print\Renderer

Code

public function create($item, $context = 'entity') {
  $entity_type_manager = $this->container
    ->get('entity_type.manager');

  // If we get an array or something, just look at the first one.
  if (is_array($item)) {
    $item = array_pop($item);
  }
  if ($item instanceof EntityInterface && $entity_type_manager
    ->hasHandler($item
    ->getEntityTypeId(), 'entity_print')) {
    return $entity_type_manager
      ->getHandler($item
      ->getEntityTypeId(), 'entity_print');
  }
  throw new PrintEngineException(sprintf('Rendering not yet supported for "%s". Entity Print context "%s"', is_object($item) ? get_class($item) : $item, $context));
}