1<?php declare(strict_types=1);
2
3namespace DOMWrap\Traits;
4
5use DOMWrap\NodeList;
6
7/**
8 * Node Trait
9 *
10 * @package DOMWrap\Traits
11 * @license http://opensource.org/licenses/BSD-3-Clause BSD 3 Clause
12 * @property \DOMDocument $ownerDocument
13 */
14trait NodeTrait
15{
16    /**
17     * @return NodeList
18     */
19    public function collection(): NodeList {
20        return $this->newNodeList([$this]);
21    }
22
23    /**
24     * @return \DOMDocument
25     */
26    public function document(): ?\DOMDocument {
27        if ($this->isRemoved()) {
28            return null;
29        }
30
31        return $this->ownerDocument;
32    }
33
34    /**
35     * @param NodeList $nodeList
36     *
37     * @return NodeList|\DOMNode|null
38     */
39    public function result(NodeList $nodeList) {
40        if ($nodeList->count()) {
41            return $nodeList->first();
42        }
43
44        return null;
45    }
46}