GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — dev ( 40bda2...5b7120 )
by Андрей
04:01
created

Metadata::getFlagHasConditions()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
/**
3
 * @link https://github.com/old-town/workflow-zf2-dispatch
4
 * @author  Malofeykin Andrey  <[email protected]>
5
 */
6
namespace OldTown\Workflow\ZF2\Dispatch\Metadata\Target\Dispatch;
7
8
use SplObjectStorage;
9
10
11
/**
12
 * Class Metadata
13
 *
14
 * @package OldTown\Workflow\ZF2\Dispatch\Metadata\Target\Dispatch
15
 */
16
class Metadata implements MetadataInterface
17
{
18
    /**
19
     * @var string
20
     */
21
    const PREPARE_DATA_RUN_TYPE_METHOD = 'method';
22
23
    /**
24
     * Флаг определят нужно ли запускать workflow
25
     *
26
     * @var boolean
27
     */
28
    protected $workflowDispatch = false;
29
30
    /**
31
     * Определяет что мы хотим сделать с workflow. Запустить новый процесс (initialize), или инициировать переход в уже
32
     * запущенном процессе (doAction)
33
     *
34
     * @var string
35
     */
36
    protected $workflowRunType;
37
38
    /**
39
     * Флаг определят нужно вызвать метод или сервис, с целью подготовки данных, которые в дальнейшем передаются в workflow
40
     *
41
     * @var bool
42
     */
43
    protected $flagRunPrepareData = false;
44
45
    /**
46
     * Значение определяет что является обработчиком подготавливающим данные (метод контроллера, сервис и т.д.)
47
     *
48
     * @var string
49
     */
50
    protected $prepareDataMethod;
51
52
    /**
53
     * Строка содержащая имя обработчика (имя метода контроллера или имя сервиса) в котором происходит подготовка данных
54
     *
55
     * @var string
56
     */
57
    protected $prepareDataHandler;
58
59
    /**
60
     * Флаг указывает на то что есть условия для запуска workflow
61
     *
62
     * @var bool
63
     */
64
    protected $flagHasConditions = false;
65
66
    /**
67
     * Метаданные, содержащии информацию о том как вызвать условия, для проверка нужно ли запускать workflow
68
     *
69
     * @var DispatchConditionMetadata[]|SplObjectStorage
70
     */
71
    protected $conditions;
72
73
    /**
74
     * Разрешенные способы запука обработчика отвечающего за подготовку данных для wf
75
     *
76
     * @var array
77
     */
78
    protected $allowPrepareDataMethod = [
79
        self::PREPARE_DATA_RUN_TYPE_METHOD => self::PREPARE_DATA_RUN_TYPE_METHOD
80
    ];
81
82
    /**
83
     *
84
     */
85
    public function __construct()
86
    {
87
        $this->conditions = new SplObjectStorage();
88
    }
89
90
    /**
91
     * Флаг определят нужно ли запускать workflow
92
     *
93
     * @return boolean
94
     */
95
    public function isWorkflowDispatch()
96
    {
97
        return $this->workflowDispatch;
98
    }
99
100
    /**
101
     * Устанавливает флаг определяющий нужно ли запускать workflow
102
     *
103
     * @param boolean $workflowDispatch
104
     *
105
     * @return $this
106
     */
107
    public function setWorkflowDispatch($workflowDispatch)
108
    {
109
        $this->workflowDispatch = (boolean)$workflowDispatch;
110
111
        return $this;
112
    }
113
114
    /**
115
     * Определяет что мы хотим сделать с workflow. Запустить новый процесс (initialize), или инициировать переход в уже
116
     * запущенном процессе (doAction)
117
     *
118
     * @return string
119
     */
120
    public function getWorkflowRunType()
121
    {
122
        return $this->workflowRunType;
123
    }
124
125
    /**
126
     *
127
     * Определяет что мы хотим сделать с workflow. Запустить новый процесс (initialize), или инициировать переход в уже
128
     * запущенном процессе (doAction)
129
     *
130
     * @param string $workflowRunType
131
     *
132
     * @return $this
133
     *
134
     */
135
    public function setWorkflowRunType($workflowRunType)
136
    {
137
        $this->workflowRunType = (string)$workflowRunType;
138
139
        return $this;
140
    }
141
142
    /**
143
     *  Флаг определят нужно вызвать метод или сервис, с целью подготовки данных, которые в дальнейшем передаются в workflow
144
     *
145
     * @return boolean
146
     */
147
    public function isFlagRunPrepareData()
148
    {
149
        return $this->flagRunPrepareData;
150
    }
151
152
    /**
153
     * Устанавливает флаг определяющий нужно вызвать метод или сервис, с целью подготовки данных, которые в дальнейшем
154
     * передаются в workflow
155
     *
156
     * @param boolean $flagRunPrepareData
157
     *
158
     * @return $this
159
     */
160
    public function setFlagRunPrepareData($flagRunPrepareData)
161
    {
162
        $this->flagRunPrepareData = (boolean)$flagRunPrepareData;
163
164
        return $this;
165
    }
166
167
    /**
168
     * Значение определяет что является обработчиком подготавливающим данные (метод контроллера, сервис и т.д.)
169
     *
170
     * @return string
171
     */
172
    public function getPrepareDataMethod()
173
    {
174
        return $this->prepareDataMethod;
175
    }
176
177
    /**
178
     * Устанавливает значение определяющие что является обработчиком подготавливающим данные
179
     * (метод контроллера, сервис и т.д.)
180
     *
181
     * @param string $prepareDataMethod
182
     *
183
     * @return $this
184
     *
185
     * @throws Exception\InvalidMetadataException
186
     */
187 View Code Duplication
    public function setPrepareDataMethod($prepareDataMethod)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
188
    {
189
        if (!array_key_exists($prepareDataMethod, $this->allowPrepareDataMethod)) {
190
            $errMsg = sprintf('Not allowed prepare data method %s', $prepareDataMethod);
191
            throw new Exception\InvalidMetadataException($errMsg);
192
        }
193
        $this->prepareDataMethod = (string)$prepareDataMethod;
194
195
        return $this;
196
    }
197
198
    /**
199
     *  Строка содержащая имя обработчика (имя метода контроллера или имя сервиса) в котором происходит подготовка данных
200
     *
201
     * @return string
202
     */
203
    public function getPrepareDataHandler()
204
    {
205
        return $this->prepareDataHandler;
206
    }
207
208
    /**
209
     * Устанавлвивает строку содержащую имя обработчика (имя метода контроллера или имя сервиса)
210
     * в котором происходит подготовка данных
211
     *
212
     * @param string $prepareDataHandler
213
     *
214
     * @return $this
215
     */
216
    public function setPrepareDataHandler($prepareDataHandler)
217
    {
218
        $this->prepareDataHandler = (string)$prepareDataHandler;
219
220
        return $this;
221
    }
222
223
    /**
224
     * Флаг указывает на то что есть условия для запуска workflow
225
     *
226
     * @return boolean
227
     */
228
    public function getFlagHasConditions()
229
    {
230
        return $this->flagHasConditions;
231
    }
232
233
    /**
234
     * Устанавливает флаг указываеющий на то что есть условия для запуска workflow
235
     *
236
     * @param boolean $flagHasConditions
237
     *
238
     * @return $this
239
     */
240
    public function setFlagHasConditions($flagHasConditions)
241
    {
242
        $this->flagHasConditions = (boolean)$flagHasConditions;
243
244
        return $this;
245
    }
246
247
    /**
248
     * Возвращает метаданные, содержащии информацию о том как вызвать условия, для проверка нужно ли запускать workflow
249
     *
250
     * @return DispatchConditionMetadata[]|SplObjectStorage
251
     */
252
    public function getConditions()
253
    {
254
        return $this->conditions;
255
    }
256
257
    /**
258
     * Добавляет метаданные, содержащии информацию о том как вызвать условия, для проверка нужно ли запускать workflow
259
     *
260
     * @param DispatchConditionMetadata $condition
261
     *
262
     * @return $this
263
     */
264
    public function addConditions(DispatchConditionMetadata $condition)
265
    {
266
        if (!$this->conditions->contains($condition)) {
267
            $this->conditions->attach($condition);
268
        }
269
        return $this;
270
    }
271
272
    /**
273
     * Проверка метаданных
274
     *
275
     * @throws Exception\InvalidMetadataException
276
     */
277
    public function validate()
278
    {
279
        if ($this->isWorkflowDispatch() && null === $this->getWorkflowRunType()) {
280
            $errMsg = 'workflowRunType not specified';
281
            throw new Exception\InvalidMetadataException($errMsg);
282
        }
283
284
        if ($this->isFlagRunPrepareData()) {
285
            if (null === $this->getPrepareDataMethod()) {
286
                $errMsg = 'prepareDataMethod not specified';
287
                throw new Exception\InvalidMetadataException($errMsg);
288
            }
289
            if (null === $this->getPrepareDataMethod()) {
290
                $errMsg = 'prepareDataMethod not specified';
291
                throw new Exception\InvalidMetadataException($errMsg);
292
            }
293
        }
294
295
        if ($this->getFlagHasConditions()) {
296
            if (0 === count($this->getConditions())) {
297
                $errMsg = 'empty conditions';
298
                throw new Exception\InvalidMetadataException($errMsg);
299
            }
300
301
            foreach ($this->getConditions() as $condition) {
302
                $condition->validate();
303
            }
304
        }
305
    }
306
}
307