preferenceMapper = $preferenceMapper; } /** * @brief get preference * * scope identifies preference source, i.e. which renderer the preference applies to * preference type is format-dependent, eg CFI for epub, page number for CBR/CBZ, etc * * @param string $scope * @param int $fileId * @param ?string $name * * @return array */ public function get(string $scope, int $fileId, ?string $name = null): array { $result = $this->preferenceMapper->get($scope, $fileId, $name); return array_map( function ($entity) { return $entity->toService(); }, $result); } /** * @brief write preference * * scope identifies preference source, i.e. which renderer the preference applies to * position type is format-dependent, eg CFI for epub, page number for CBR/CBZ, etc * * @param string $scope * @param int $fileId * @param string $name * @param string $value */ public function set(string $scope, int $fileId, string $name, string $value): ReaderEntity { return $this->preferenceMapper->set($scope, $fileId, $name, $value); } /** * @brief get default preference * * @param string $scope * @param ?string $name */ public function getDefault(string $scope, ?string $name = null): array { return $this->get($scope, static::DEFAULTS, $name); } /** * @brief set default preference * * @param string $scope * @param string $name * @param string $value */ public function setDefault($scope, $name, $value): ReaderEntity { return $this->preferenceMapper->set($scope, static::DEFAULTS, $name, $value); } /** * @brief delete preference * * @param string $scope * @param int $fileId * @param ?string $name * */ public function delete(string $scope, int $fileId, ?string $name = null): void { foreach($this->preferenceMapper->get($scope, $fileId, $name) as $preference) { $this->preferenceMapper->delete($preference); } } /** * @brief delete default * * @param string $scope * @param ?string $name * */ public function deleteDefault(string $scope, ?string $name = null): void { $this->delete($scope, static::DEFAULTS, $name); } }