Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 17
EntityImageStyle
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 17
 import
0.00% covered (danger)
0.00%
0 / 1
20
0.00% covered (danger)
0.00%
0 / 17
<?php
/**
 * @file
 * Contains \Drupal\image\Plugin\migrate\destination\EntityImageStyle.
 */
namespace Drupal\image\Plugin\migrate\destination;
use Drupal\Component\Plugin\Exception\PluginNotFoundException;
use Drupal\migrate\MigrateException;
use Drupal\migrate\Plugin\migrate\destination\EntityConfigBase;
use Drupal\migrate\Row;
/**
 * Every migration that uses this destination must have an optional
 * dependency on the d6_file migration to ensure it runs first.
 *
 * @MigrateDestination(
 *   id = "entity:image_style"
 * )
 */
class EntityImageStyle extends EntityConfigBase {
  /**
   * {@inheritdoc}
   */
  public function import(Row $row, array $old_destination_id_values = []) {
    $effects = [];
    // Need to set the effects property to null on the row before the ImageStyle
    // is created, this prevents improper effect plugin initialization.
    if ($row->getDestinationProperty('effects')) {
      $effects = $row->getDestinationProperty('effects');
      $row->setDestinationProperty('effects', []);
    }
    /** @var \Drupal\Image\Entity\ImageStyle $style */
    $style = $this->getEntity($row, $old_destination_id_values);
    // Iterate the effects array so each effect plugin can be initialized.
    // Catch any missing plugin exceptions.
    foreach ($effects as $effect) {
      try {
        $style->addImageEffect($effect);
      }
      catch (PluginNotFoundException $e) {
        throw new MigrateException($e->getMessage(), 0, $e);
      }
    }
    $style->save();
    return array($style->id());
  }
}