/** * Parse the defined palettes and populate the definition. * * @param ContainerInterface $container The container where the data shall be stored. * * @return void * * @SuppressWarnings(PHPMD.LongVariable) */ protected function parsePalettes(ContainerInterface $container) { $palettesDefinitionArray = $this->getFromDca('palettes'); $subPalettesDefinitionArray = $this->getFromDca('subpalettes'); // Skip while there is no legacy palette definition. if (!is_array($palettesDefinitionArray)) { return; } // Ignore non-legacy sub palette definition. if (!is_array($subPalettesDefinitionArray)) { $subPalettesDefinitionArray = array(); } if ($container->hasDefinition(PalettesDefinitionInterface::NAME)) { $palettesDefinition = $container->getDefinition(PalettesDefinitionInterface::NAME); } else { $palettesDefinition = new DefaultPalettesDefinition(); $container->setDefinition(PalettesDefinitionInterface::NAME, $palettesDefinition); } $palettesParser = new LegacyPalettesParser(); $palettesParser->parse($palettesDefinitionArray, $subPalettesDefinitionArray, $palettesDefinition); }
protected function parseSubPalettes(LegacyPalettesParser $parser, array $subPalettesDca, array $selectorFieldNames) { $subPalettes = array(); if (is_array($subPalettesDca)) { foreach ($subPalettesDca as $selector => $propertyNames) { $properties = array(); foreach ($propertyNames as $propertyName) { // Check if it is a valid property name. if (!is_string($propertyName)) { throw new \InvalidArgumentException('Invalid property name in sub palette: ' . var_export($propertyName, true)); } $and = new PropertyConditionChain(); $and->addCondition(new PropertyTrueCondition($selector)); $and->addCondition(new PropertyVisibleCondition($selector)); $property = new Property($propertyName); $property->setVisibleCondition($and); $properties[] = $property; } if (count($properties)) { $selectorPropertyName = $parser->createSubpaletteSelectorFieldName($selector, $selectorFieldNames); $subPalettes[$selectorPropertyName] = $properties; } } } return $subPalettes; }