You are here

protected function ElasticsearchViewsEntityField::getEntityFieldRenderer in Elasticsearch Connector 8.2

Same name and namespace in other branches
  1. 8.7 modules/elasticsearch_connector_views/src/Plugin/views/field/ElasticsearchViewsEntityField.php \Drupal\elasticsearch_connector_views\Plugin\views\field\ElasticsearchViewsEntityField::getEntityFieldRenderer()
  2. 8.5 modules/elasticsearch_connector_views/src/Plugin/views/field/ElasticsearchViewsEntityField.php \Drupal\elasticsearch_connector_views\Plugin\views\field\ElasticsearchViewsEntityField::getEntityFieldRenderer()
  3. 8.6 modules/elasticsearch_connector_views/src/Plugin/views/field/ElasticsearchViewsEntityField.php \Drupal\elasticsearch_connector_views\Plugin\views\field\ElasticsearchViewsEntityField::getEntityFieldRenderer()

Returns the entity field renderer.

Return value

\Drupal\views\Entity\Render\EntityFieldRenderer The entity field renderer.

Overrides EntityField::getEntityFieldRenderer

File

modules/elasticsearch_connector_views/src/Plugin/views/field/ElasticsearchViewsEntityField.php, line 215

Class

ElasticsearchViewsEntityField
Displays entity field data.

Namespace

Drupal\elasticsearch_connector_views\Plugin\views\field

Code

protected function getEntityFieldRenderer() {
  if (!isset($this->entityFieldRenderer)) {

    // This can be invoked during field handler initialization in which case
    // view fields are not set yet.
    if (!empty($this->view->field)) {
      foreach ($this->view->field as $field) {

        // An entity field renderer can handle only a single relationship.
        if (isset($field->entityFieldRenderer)) {
          if ($field->entityFieldRenderer instanceof EntityFieldRenderer && $field->entityFieldRenderer
            ->compatibleWithField($this)) {
            $this->entityFieldRenderer = $field->entityFieldRenderer;
            break;
          }
        }
      }
    }
    if (!isset($this->entityFieldRenderer)) {
      $entity_type = $this->entityManager
        ->getDefinition($this
        ->getEntityType());
      $this->entityFieldRenderer = new EntityFieldRenderer($this->view, $this->relationship, $this->languageManager, $entity_type, $this->entityManager);
      $this->entityFieldRenderer
        ->setDatasourceId($this
        ->getDatasourceId());
    }
  }
  return $this->entityFieldRenderer;
}