ClassParserVisitor::visitClass()   A
last analyzed

Complexity

Conditions 5
Paths 9

Size

Total Lines 22

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 13
CRAP Score 5

Importance

Changes 0
Metric Value
dl 0
loc 22
ccs 13
cts 13
cp 1
rs 9.2568
c 0
b 0
f 0
cc 5
nc 9
nop 1
crap 5
1
<?php
2
declare(strict_types=1);
3
4
namespace gossi\codegen\parser\visitor;
5
6
use gossi\codegen\parser\visitor\parts\StructParserPart;
7
use PhpParser\Node\Stmt\Class_;
8
9
class ClassParserVisitor extends StructParserVisitor {
10
11
	use StructParserPart;
12
13 12
	public function visitClass(Class_ $node) {
14 12
		$struct = $this->getStruct();
15
16 12
		if ($node->extends !== null) {
17 4
			if ($node->extends->getType() === 'Name_FullyQualified') {
18 2
				$struct->setParentClassName('\\' . implode('\\', $node->extends->parts));
19
			} else {
20 2
				$struct->setParentClassName(implode('\\', $node->extends->parts));
21
			}
22
		}
23
24 12
		foreach ($node->implements as $interface) {
25 4
			if ($interface->getType() === 'Name_FullyQualified') {
26 2
				$struct->addInterface('\\' . implode('\\', $interface->parts));
27
			} else {
28 2
				$struct->addInterface(implode('\\', $interface->parts));
29
			}
30
		}
31
32 12
		$struct->setAbstract($node->isAbstract());
33 12
		$struct->setFinal($node->isFinal());
34 12
	}
35
}
36