Lines
63.63%
7 / 11
Methods
75.00%
3 / 4
Classes
0.00%
0 / 1
| Name | Lines | Methods | CRAP | ||||
|---|---|---|---|---|---|---|---|
| readString | 100.00% | 2 / 2 | 100.00% | 1 / 1 | 3 | ||
| readStrings | 100.00% | 4 / 4 | 100.00% | 1 / 1 | 3 | ||
| readAliasPhrases | 0.00% | 0 / 4 | 0.00% | 0 / 1 | 20 | ||
| readLabelIds | 100.00% | 1 / 1 | 100.00% | 1 / 1 | 1 | ||
| 10 | final readonly class RegistryRow | |
| 11 | { | |
| 12 | /** @param array<array-key, mixed> $raw */ | |
| 13 | public static function readString(array $raw, string $key): ?string | |
| 14 | { | |
| 15 | $value = $raw[$key] ?? null; | |
| 16 | ||
| 17 | return \is_string($value) && $value !== '' ? $value : null; | |
| 18 | } | |
| 19 | ||
| 20 | /** | |
| 21 | * @param array<array-key, mixed> $raw | |
| 22 | * @return list<string> | |
| 23 | */ | |
| 24 | public static function readStrings(array $raw, string $key): array | |
| 25 | { | |
| 26 | $values = $raw[$key] ?? null; | |
| 27 | ||
| 28 | if (!\is_array($values)) { | |
| 29 | return []; | |
| 30 | } | |
| 31 | ||
| 32 | return array_values(array_filter($values, static fn(mixed $value): bool => \is_string($value) && $value !== '')); | |
| 33 | } | |
| 34 | ||
| 35 | /** | |
| 36 | * @param array<array-key, mixed> $raw | |
| 37 | * @return list<string|null>|null | |
| 38 | */ | |
| 39 | public static function readAliasPhrases(array $raw): ?array | |
| 40 | { | |
| 41 | $values = $raw['aliases'] ?? null; | |
| 42 | ||
| 43 | if (!\is_array($values)) { | |
| 44 | return null; | |
| 45 | } | |
| 46 | ||
| 47 | return array_values(array_filter($values, static fn(mixed $value): bool => $value === null || (\is_string($value) && $value !== ''))); | |
| 48 | } | |
| 49 | ||
| 50 | /** @param array<array-key, mixed> $raw */ | |
| 51 | public static function readLabelIds(array $raw): LabelIdCollection | |
| 52 | { | |
| 53 | return LabelIdCollection::fromList(array_filter(array_map(LabelId::tryFromString(...), self::readStrings($raw, 'labels')))); | |
| 54 | } | |
| 55 | } |