locationDataFactory = $locationDataFactory; $this->dataObjectHelper = $dataObjectHelper; parent::__construct($context, $registry, $resource, $resourceCollection, $data); } /** * Retrieve location model with location data * @return LocationInterface */ public function getDataModel() { $locationData = $this->getData(); $locationDataObject = $this->locationDataFactory->create(); $this->dataObjectHelper->populateWithArray( $locationDataObject, $locationData, LocationInterface::class ); return $locationDataObject; } /** * @param string $key * @param null $index * @return array|mixed|string|null */ public function getData($key = '', $index = null) { $default = [ 'marker_color_1' => '#000000', 'marker_color_2' => '#f8e749', 'marker_shadow_color' => 'rbga(0,0,0,0.2)', ]; if (array_key_exists($key, $default)) { return parent::getData($key, $index) ?: $default[$key]; } return parent::getData($key, $index); } /** * @return float */ public function getMarkerSize() { $value = (float)$this->getData(Data\Location::MARKER_SIZE); if (0 >= $value) { $value = 1; } return $value; } }