* @SuppressWarnings(PHPMD.NumberOfChildren) */ abstract class AbstractSource implements \Magento\Eav\Model\Entity\Attribute\Source\SourceInterface, \Magento\Framework\Option\ArrayInterface { /** * Reference to the attribute instance * * @var \Magento\Eav\Model\Entity\Attribute\AbstractAttribute */ protected $_attribute; /** * Options array * * @var array */ protected $_options = null; /** * Set attribute instance * * @param \Magento\Eav\Model\Entity\Attribute\AbstractAttribute $attribute * @return \Magento\Eav\Model\Entity\Attribute\Frontend\AbstractFrontend * @codeCoverageIgnore */ public function setAttribute($attribute) { $this->_attribute = $attribute; return $this; } /** * Get attribute instance * * @return \Magento\Eav\Model\Entity\Attribute\AbstractAttribute * @codeCoverageIgnore */ public function getAttribute() { return $this->_attribute; } /** * Get a text for option value * * @param string|int $value * @return string|bool */ public function getOptionText($value) { $options = $this->getAllOptions(); // Fixed for tax_class_id and custom_design if (sizeof($options) > 0) { foreach ($options as $option) { if (isset($option['value']) && $option['value'] == $value) { return isset($option['label']) ? $option['label'] : $option['value']; } } } // End if (isset($options[$value])) { return $options[$value]; } return false; } /** * @param string $value * @return null|string */ public function getOptionId($value) { foreach ($this->getAllOptions() as $option) { if (strcasecmp($option['label'], $value) == 0 || $option['value'] == $value) { return $option['value']; } } return null; } /** * Add Value Sort To Collection Select * * @param \Magento\Eav\Model\Entity\Collection\AbstractCollection $collection * @param string $dir direction * @return $this * @SuppressWarnings(PHPMD.UnusedFormalParameter) * @codeCoverageIgnore */ public function addValueSortToCollection($collection, $dir = \Magento\Framework\Data\Collection::SORT_ORDER_DESC) { return $this; } /** * Retrieve flat column definition * * @codeCoverageIgnore * @return array */ public function getFlatColumns() { return []; } /** * Retrieve Indexes(s) for Flat * * @return array * @codeCoverageIgnore */ public function getFlatIndexes() { return []; } /** * Retrieve Select For Flat Attribute update * * @param int $store * @return \Magento\Framework\DB\Select|null * @SuppressWarnings(PHPMD.UnusedFormalParameter) * @codeCoverageIgnore */ public function getFlatUpdateSelect($store) { return null; } /** * Get a text for index option value * * @param string|int $value * @return string|bool * @codeCoverageIgnore */ public function getIndexOptionText($value) { return $this->getOptionText($value); } /** * Get options as array * * @return array * @codeCoverageIgnore */ public function toOptionArray() { return $this->getAllOptions(); } }