/** * @param Database $db * @param string $propertyType * @param string $searchBy * @return Collection|CodepointAssigned[] * @throws UnexpectedValueException */ private function resolveCodepoints(Database $db, $propertyType, $searchBy) { switch ($propertyType) { case self::PROPERTY_BLOCK: $block = Block::fromValue($searchBy); return $db->getByBlock($block); case self::PROPERTY_CATEGORY: $category = GeneralCategory::fromValue($searchBy); return $db->getByCategory($category); case self::PROPERTY_SCRIPT: $script = Script::fromValue($searchBy); return $db->getByScript($script); } throw new UnexpectedValueException(); }