MethodBuilder::build()   B
last analyzed

Complexity

Conditions 6
Paths 16

Size

Total Lines 27

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 15
CRAP Score 6

Importance

Changes 0
Metric Value
dl 0
loc 27
ccs 15
cts 15
cp 1
rs 8.8657
c 0
b 0
f 0
cc 6
nc 16
nop 1
crap 6
1
<?php
2
declare(strict_types=1);
3
4
namespace gossi\codegen\generator\builder;
5
6
use gossi\codegen\generator\builder\parts\RoutineBuilderPart;
7
use gossi\codegen\model\AbstractModel;
8
use gossi\codegen\model\PhpInterface;
9
10
class MethodBuilder extends AbstractBuilder {
11
12
	use RoutineBuilderPart;
13
14 12
	public function build(AbstractModel $model): void {
15 12
		$this->buildDocblock($model);
16
17 12
		if ($model->isFinal()) {
18 1
			$this->writer->write('final ');
19
		}
20
21 12
		if ($model->isAbstract()) {
22 2
			$this->writer->write('abstract ');
23
		}
24
25 12
		$this->writer->write($model->getVisibility() . ' ');
26
27 12
		if ($model->isStatic()) {
28 2
			$this->writer->write('static ');
29
		}
30
31 12
		$this->writeFunctionStatement($model);
32
33 12
		if ($model->isAbstract() || $model->getParent() instanceof PhpInterface) {
34 2
			$this->writer->writeln(';');
35
36 2
			return;
37
		}
38
39 11
		$this->writeBody($model);
40 11
	}
41
42
}
43