InitializeHtmlUniParserAction   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 19
c 1
b 0
f 0
dl 0
loc 30
rs 10
wmc 5

1 Method

Rating   Name   Duplication   Size   Complexity  
A run() 0 25 5
1
<?php
2
declare(strict_types=1);
3
4
namespace kosuha606\HtmlUniParser\action;
5
6
use Assert\Assertion;
7
use kosuha606\HtmlUniParser\HtmlUniParser;
8
use kosuha606\HtmlUniParser\ZendBasedParser;
9
10
/**
11
 * Initialize process
12
 * @package kosuha606\HtmlUniParser\action
13
 */
14
class InitializeHtmlUniParserAction extends AbstractLogicAction
15
{
16
    /**
17
     * @throws \Assert\AssertionFailedException
18
     */
19
    public function run()
20
    {
21
        /** @var HtmlUniParser $htmlParserInst */
22
        $htmlParserInst = $this->args[0];
23
        /** @var ZendBasedParser $zendParserInst */
24
        $zendParserInst = $this->args[1];
25
        Assertion::isInstanceOf($htmlParserInst, HtmlUniParser::class);
26
        Assertion::isInstanceOf($zendParserInst, ZendBasedParser::class);
27
        $htmlParserInst->setZendParser($zendParserInst);
28
        $xpathOnCardMany = $xpathOnCardHtml = [];
29
        if (\count($htmlParserInst->getXpathOnCard()) > 0) {
30
            $xpathOnCard = $htmlParserInst->getXpathOnCard();
31
            foreach ($xpathOnCard as $param => &$xpath) {
32
                if (\strpos($xpath, 'MANY') !== false) {
33
                    $xpathOnCardMany[] = $param;
34
                    $xpath = \str_replace('MANY', '', $xpath);
35
                }
36
                if (\strpos($xpath, 'HTML') !== false) {
37
                    $xpathOnCardHtml[] = $param;
38
                    $xpath = \str_replace('HTML', '', $xpath);
39
                }
40
            }
41
            $htmlParserInst->setXpathOnCard($xpathOnCard);
42
            $htmlParserInst->setXpathOnCardHtml($xpathOnCardHtml);
43
            $htmlParserInst->setXpathOnCardMany($xpathOnCardMany);
44
        }
45
    }
46
}