protected function handleShadowNodeData(NodeData $publishedNodeData, Workspace $targetWorkspace, NodeData $targetNodeData)
{
/** @var NodeData $shadowNodeData */
$shadowNodeData = $this->nodeDataRepository->findOneByMovedTo($publishedNodeData);
if ($shadowNodeData === null) {
return false;
}
// Technically this is not a shadow node
if ($shadowNodeData->isRemoved() === false) {
return true;
}
$targetWorkspaceBase = $targetWorkspace->getBaseWorkspace();
if ($targetWorkspaceBase !== null) {
$this->adjustShadowNodeData($shadowNodeData, $publishedNodeData, $targetWorkspace, $targetNodeData);
} else {
$this->nodeDataRepository->remove($shadowNodeData);
}
return true;
}