ClassParserVisitor   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 4
dl 0
loc 27
ccs 13
cts 13
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A visitClass() 0 22 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