@@ 289-310 (lines=22) @@ | ||
286 | * |
|
287 | * @SuppressWarnings(PHPMD.StaticAccess) |
|
288 | */ |
|
289 | private static function executeAndBlock( |
|
290 | $input, |
|
291 | int $blockIndex, |
|
292 | array $blocks, |
|
293 | ContextStorageInterface $context, |
|
294 | CaptureAggregatorInterface $captures |
|
295 | ): array { |
|
296 | $block = $blocks[$blockIndex]; |
|
297 | assert(static::getBlockType($block) === BlockSerializer::TYPE__AND_EXPRESSION); |
|
298 | ||
299 | $primaryIndex = $block[BlockSerializer::AND_EXPRESSION_PRIMARY]; |
|
300 | $result = static::executeBlockImpl($input, $primaryIndex, $blocks, $context, $captures); |
|
301 | if (BlockReplies::isResultSuccessful($result) === true) { |
|
302 | $nextInput = BlockReplies::extractResultOutput($result); |
|
303 | $secondaryIndex = $block[BlockSerializer::AND_EXPRESSION_SECONDARY]; |
|
304 | $result = static::executeBlockImpl($nextInput, $secondaryIndex, $blocks, $context, $captures); |
|
305 | } |
|
306 | ||
307 | static::captureSuccessfulBlockResultIfEnabled($result, $block, $captures); |
|
308 | ||
309 | return $result; |
|
310 | } |
|
311 | ||
312 | /** |
|
313 | * @param mixed $input |
|
@@ 324-346 (lines=23) @@ | ||
321 | * @SuppressWarnings(PHPMD.StaticAccess) |
|
322 | * @SuppressWarnings(PHPMD.ElseExpression) |
|
323 | */ |
|
324 | private static function executeOrBlock( |
|
325 | $input, |
|
326 | int $blockIndex, |
|
327 | array $blocks, |
|
328 | ContextStorageInterface $context, |
|
329 | CaptureAggregatorInterface $captures |
|
330 | ): array { |
|
331 | $block = $blocks[$blockIndex]; |
|
332 | assert(static::getBlockType($block) === BlockSerializer::TYPE__OR_EXPRESSION); |
|
333 | ||
334 | $primaryIndex = $block[BlockSerializer::OR_EXPRESSION_PRIMARY]; |
|
335 | $resultFromPrimary = static::executeBlockImpl($input, $primaryIndex, $blocks, $context, $captures); |
|
336 | if (BlockReplies::isResultSuccessful($resultFromPrimary) === true) { |
|
337 | $result = $resultFromPrimary; |
|
338 | } else { |
|
339 | $secondaryIndex = $block[BlockSerializer::OR_EXPRESSION_SECONDARY]; |
|
340 | $result = static::executeBlockImpl($input, $secondaryIndex, $blocks, $context, $captures); |
|
341 | } |
|
342 | ||
343 | static::captureSuccessfulBlockResultIfEnabled($result, $block, $captures); |
|
344 | ||
345 | return $result; |
|
346 | } |
|
347 | ||
348 | /** |
|
349 | * @param array $serializedBlocks |