Completed
Pull Request — master (#30)
by
unknown
03:34
created

PhpClassVisitor   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 81.25%

Importance

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

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A getClass() 0 3 1
A visitClass() 0 14 3
1
<?php
2
namespace gossi\codegen\parser\visitor;
3
4
use gossi\codegen\model\PhpClass;
5
use PhpParser\Node\Stmt\Class_;
6
7
class PhpClassVisitor extends AbstractPhpStructVisitor {
8
9 6
	public function __construct() {
10 6
		parent::__construct(new PhpClass());
11 6
	}
12
13
	/**
14
	 * @return PhpClass
15
	 */
16 6
	public function getClass() {
17 6
		return $this->struct;
18
	}
19
20 6
	protected function visitClass(Class_ $node) {
21 6
		$struct = $this->getClass();
22
23 6
		if ($node->extends !== null) {
24
			$struct->setParentClassName(implode('\\', $node->extends->parts));
25
		}
26
27 6
		foreach ($node->implements as $name) {
28
			$struct->addInterface(implode('\\', $name->parts));
29 6
		}
30
31 6
		$struct->setAbstract($node->isAbstract());
32 6
		$struct->setFinal($node->isFinal());
33 6
	}
34
}
35