Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 9
CRAP
0.00% covered (danger)
0.00%
0 / 1
DOMDataUtils
0.00% covered (danger)
0.00%
0 / 9
0.00% covered (danger)
0.00%
0 / 9
90
0.00% covered (danger)
0.00%
0 / 1
 getDataParsoid
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setDataParsoid
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getDataMw
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 dataMwExists
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setDataMw
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getDataParsoidDiff
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setDataParsoidDiff
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 noAttrs
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 cloneNode
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 stdClass;
7use Wikimedia\Parsoid\DOM\Element;
8use Wikimedia\Parsoid\NodeData\DataMw;
9use Wikimedia\Parsoid\NodeData\DataParsoid;
10use Wikimedia\Parsoid\Utils\DOMDataUtils as DDU;
11
12/**
13 * This class provides DOM data helpers needed by extensions.
14 * These helpers support fetching / updating attributes of DOM nodes.
15 */
16class DOMDataUtils {
17    /**
18     * Get data parsoid info from DOM element
19     * @param Element $elt
20     * @return DataParsoid ( this is mostly used for type hinting )
21     */
22    public static function getDataParsoid( Element $elt ): DataParsoid {
23        return DDU::getDataParsoid( $elt );
24    }
25
26    /**
27     * Set data parsoid info on a DOM element
28     * @param Element $elt
29     * @param ?DataParsoid $dp data-parsoid
30     */
31    public static function setDataParsoid( Element $elt, ?DataParsoid $dp ): void {
32        DDU::setDataParsoid( $elt, $dp );
33    }
34
35    /**
36     * Get data meta wiki info from a DOM element
37     * @param Element $elt
38     * @return ?DataMw
39     */
40    public static function getDataMw( Element $elt ): ?DataMw {
41        return DDU::getDataMw( $elt );
42    }
43
44    /**
45     * Check if there is meta wiki info on a DOM element
46     * @param Element $elt
47     * @return bool
48     */
49    public static function dataMwExists( Element $elt ): bool {
50        return DDU::validDataMw( $elt );
51    }
52
53    /**
54     * Set data meta wiki info from a DOM element
55     * @param Element $elt
56     * @param ?DataMw $dmw data-mw
57     */
58    public static function setDataMw( Element $elt, ?DataMw $dmw ): void {
59        DDU::setDataMw( $elt, $dmw );
60    }
61
62    /**
63     * Get data diff info from a DOM element.
64     * @param Element $elt
65     * @return ?stdClass
66     */
67    public static function getDataParsoidDiff( Element $elt ): ?stdClass {
68        return DDU::getDataParsoidDiff( $elt );
69    }
70
71    /**
72     * Set data diff info on a DOM element.
73     * @param Element $elt
74     * @param ?stdClass $diffObj data-parsoid-diff object
75     */
76    public static function setDataParsoidDiff( Element $elt, ?stdClass $diffObj ): void {
77        DDU::setDataParsoidDiff( $elt, $diffObj );
78    }
79
80    /**
81     * Does this node have any attributes? This method is the preferred way of
82     * interrogating this property since Parsoid DOMs might have Parsoid-internal
83     * attributes added.
84     * @param Element $elt
85     * @return bool
86     */
87    public static function noAttrs( Element $elt ): bool {
88        return DDU::noAttrs( $elt );
89    }
90
91    /**
92     * Clones a node and its data bag
93     * @param Element $elt
94     * @param bool $deep
95     * @return Element
96     */
97    public static function cloneNode( Element $elt, bool $deep ): Element {
98        return DDU::cloneNode( $elt, $deep );
99    }
100}