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

TermFallbackSerializerTrait   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 4
lcom 0
cbo 1
dl 0
loc 29
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A serialize() 0 12 2
A unserialize() 0 13 2
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