Completed
Pull Request — master (#728)
by Daniel
06:09 queued 03:08
created

CustomEntityId::serialize()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 3
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
namespace Wikibase\DataModel\Fixtures;
4
5
use InvalidArgumentException;
6
use Wikibase\DataModel\Entity\EntityId;
7
8
/**
9
 * Dummy custom EntityId implementation for use with EntityIdValueTest
10
 *
11
 * @license GPL 2+
12
 * @author Daniel Kinzler
13
 */
14
class CustomEntityId extends EntityId {
15
16
	/**
17
	 * @param string $idSerialization
18
	 *
19
	 * @throws InvalidArgumentException
20
	 */
21
	public function __construct( $idSerialization ) {
22
		$serializationParts = self::splitSerialization( $idSerialization );
23
		$localId = strtoupper( $serializationParts[2] );
24
		parent::__construct( self::joinSerialization(
25
			[ $serializationParts[0], $serializationParts[1], $localId ] )
26
		);
27
	}
28
29
	/**
30
	 * @see Serializable::serialize
31
	 *
32
	 * @since 7.0 serialization format changed in an incompatible way
33
	 *
34
	 * @return string
35
	 */
36
	public function serialize() {
37
		return $this->serialization;
38
	}
39
40
	/**
41
	 * @see Serializable::unserialize
42
	 *
43
	 * @param string $serialized
44
	 */
45
	public function unserialize( $serialized ) {
46
		$array = json_decode( $serialized );
47
		$this->serialization = is_array( $array ) ? $array[1] : $serialized;
48
	}
49
50
	/**
51
	 * @return string
52
	 */
53
	public function getEntityType() {
54
		return 'custom';
55
	}
56
57
}
58