You are here

class MappingLoader in GatherContent 8.5

Same name and namespace in other branches
  1. 8.4 src/MappingLoader.php \Drupal\gathercontent\MappingLoader

A static class to return and cache mapping entities.

Hierarchy

Expanded class hierarchy of MappingLoader

2 files declare their use of MappingLoader
ContentImportSelectForm.php in gathercontent_ui/src/Form/ContentImportSelectForm.php
GatherContentUploadTestBase.php in gathercontent_upload/tests/src/Kernel/GatherContentUploadTestBase.php

File

src/MappingLoader.php, line 11

Namespace

Drupal\gathercontent
View source
class MappingLoader {

  /**
   * Mappings.
   *
   * @var array
   */
  protected static $mappings = [];

  /**
   * Cache mappings when loading them.
   */
  public static function load(Item $gcItem) {
    if (!isset(static::$mappings[$gcItem->id])) {
      static::$mappings[$gcItem->id] = static::getMapping($gcItem);
    }
    return static::$mappings[$gcItem->id];
  }

  /**
   * Return the mapping associated with the given Item.
   */
  public static function getMapping(Item $gcItem) {
    $mappingId = \Drupal::entityQuery('gathercontent_mapping')
      ->condition('gathercontent_project_id', $gcItem->projectId)
      ->condition('gathercontent_template_id', $gcItem->templateId)
      ->execute();
    if (empty($mappingId)) {
      throw new \Exception("Operation failed: Template not mapped.");
    }
    $mappingId = reset($mappingId);
    $mapping = Mapping::load($mappingId);
    if ($mapping === NULL) {
      throw new \Exception("No mapping found with id: {$mappingId}");
    }
    return $mapping;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
MappingLoader::$mappings protected static property Mappings.
MappingLoader::getMapping public static function Return the mapping associated with the given Item.
MappingLoader::load public static function Cache mappings when loading them.