public function generateUriPathSegments($workspaceName, $dryRun)
{
$baseContext = $this->createContext($workspaceName, []);
$baseContextSitesNode = $baseContext->getNode(SiteService::SITES_ROOT_PATH);
if (!$baseContextSitesNode) {
$this->output->outputLine('<error>Could not find "' . SiteService::SITES_ROOT_PATH . '" root node</error>');
return;
}
$baseContextSiteNodes = $baseContextSitesNode->getChildNodes();
if ($baseContextSiteNodes === []) {
$this->output->outputLine('<error>Could not find any site nodes in "' . SiteService::SITES_ROOT_PATH . '" root node</error>');
return;
}
foreach ($this->dimensionCombinator->getAllAllowedCombinations() as $dimensionCombination) {
$flowQuery = new FlowQuery($baseContextSiteNodes);
$siteNodes = $flowQuery->context(['dimensions' => $dimensionCombination, 'targetDimensions' => []])->get();
if (count($siteNodes) > 0) {
$this->output->outputLine('Checking for nodes with missing URI path segment in dimension "%s"', array(trim(NodePaths::generateContextPath('', '', $dimensionCombination), '@;')));
foreach ($siteNodes as $siteNode) {
$this->generateUriPathSegmentsForNode($siteNode, $dryRun);
}
}
}
$this->persistenceManager->persistAll();
}