You are here

class FileFieldItemListProcessor in Content Synchronizer 8

Same name and namespace in other branches
  1. 8.2 src/Plugin/content_synchronizer/type_processor/FileFieldItemListProcessor.php \Drupal\content_synchronizer\Plugin\content_synchronizer\type_processor\FileFieldItemListProcessor
  2. 3.x src/Plugin/content_synchronizer/type_processor/FileFieldItemListProcessor.php \Drupal\content_synchronizer\Plugin\content_synchronizer\type_processor\FileFieldItemListProcessor

Plugin implementation For the type processor .

Plugin annotation


@TypeProcessor(
  id = "content_synchronzer_file_field_item_list",
  fieldType = "Drupal\file\Plugin\Field\FieldType\FileFieldItemList"
)

Hierarchy

Expanded class hierarchy of FileFieldItemListProcessor

File

src/Plugin/content_synchronizer/type_processor/FileFieldItemListProcessor.php, line 20

Namespace

Drupal\content_synchronizer\Plugin\content_synchronizer\type_processor
View source
class FileFieldItemListProcessor extends TypeProcessorBase {

  /**
   * {@inheritdoc}
   */
  public function getExportedData(TypedData $propertyData) {
    $dataToExport = [];

    // Get list of data :

    /** @var \Drupal\file\Entity\FileItem $data */
    foreach ($propertyData as $data) {

      /** @var \Drupal\file\Entity\File $file */
      $file = File::load($data->target_id);
      $plugin = $this->pluginManager
        ->getInstanceByEntityType($file
        ->getEntityTypeId());
      if ($fileGid = $plugin
        ->export($file)) {
        $values = $data
          ->toArray();
        unset($values['target_id']);
        $values[ExportEntityWriter::FIELD_GID] = $fileGid;
        $dataToExport[] = $values;
      }
    }
    return $dataToExport;
  }

  /**
   * {@inheritdoc}
   */
  public function initImportedEntity(Entity $entityToImport, $propertyId, array $data) {

    /** @var \Drupal\Core\Entity\EntityReferenceFieldItemList $referenceField */
    $referenceField = $entityToImport
      ->get($propertyId);

    // Empty previous references.
    while ($referenceField
      ->count() > 0) {
      $referenceField
        ->removeItem(0);
    }
    foreach ($data[$propertyId] as $fileItem) {
      $fileGID = $fileItem[ExportEntityWriter::FIELD_GID];
      if ($entityData = ImportProcessor::getCurrentImportProcessor()
        ->getImport()
        ->getEntityDataFromGid($fileGID)) {
        $plugin = $this->pluginManager
          ->getInstanceByEntityType($this->referenceManager
          ->getEntityTypeFromGid($fileGID));
        if ($referencedEntity = $plugin
          ->import($entityData + $fileItem)) {
          $fileItem['target_id'] = $referencedEntity
            ->id();
          unset($fileItem[ExportEntityWriter::FIELD_GID]);
          $referenceField
            ->appendItem($fileItem);
        }
      }
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
FileFieldItemListProcessor::getExportedData public function Get the data to export. Overrides TypeProcessorBase::getExportedData
FileFieldItemListProcessor::initImportedEntity public function Init the $propertyId value in the entity to import. Overrides TypeProcessorBase::initImportedEntity
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
TypeProcessorBase::$pluginManager protected property The entity processor plugin manager.
TypeProcessorBase::$referenceManager protected property The global reference manager service.
TypeProcessorBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase::__construct 1