Passed
Push — master ( eaa52c...e4c34c )
by Grupo
01:59
created

CommandHandler::make()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 25
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 16
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 16
dl 0
loc 25
ccs 16
cts 16
cp 1
rs 9.7333
c 0
b 0
f 0
cc 2
nc 2
nop 0
crap 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
}