Neos\ContentRepository\Domain\Model\Workspace::adjustShadowNodeData PHP Method

adjustShadowNodeData() protected method

Adjust the given $shadowNodeData by removing it or moving it to the $targetWorkspace, as needed.
protected adjustShadowNodeData ( NodeData $shadowNodeData, NodeData $publishedNodeData, Workspace $targetWorkspace, NodeData $targetNodeData ) : void
$shadowNodeData NodeData
$publishedNodeData NodeData
$targetWorkspace Workspace
$targetNodeData NodeData
return void
    protected function adjustShadowNodeData(NodeData $shadowNodeData, NodeData $publishedNodeData, Workspace $targetWorkspace, NodeData $targetNodeData)
    {
        $nodeOnSamePathInTargetWorkspace = $this->nodeDataRepository->findOneByPath($shadowNodeData->getPath(), $targetWorkspace, $publishedNodeData->getDimensionValues());
        if ($nodeOnSamePathInTargetWorkspace !== null && $nodeOnSamePathInTargetWorkspace->getWorkspace() === $targetWorkspace) {
            $this->nodeDataRepository->remove($shadowNodeData);
            return;
        }
        $shadowNodeData->setMovedTo($targetNodeData);
        $shadowNodeData->setWorkspace($targetWorkspace);
        $targetWorkspaceBase = $targetWorkspace->getBaseWorkspace();
        $nodeInTargetWorkspaceBase = $this->nodeDataRepository->findOneByIdentifier($publishedNodeData->getIdentifier(), $targetWorkspaceBase, $publishedNodeData->getDimensionValues());
        if ($nodeInTargetWorkspaceBase !== null && $nodeInTargetWorkspaceBase->getPath() !== $shadowNodeData->getPath()) {
            $this->adjustShadowNodePath($shadowNodeData, $nodeInTargetWorkspaceBase->getPath(), $targetWorkspace, $publishedNodeData->getDimensionValues());
        }
    }