Completed
Push — meaningfulInterfaces ( 00ef73 )
by no
02:51
created

AliasGroupSerializer::serialize()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 20
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 20
rs 9.4285
cc 3
eloc 12
nc 3
nop 1
1
<?php
2
3
namespace Wikibase\DataModel\Serializers\Internal;
4
5
use Wikibase\DataModel\Serializers\AliasGroupSerializer as AliasGroupSerializerInterface;
6
use Wikibase\DataModel\Term\AliasGroup;
7
use Wikibase\DataModel\Term\AliasGroupFallback;
8
9
/**
10
 * Package private
11
 *
12
 * @licence GNU GPL v2+
13
 * @author Bene* < [email protected] >
14
 */
15
class AliasGroupSerializer implements AliasGroupSerializerInterface {
16
17
	/**
18
	 * @see \Wikibase\DataModel\Serializers\AliasGroupSerializer::serialize
19
	 *
20
	 * @param AliasGroup $aliasGroup
21
	 *
22
	 * @return array[]
23
	 */
24
	public function serialize( AliasGroup $aliasGroup ) {
25
		$serialization = array();
26
		$language = $aliasGroup->getLanguageCode();
27
28
		foreach ( $aliasGroup->getAliases() as $value ) {
29
			$result = array(
30
				'language' => $language,
31
				'value' => $value
32
			);
33
34
			if ( $aliasGroup instanceof AliasGroupFallback ) {
35
				$result['language'] = $aliasGroup->getActualLanguageCode();
36
				$result['source'] = $aliasGroup->getSourceLanguageCode();
37
			}
38
39
			$serialization[] = $result;
40
		}
41
42
		return $serialization;
43
	}
44
45
}
46