Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3namespace Wikimedia\RemexHtml\Tokenizer;
4
5/**
6 * Interface for attributes emitted by the tokenizer
7 */
8interface Attributes extends \ArrayAccess, \IteratorAggregate {
9    /**
10     * Get the attributes as a key/value array
11     * @return string[]
12     */
13    public function getValues();
14
15    /**
16     * Get the attributes as an array of Attribute objects
17     * @return Attribute[]
18     */
19    public function getObjects();
20
21    /**
22     * Get the number of attributes. This may include duplicates, and so may
23     * be larger than count( $this->getValues() ). Including duplicates
24     * gives us an efficient way to distinguish zero attributes from non-zero
25     * but is not compliant with the spec, which states that duplicate
26     * attributes must be removed.
27     *
28     * @return int
29     */
30    public function count();
31
32    /**
33     * Add any attributes in the argument to $this, but if an attribute of the
34     * same name already exists, do not overwrite it.
35     *
36     * @param Attributes $other
37     */
38    public function merge( Attributes $other );
39
40    /**
41     * It's efficient to assume that attributes are immutable when cloning
42     * nodes due to AFE reconstruction or AAA. So by default, this returns
43     * $this. But users can override it if attribute cloning needs special
44     * handling.
45     *
46     * @return Attributes
47     */
48    public function clone();
49}