@@ 263-284 (lines=22) @@ | ||
260 | * |
|
261 | * @SuppressWarnings(PHPMD.StaticAccess) |
|
262 | */ |
|
263 | private static function executeAndBlock( |
|
264 | $input, |
|
265 | int $blockIndex, |
|
266 | array $blocks, |
|
267 | ContextStorageInterface $context, |
|
268 | CaptureAggregatorInterface $captures |
|
269 | ): array { |
|
270 | $block = $blocks[$blockIndex]; |
|
271 | assert(static::getBlockType($block) === BlockSerializer::TYPE__AND_EXPRESSION); |
|
272 | ||
273 | $primaryIndex = $block[BlockSerializer::AND_EXPRESSION_PRIMARY]; |
|
274 | $result = static::executeBlockImpl($input, $primaryIndex, $blocks, $context, $captures); |
|
275 | if (BlockReplies::isResultSuccessful($result) === true) { |
|
276 | $nextInput = BlockReplies::extractResultOutput($result); |
|
277 | $secondaryIndex = $block[BlockSerializer::AND_EXPRESSION_SECONDARY]; |
|
278 | $result = static::executeBlockImpl($nextInput, $secondaryIndex, $blocks, $context, $captures); |
|
279 | } |
|
280 | ||
281 | static::captureSuccessfulBlockResultIfEnabled($result, $block, $captures); |
|
282 | ||
283 | return $result; |
|
284 | } |
|
285 | ||
286 | /** |
|
287 | * @param mixed $input |
|
@@ 298-320 (lines=23) @@ | ||
295 | * @SuppressWarnings(PHPMD.StaticAccess) |
|
296 | * @SuppressWarnings(PHPMD.ElseExpression) |
|
297 | */ |
|
298 | private static function executeOrBlock( |
|
299 | $input, |
|
300 | int $blockIndex, |
|
301 | array $blocks, |
|
302 | ContextStorageInterface $context, |
|
303 | CaptureAggregatorInterface $captures |
|
304 | ): array { |
|
305 | $block = $blocks[$blockIndex]; |
|
306 | assert(static::getBlockType($block) === BlockSerializer::TYPE__OR_EXPRESSION); |
|
307 | ||
308 | $primaryIndex = $block[BlockSerializer::OR_EXPRESSION_PRIMARY]; |
|
309 | $resultFromPrimary = static::executeBlockImpl($input, $primaryIndex, $blocks, $context, $captures); |
|
310 | if (BlockReplies::isResultSuccessful($resultFromPrimary) === true) { |
|
311 | $result = $resultFromPrimary; |
|
312 | } else { |
|
313 | $secondaryIndex = $block[BlockSerializer::OR_EXPRESSION_SECONDARY]; |
|
314 | $result = static::executeBlockImpl($input, $secondaryIndex, $blocks, $context, $captures); |
|
315 | } |
|
316 | ||
317 | static::captureSuccessfulBlockResultIfEnabled($result, $block, $captures); |
|
318 | ||
319 | return $result; |
|
320 | } |
|
321 | ||
322 | /** |
|
323 | * @param array $serializedBlocks |