Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
DOMPPTraverser
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 3
12
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 addHandler
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 run
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2declare( strict_types = 1 );
3
4namespace Wikimedia\Parsoid\Wt2Html;
5
6use Wikimedia\Parsoid\Config\Env;
7use Wikimedia\Parsoid\DOM\Node;
8use Wikimedia\Parsoid\Ext\ParsoidExtensionAPI;
9use Wikimedia\Parsoid\Utils\DOMTraverser;
10use Wikimedia\Parsoid\Utils\DTState;
11
12/**
13 * This is a class that wraps the DOMTraverser utility for use
14 * in the DOM Post Processor pipeline.
15 */
16class DOMPPTraverser implements Wt2HtmlDOMProcessor {
17    private DOMTraverser $dt;
18
19    public function __construct( bool $traverseWithTplInfo = false, bool $applyToAttributeEmbeddedHTML = false ) {
20        $this->dt = new DOMTraverser( $traverseWithTplInfo, $applyToAttributeEmbeddedHTML );
21    }
22
23    /**
24     * @param ?string $nodeName An optional node name filter
25     * @param callable $action A callback, called on each node we traverse that matches nodeName.
26     * Proxies call to underlying DOMTraverser. See docs for DOMTraverser::addHandler
27     */
28    public function addHandler( ?string $nodeName, callable $action ): void {
29        $this->dt->addHandler( $nodeName, $action );
30    }
31
32    /**
33     * @inheritDoc
34     */
35    public function run(
36        Env $env, Node $workNode, array $options = [], bool $atTopLevel = false
37    ): void {
38        $state = new DTState( $options, $atTopLevel );
39        $this->dt->traverse( new ParsoidExtensionAPI( $env ), $workNode, $state );
40    }
41}