Passed
Push — master ( c80e12...1c5165 )
by Kirill
04:32
created

Builder::meta()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 0
cts 2
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 2
1
<?php
2
/**
3
 * This file is part of Hydrogen package.
4
 *
5
 * For the full copyright and license information, please view the LICENSE
6
 * file that was distributed with this source code.
7
 */
8
declare(strict_types=1);
9
10
namespace RDS\Hydrogen\Processor\DatabaseProcessor;
11
12
use Doctrine\ORM\EntityManagerInterface;
13
use Doctrine\ORM\Mapping\ClassMetadata;
14
use RDS\Hydrogen\Processor\BuilderInterface;
15
16
/**
17
 * Class Builder
18
 */
19
abstract class Builder implements BuilderInterface
20
{
21
    /**
22
     * @var ClassMetadata
23
     */
24
    protected $meta;
25
26
    /**
27
     * @var EntityManagerInterface
28
     */
29
    protected $em;
30
31
    /**
32
     * Builder constructor.
33
     * @param ClassMetadata $meta
34
     * @param EntityManagerInterface $em
35
     */
36 28
    public function __construct(ClassMetadata $meta, EntityManagerInterface $em)
37
    {
38 28
        $this->meta = $meta;
39 28
        $this->em = $em;
40 28
    }
41
42
    /**
43
     * @param string $entity
44
     * @return ClassMetadata
45
     */
46
    protected function meta(string $entity): ClassMetadata
47
    {
48
        return $this->em->getClassMetadata($entity);
49
    }
50
51
    /**
52
     * @return \Generator
53
     */
54 4
    protected function nothing(): \Generator
55
    {
56 4
        if (false) {
57
            yield;
58
        }
59 4
    }
60
61
    /**
62
     * @param \Generator $generator
63
     * @param \Closure $then
64
     * @return \Generator
65
     */
66 8
    protected function extractResult(\Generator $generator, \Closure $then): \Generator
67
    {
68 8
        yield from $generator;
69
70 8
        $then($generator->getReturn());
71 8
    }
72
}
73