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

AliasGroupListSerializer::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 3
nc 1
nop 2
1
<?php
2
3
namespace Wikibase\DataModel\Serializers\Internal;
4
5
use Serializers\Serializer;
6
use Wikibase\DataModel\Serializers\AliasGroupListSerializer as AliasGroupListSerializerInterface;
7
use Wikibase\DataModel\Term\AliasGroupList;
8
9
/**
10
 * Package private
11
 *
12
 * @licence GNU GPL v2+
13
 * @author Addshore
14
 * @author Bene* < [email protected] >
15
 */
16
class AliasGroupListSerializer implements AliasGroupListSerializerInterface {
17
18
	/**
19
	 * @var Serializer
20
	 */
21
	private $aliasGroupSerializer;
22
23
	/**
24
	 * @var bool
25
	 */
26
	private $useObjectsForMaps;
27
28
	/**
29
	 * @param Serializer $aliasGroupSerializer
30
	 * @param bool $useObjectsForMaps
31
	 */
32
	public function __construct( Serializer $aliasGroupSerializer, $useObjectsForMaps ) {
33
		$this->aliasGroupSerializer = $aliasGroupSerializer;
34
		$this->useObjectsForMaps = $useObjectsForMaps;
35
	}
36
37
	/**
38
	 * @see \Wikibase\DataModel\Serializers\AliasGroupListSerializer::serialize
39
	 *
40
	 * @param AliasGroupList $aliasGroupList
41
	 *
42
	 * @return array[]
43
	 */
44
	public function serialize( AliasGroupList $aliasGroupList ) {
45
		$serialization = array();
46
47
		foreach ( $aliasGroupList->getIterator() as $aliasGroup ) {
48
			$serialization[$aliasGroup->getLanguageCode()] = $this->aliasGroupSerializer->serialize( $aliasGroup );
49
		}
50
51
		if ( $this->useObjectsForMaps ) {
52
			$serialization = (object)$serialization;
53
		}
54
55
		return $serialization;
56
	}
57
58
}
59