Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
DiffDOMUtils
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 3
12
0.00% covered (danger)
0.00%
0 / 1
 hasNChildren
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 firstNonSepChild
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 nextNonSepSibling
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2declare( strict_types = 1 );
3
4namespace Wikimedia\Parsoid\Ext;
5
6use Wikimedia\Parsoid\DOM\Node;
7use Wikimedia\Parsoid\Utils\DiffDOMUtils as DDU;
8
9/**
10 */
11class DiffDOMUtils {
12
13    /**
14     * Test the number of children this node has without using
15     * `DOMNode::$childNodes->count()`.  This walks the sibling list and so
16     * takes O(`nchildren`) time -- so `nchildren` is expected to be small
17     * (say: 0, 1, or 2).
18     *
19     * Skips all diff markers by default.
20     * @param Node $node
21     * @param int $nchildren
22     * @param bool $countDiffMarkers
23     * @return bool
24     */
25    public static function hasNChildren(
26        Node $node, int $nchildren, bool $countDiffMarkers = false
27    ): bool {
28        return DDU::hasNChildren( $node, $nchildren, $countDiffMarkers );
29    }
30
31    /**
32     * Get the first child element or non-IEW text node, ignoring
33     * whitespace-only text nodes, comments, and deleted nodes.
34     *
35     * @param Node $node
36     * @return Node|null
37     */
38    public static function firstNonSepChild( Node $node ): ?Node {
39        return DDU::firstNonSepChild( $node );
40    }
41
42    /**
43     * Get the next non separator sibling node.
44     *
45     * @param Node $node
46     * @return Node|null
47     */
48    public static function nextNonSepSibling( Node $node ): ?Node {
49        return DDU::nextNonSepSibling( $node );
50    }
51
52}