/** * {@inheritdoc} */ public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration) { parent::__construct($configuration, $plugin_id, $plugin_definition); $this->migration = $migration; // Set up some defaults based on the source configuration. $this->cacheCounts = !empty($configuration['cache_counts']); $this->skipCount = !empty($configuration['skip_count']); $this->cacheKey = !empty($configuration['cache_key']) ? !empty($configuration['cache_key']) : NULL; $this->trackChanges = !empty($configuration['track_changes']) ? $configuration['track_changes'] : FALSE; $this->idMap = $this->migration->getIdMap(); // Pull out the current highwater mark if we have a highwater property. if ($this->highWaterProperty = $this->migration->get('highWaterProperty')) { $this->originalHighWater = $this->migration->getHighWater(); } // Don't allow the use of both highwater and track changes together. if ($this->highWaterProperty && $this->trackChanges) { throw new MigrateException('You should either use a highwater mark or track changes not both. They are both designed to solve the same problem'); } }