flagFactory = $flagFactory; $this->flagResource = $flagResource; } /** * Retrieves raw data from the flag. * * @param string $code The code of flag * @return string|int|float|bool|array|null */ public function getFlagData($code) { return $this->getFlagObject($code)->getFlagData(); } /** * Saves the flag value by code. * * @param string $code The code of flag * @param string|int|float|bool|array|null $value The value of flag * @return bool */ public function saveFlag($code, $value) { $flag = $this->getFlagObject($code); $flag->setFlagData($value); $this->flagResource->save($flag); return true; } /** * Deletes the flag by code. * * @param string $code The code of flag * @return bool */ public function deleteFlag($code) { $flag = $this->getFlagObject($code); if ($flag->getId()) { $this->flagResource->delete($flag); } return true; } /** * Returns flag object * * @param string $code * @return Flag */ private function getFlagObject($code) { /** @var Flag $flag */ $flag = $this->flagFactory->create(['data' => ['flag_code' => $code]]); $this->flagResource->load( $flag, $code, 'flag_code' ); return $flag; } }