Completed
Push — master ( d56754...360c32 )
by
unknown
06:40 queued 10s
created

TermFallbackSerializerTrait::unserialize()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 13
rs 9.8333
c 0
b 0
f 0
cc 2
nc 2
nop 1
1
<?php
2
3
declare( strict_types=1 );
4
namespace Wikibase\Lib\FormatterCache;
5
6
use Wikibase\DataModel\Term\TermFallback;
7
8
/**
9
 * @license GPL-2.0-or-later
10
 */
11
trait TermFallbackSerializerTrait {
12
13
	private function serialize( ?TermFallback $termFallback ): ?array {
14
		if ( $termFallback === null ) {
15
			return null;
16
		}
17
18
		return [
19
			'language' => $termFallback->getActualLanguageCode(),
20
			'value' => $termFallback->getText(),
21
			'requestLanguage' => $termFallback->getLanguageCode(),
22
			'sourceLanguage' => $termFallback->getSourceLanguageCode(),
23
		];
24
	}
25
26
	private function unserialize( ?array $serialized ): ?TermFallback {
27
		if ( $serialized === null ) {
28
			return null;
29
		}
30
31
		$termData = $serialized;
32
		return new TermFallback(
33
			$termData['requestLanguage'],
34
			$termData['value'],
35
			$termData['language'],
36
			$termData['sourceLanguage']
37
		);
38
	}
39
}
40