/** * Ensure that all necessary data is available for a new option creation. * * @param OptionInterface $option * @return void * @throws InputException * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ public function validateNewOptionData(OptionInterface $option) { $inputException = new InputException(); if (!$option->getAttributeId()) { $inputException->addError(__('Option attribute ID is not specified.')); } if (!$option->getLabel()) { $inputException->addError(__('Option label is not specified.')); } if (!$option->getValues()) { $inputException->addError(__('Option values are not specified.')); } else { foreach ($option->getValues() as $optionValue) { if (!$optionValue->getValueIndex()) { $inputException->addError(__('Value index is not specified for an option.')); } if (null === $optionValue->getPricingValue()) { $inputException->addError(__('Price is not specified for an option.')); } if (null === $optionValue->getIsPercent()) { $inputException->addError(__('Percent/absolute is not specified for an option.')); } } } if ($inputException->wasErrorAdded()) { throw $inputException; } }