1<?php declare(strict_types=1);
2
3namespace DOMWrap\Traits;
4
5use DOMWrap\NodeList;
6
7/**
8 * Common Trait
9 *
10 * @package DOMWrap\Traits
11 * @license http://opensource.org/licenses/BSD-3-Clause BSD 3 Clause
12 */
13trait CommonTrait
14{
15    /**
16     * @return NodeList
17     */
18    abstract public function collection(): NodeList;
19
20    /**
21     * @return \DOMDocument
22     */
23    abstract public function document(): ?\DOMDocument;
24
25    /**
26     * @param NodeList $nodeList
27     *
28     * @return NodeList|\DOMNode
29     */
30    abstract public function result(NodeList $nodeList);
31
32    /**
33     * @return bool
34     */
35    public function isRemoved(): bool {
36        return !isset($this->nodeType);
37    }
38}