public function execute(NodeData $node)
{
$dimensions = array();
foreach ($this->dimensionValues as $dimensionName => $dimensionConfiguration) {
foreach ($dimensionConfiguration as $dimensionValues) {
if (is_array($dimensionValues)) {
foreach ($dimensionValues as $dimensionValue) {
$dimensions[] = new NodeDimension($node, $dimensionName, $dimensionValue);
}
} else {
$dimensions[] = new NodeDimension($node, $dimensionName, $dimensionValues);
}
}
}
if ($this->addDefaultDimensionValues === true) {
$configuredDimensions = $this->contentDimensionRepository->findAll();
foreach ($configuredDimensions as $configuredDimension) {
if (!isset($this->dimensionValues[$configuredDimension->getIdentifier()])) {
$dimensions[] = new NodeDimension($node, $configuredDimension->getIdentifier(), $configuredDimension->getDefault());
}
}
}
$node->setDimensions($dimensions);
}