JsonLdDecimalFormatter::format()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 2.0625

Importance

Changes 0
Metric Value
dl 0
loc 7
ccs 3
cts 4
cp 0.75
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 4
nc 2
nop 1
crap 2.0625
1
<?php
2
3
namespace PPP\Wikidata\ValueFormatters\JsonLd;
4
5
use DataValues\DecimalValue;
6
use InvalidArgumentException;
7
use stdClass;
8
use ValueFormatters\ValueFormatterBase;
9
10
/**
11
 * @licence AGPLv3+
12
 * @author Thomas Pellissier Tanon
13
 */
14
class JsonLdDecimalFormatter extends ValueFormatterBase implements JsonLdDataValueFormatter {
15
16
	/**
17
	 * @see ValueFormatter::format
18
	 */
19 2
	public function format($value) {
20 2
		if(!($value instanceof DecimalValue)) {
21
			throw new InvalidArgumentException('$value is not a DecimalValue.');
22
		}
23
24 2
		return $this->toJsonLd($value);
25
	}
26
27 2
	private function toJsonLd(DecimalValue $value) {
28 2
		$literal = new stdClass();
29
30 2
		if($value->getFractionalPart() === '') {
31 1
			$literal->{'@type'} = 'Integer';
32 1
			$literal->{'@value'} = $value->getIntegerPart();
33 1
		} else {
34 1
			$literal->{'@type'} = 'Float';
35 1
			$literal->{'@value'} = $value->getValueFloat();
36
		}
37
38 2
		return $literal;
39
	}
40
}
41