Completed
Push — develop ( b8005e...fd13fe )
by Freddie
03:18
created

SetterBuilder   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 10
c 1
b 0
f 0
dl 0
loc 32
ccs 13
cts 13
cp 1
rs 10
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 9 1
A getFileTemplate() 0 3 1
A getPathTemplate() 0 3 1
A build() 0 3 1
1
<?php
2
3
namespace FlexPHP\Generator\Domain\Builders\Entity;
4
5
use FlexPHP\Generator\Domain\Builders\AbstractBuilder;
6
7
class SetterBuilder extends AbstractBuilder
8
{
9
    use TypeHintTrait;
10
11
    /**
12
     * @param array[] $data
13
     * @param array $config
14
     */
15 22
    public function __construct(array $data, array $config = [])
16
    {
17 22
        $name = (string)array_key_first($data);
18 22
        $typehint = $this->guessTypeHint($data[$name]);
19 22
        $setter = $this->getPascalCase($name);
20
21 22
        $_data = \compact('name', 'typehint', 'setter');
22
23 22
        parent::__construct($_data, $config);
24 22
    }
25
26 22
    public function getFileTemplate(): string
27
    {
28 22
        return 'Setter.php.twig';
29
    }
30
31 22
    public function getPathTemplate(): string
32
    {
33 22
        return \sprintf('%1$s/FlexPHP/Entity', parent::getPathTemplate());
34
    }
35
36 22
    public function build(): string
37
    {
38 22
        return rtrim(parent::build());
39
    }
40
}
41