SourceFilter.php in Migrate Tools 8.5
File
src/SourceFilter.php
View source
<?php
namespace Drupal\migrate_tools;
use Drupal\migrate\Plugin\migrate\source\SourcePluginBase;
use Drupal\migrate\Plugin\MigrateSourceInterface;
class SourceFilter extends \FilterIterator {
protected $idList;
public function __construct(MigrateSourceInterface $source, array $id_list) {
parent::__construct($source);
$this->idList = $id_list;
}
public function accept() {
if (empty($this->idList)) {
return TRUE;
}
if (!$this
->getInnerIterator() instanceof SourcePluginBase) {
trigger_error(sprintf('The source plugin %s is not an instance of %s. Extend from %s to support idlist filtering.', $this
->getInnerIterator()
->getPluginId(), SourcePluginBase::class, SourcePluginBase::class));
return TRUE;
}
if (in_array(array_values($this
->getInnerIterator()
->getCurrentIds()), $this->idList)) {
return TRUE;
}
}
}