Completed
Push — unit-test-services ( 8af590...38d2eb )
by Romain
02:52
created

Layout::setLayout()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
/*
3
 * 2017 Romain CANON <[email protected]>
4
 *
5
 * This file is part of the TYPO3 FormZ project.
6
 * It is free software; you can redistribute it and/or modify it
7
 * under the terms of the GNU General Public License, either
8
 * version 3 of the License, or any later version.
9
 *
10
 * For the full copyright and license information, see:
11
 * http://www.gnu.org/licenses/gpl-3.0.html
12
 */
13
14
namespace Romm\Formz\Configuration\View\Layouts;
15
16
use Romm\ConfigurationObject\Service\Items\Parents\ParentsTrait;
17
use Romm\ConfigurationObject\Traits\ConfigurationObject\StoreArrayIndexTrait;
18
use Romm\Formz\Configuration\AbstractFormzConfiguration;
19
20
class Layout extends AbstractFormzConfiguration
21
{
22
    use StoreArrayIndexTrait;
23
    use ParentsTrait;
24
25
    /**
26
     * @var string
27
     * @validate NotEmpty
28
     */
29
    protected $layout;
30
31
    /**
32
     * @var string
33
     */
34
    protected $templateFile;
35
36
    /**
37
     * @return string
38
     */
39
    public function getTemplateFile()
40
    {
41
        if (null === $this->templateFile
42
            && $this->hasParent(LayoutGroup::class)
43
        ) {
44
            $this->templateFile = $this->withFirstParent(
45
                LayoutGroup::class,
46
                function (LayoutGroup $parent) {
47
                    return $parent->getTemplateFile();
48
                }
49
            );
50
        }
51
52
        return $this->getAbsolutePath($this->templateFile);
53
    }
54
55
    /**
56
     * @param string $templateFile
57
     */
58
    public function setTemplateFile($templateFile)
59
    {
60
        $this->templateFile = $templateFile;
61
    }
62
63
    /**
64
     * @return string
65
     */
66
    public function getLayout()
67
    {
68
        return $this->layout;
69
    }
70
71
    /**
72
     * @param string $layout
73
     */
74
    public function setLayout($layout)
75
    {
76
        $this->layout = $layout;
77
    }
78
}
79