Completed
Push — master ( 576a4c...bc864b )
by Dennis
01:49
created

Seed::isExecuted()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 8
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 5
nc 2
nop 1
1
<?php
2
namespace Dennis\Seeder\Domain\Model;
3
4
/***************************************************************
5
 *  Copyright notice
6
 *
7
 *  (c) 2016 Dennis Römmich <[email protected]>
8
 *
9
 *  All rights reserved
10
 *
11
 *  This script is part of the TYPO3 project. The TYPO3 project is
12
 *  free software; you can redistribute it and/or modify
13
 *  it under the terms of the GNU General Public License as published by
14
 *  the Free Software Foundation; either version 2 of the License, or
15
 *  (at your option) any later version.
16
 *
17
 *  The GNU General Public License can be found at
18
 *  http://www.gnu.org/copyleft/gpl.html.
19
 *
20
 *  This script is distributed in the hope that it will be useful,
21
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
22
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23
 *  GNU General Public License for more details.
24
 *
25
 *  This copyright notice MUST APPEAR in all copies of the script!
26
 ***************************************************************/
27
28
/**
29
 * Seed
30
 *
31
 * @author Dennis Römmich<[email protected]>
32
 * @copyright Copyright belongs to the respective authors
33
 * @license http://www.gnu.org/licenses/gpl.html GNU General Public License, version 3 or later
34
 */
35
final class Seed extends \TYPO3\CMS\Extbase\DomainObject\AbstractValueObject implements \Dennis\Seeder\Seed
36
{
37
    /**
38
     * title
39
     *
40
     * @var string $title
41
     * @validate NotEmpty
42
     */
43
    private $title = '';
44
45
    /**
46
     * target
47
     *
48
     * @var string $target
49
     * @validate NotEmpty
50
     */
51
    protected $target = '';
52
53
    /**
54
     * properties
55
     *
56
     * @var array $properties
57
     */
58
    protected $properties;
59
60
    /**
61
     * @var bool
62
     */
63
    protected $executed = false;
64
65
    /**
66
     * @return string
67
     */
68
    public function getTitle()
69
    {
70
        return $this->title;
71
    }
72
73
    /**
74
     * @param string $title
75
     * @return $this
76
     */
77
    public function setTitle($title)
78
    {
79
        $this->title = $title;
80
81
        return $this;
82
    }
83
84
    /**
85
     * setProperties
86
     *
87
     * @param $properties
88
     * @return $this
89
     */
90
    public function setProperties(array $properties)
91
    {
92
        $this->properties = $properties;
93
94
        return $this;
95
    }
96
97
    /**
98
     * getProperties
99
     *
100
     * @return array
101
     */
102
    public function getProperties()
103
    {
104
        foreach ($this->properties as $key => $property) {
105
            if (is_null($property) || $property === '') {
106
                unset($this->properties[$key]);
107
            }
108
        }
109
        return $this->properties;
110
    }
111
112
    /**
113
     * @return string
114
     */
115
    public function getTarget()
116
    {
117
        return $this->target;
118
    }
119
120
    /**
121
     * The target, for example the table name
122
     *
123
     * @param string $target
124
     * @return $this
125
     */
126
    public function setTarget($target)
127
    {
128
        $this->target = $target;
129
130
        return $this;
131
    }
132
133
    /**
134
     * Overrides given properties
135
     *
136
     * @param array $properties
137
     * @throws \InvalidArgumentException
138
     * @return void
139
     */
140
    public function set(array $properties)
141
    {
142
        $this->properties = [];
143
        foreach ($properties as $property => $value) {
144
            $this->properties[$property] = $value;
145
        }
146
    }
147
148
    /**
149
     * @param bool $isExecuted
0 ignored issues
show
Documentation introduced by
Should the type for parameter $isExecuted not be boolean|null?

This check looks for @param annotations where the type inferred by our type inference engine differs from the declared type.

It makes a suggestion as to what type it considers more descriptive.

Most often this is a case of a parameter that can be null in addition to its declared types.

Loading history...
150
     * @return bool
151
     */
152
    public function isExecuted($isExecuted = null)
153
    {
154
        if ($isExecuted) {
155
            $this->executed = $isExecuted;
156
            return $this->executed;
157
        }
158
        return $this->executed;
159
    }
160
}
161