CommandHandler   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 2
eloc 17
dl 0
loc 28
ccs 16
cts 16
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A make() 0 25 2
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: thales
5
 * Date: 17/01/2019
6
 * Time: 20:12
7
 */
8
9
namespace Saci\Console\Infrastructure\Domain\Services\PhpClass;
10
11
12
use cristianoc72\codegen\model\GenerateableInterface;
13
use cristianoc72\codegen\model\PhpMethod;
14
use cristianoc72\codegen\model\PhpParameter;
15
use Saci\Console\Domain\Services\Exception\ClassNameIsNullException;
16
use Saci\Console\Domain\Services\PhpClass as PhpClassInterface;
17
18
class CommandHandler extends AbstractPhpClass implements PhpClassInterface
19
{
20
21 4
    public function make(): GenerateableInterface
22
    {
23 4
        $moduleName = $this->getModuleName();
24 4
        $className = $this->getClassName();
25 4
        $type = str_replace('Handler', '', $className);
26 4
        $parameter = lcfirst($type);
27
28 4
        if (!$className) {
29 1
            throw new ClassNameIsNullException('Não foi informado a nome para a Command. Utilize o método setClassName para innforma o nome da classe!');
30
        }
31
32
        $this
33 3
            ->setQualifiedName("Saci\\{$moduleName}\\UseCase\\{$className}")
34 3
            ->setMethod(
35 3
                PhpMethod::create('__construct')
36
            )
37 3
            ->setMethod(
38 3
                PhpMethod::create('handle')
39 3
                    ->addParameter(
40 3
                        PhpParameter::create($parameter)
41 3
                            ->setType($type)
42
                    )
43
            );
44
45 3
        return $this;
46
    }
47
}