public function transform($value, MigrateExecutableInterface
$migrate_executable, Row
$row,
$destination_property) { // If we're stubbing a file entity, return a URI of NULL so it will get
// stubbed by the general process.
if ($row->
isStub()) { return NULL;
} [$source,
$destination] =
$value;
// If the source path or URI represents a remote resource, delegate to the
// download plugin.
if (!
$this->
isLocalUri($source)) { return $this->downloadPlugin->
transform($value,
$migrate_executable,
$row,
$destination_property);
} // Ensure the source file exists, if it's a local URI or path.
if (!
file_exists($source)) { throw new MigrateException("File '
$source' does not exist"
);
} // If the start and end file is exactly the same, there is nothing to do.
if ($this->
isLocationUnchanged($source,
$destination)) { return $destination;
}