Completed
Push — master ( f68f3b...859d26 )
by Josh
02:07
created

Utf8   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 4
c 2
b 0
f 0
lcom 0
cbo 1
dl 0
loc 30
ccs 13
cts 13
cp 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A outputValidValue() 0 21 4
1
<?php
2
3
/**
4
* @package   s9e\RegexpBuilder
5
* @copyright Copyright (c) 2016 The s9e Authors
6
* @license   http://www.opensource.org/licenses/mit-license.php The MIT License
7
*/
8
namespace s9e\RegexpBuilder\Output;
9
10
class Utf8 extends BaseImplementation
11
{
12
	/** {@inheritdoc} */
13
	protected $maxValue = 0x10FFFF;
14
15
	/**
16
	* {@inheritdoc}
17
	*/
18 9
	protected function outputValidValue($value)
19
	{
20 9
		if ($value < 0x80)
21
		{
22 6
			return chr($value);
23
		}
24 3
		if ($value < 0x800)
25
		{
26 1
			return chr(0xC0 | ($value >> 6)) . chr(0x80 | ($value & 0x3F));
27
		}
28 2
		if ($value < 0x10000)
29
		{
30 1
			return chr(0xE0 | ($value >> 12))
31 1
			     . chr(0x80 | (($value >> 6) & 0x3F))
32 1
			     . chr(0x80 | ($value & 0x3F));
33
		}
34 1
		return chr(0xF0 | ($value >> 18))
35 1
		     . chr(0x80 | (($value >> 12) & 0x3F))
36 1
		     . chr(0x80 | (($value >> 6) & 0x3F))
37 1
		     . chr(0x80 | ($value & 0x3F));
38
	}
39
}