private function copyNode($webspaceKey, $srcLocale, $destLocale, StructureInterface $structure, $overwrite = false)
{
if (!$overwrite) {
$destStructure = $this->contentMapper->load($structure->getUuid(), $webspaceKey, $destLocale, true);
if (!($destStructure->getType() && $destStructure->getType()->getName() === 'ghost')) {
$this->output->writeln('<info>Processing aborted: </info>' . $structure->getPath() . ' <comment>(use overwrite option to force)</comment>');
return;
}
}
if ($structure->getType() && $structure->getType()->getName() === 'ghost') {
$this->output->writeln('<info>Processing aborted: </info>' . $structure->getPath() . ' <comment>(source language does not exist)</comment>');
return;
}
try {
$this->contentMapper->copyLanguage($structure->getUuid(), $structure->getChanger(), $webspaceKey, $srcLocale, $destLocale);
$this->output->writeln('<info>Processing: </info>' . $structure->getPath());
} catch (ResourceLocatorAlreadyExistsException $e) {
$this->output->writeln(sprintf('<info>Processing aborted: </info> %s <comment>Resource Locator "%s" already exists', $structure->getPath(), $structure->getResourceLocator()));
}
}