AbstractSetWriter::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %
Metric Value
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
/**
3
 * Author: Nil Portugués Calderó <[email protected]>
4
 * Date: 12/24/14
5
 * Time: 12:55 PM.
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 */
10
11
namespace NilPortugues\Sql\QueryBuilder\Builder\Syntax;
12
13
use NilPortugues\Sql\QueryBuilder\Builder\GenericBuilder;
14
use NilPortugues\Sql\QueryBuilder\Syntax\QueryPartInterface;
15
16
/**
17
 * Class AbstractSetWriter.
18
 */
19
abstract class AbstractSetWriter
20
{
21
    /**
22
     * @var GenericBuilder
23
     */
24
    protected $writer;
25
26
    /**
27
     * @param GenericBuilder $writer
28
     */
29
    public function __construct(GenericBuilder $writer)
30
    {
31
        $this->writer = $writer;
32
    }
33
34
    /**
35
     * @param QueryPartInterface $setClass
36
     * @param string             $setOperation
37
     * @param $glue
38
     *
39
     * @return string
40
     */
41
    protected function abstractWrite(QueryPartInterface $setClass, $setOperation, $glue)
42
    {
43
        $selects = [];
44
45
        foreach ($setClass->$setOperation() as $select) {
46
            $selects[] = $this->writer->write($select);
47
        }
48
49
        return \implode("\n".$glue."\n", $selects);
50
    }
51
}
52