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 * * @return SerializedEntity */ public function get(string $scope, int $fileId, ?string $name = null): array { $result = $this->preferenceMapper->get($scope, $fileId, $name); return array_map( function (ReaderEntity $entity): array { 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 */ public function set(string $scope, int $fileId, string $name, string $value): ReaderEntity { return $this->preferenceMapper->set($scope, $fileId, $name, $value); } /** * @brief get default preference */ public function getDefault(string $scope, ?string $name = null): array { return $this->get($scope, self::DEFAULTS, $name); } /** * @brief set default preference */ public function setDefault(string $scope, string $name, string $value): ReaderEntity { return $this->preferenceMapper->set($scope, self::DEFAULTS, $name, $value); } /** * @brief delete preference */ 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 */ public function deleteDefault(string $scope, ?string $name = null): void { $this->delete($scope, self::DEFAULTS, $name); } }