xref: /plugin/struct/meta/SearchResult.php (revision ba7f5789bbbcab95d7a655f6ec50a97b731b40d5)
1*ba7f5789SAnna Dabrowska<?php
2*ba7f5789SAnna Dabrowska
3*ba7f5789SAnna Dabrowskanamespace dokuwiki\plugin\struct\meta;
4*ba7f5789SAnna Dabrowska
5*ba7f5789SAnna Dabrowska/**
6*ba7f5789SAnna Dabrowska * Class SearchResult
7*ba7f5789SAnna Dabrowska *
8*ba7f5789SAnna Dabrowska * Search is executed only once per request.
9*ba7f5789SAnna Dabrowska */
10*ba7f5789SAnna Dabrowskaclass SearchResult
11*ba7f5789SAnna Dabrowska{
12*ba7f5789SAnna Dabrowska    /** @var Value[][] */
13*ba7f5789SAnna Dabrowska    protected $rows = [];
14*ba7f5789SAnna Dabrowska    /** @var array */
15*ba7f5789SAnna Dabrowska    protected $pids = [];
16*ba7f5789SAnna Dabrowska    protected $rids = [];
17*ba7f5789SAnna Dabrowska    /** @var array */
18*ba7f5789SAnna Dabrowska    protected $revs = [];
19*ba7f5789SAnna Dabrowska    /** @var int */
20*ba7f5789SAnna Dabrowska    protected $count = -1;
21*ba7f5789SAnna Dabrowska
22*ba7f5789SAnna Dabrowska    /** @var SearchResult */
23*ba7f5789SAnna Dabrowska    protected static $instance;
24*ba7f5789SAnna Dabrowska
25*ba7f5789SAnna Dabrowska    /**
26*ba7f5789SAnna Dabrowska     * Get the singleton instance of SearchResult
27*ba7f5789SAnna Dabrowska     *
28*ba7f5789SAnna Dabrowska     * @return SearchResult
29*ba7f5789SAnna Dabrowska     */
30*ba7f5789SAnna Dabrowska    public static function getInstance()
31*ba7f5789SAnna Dabrowska    {
32*ba7f5789SAnna Dabrowska        if (is_null(self::$instance)) {
33*ba7f5789SAnna Dabrowska            $class = static::class;
34*ba7f5789SAnna Dabrowska            self::$instance = new $class();
35*ba7f5789SAnna Dabrowska        }
36*ba7f5789SAnna Dabrowska        return self::$instance;
37*ba7f5789SAnna Dabrowska    }
38*ba7f5789SAnna Dabrowska
39*ba7f5789SAnna Dabrowska    /**
40*ba7f5789SAnna Dabrowska     * @return array
41*ba7f5789SAnna Dabrowska     */
42*ba7f5789SAnna Dabrowska    public function getPids(): array
43*ba7f5789SAnna Dabrowska    {
44*ba7f5789SAnna Dabrowska        return $this->pids;
45*ba7f5789SAnna Dabrowska    }
46*ba7f5789SAnna Dabrowska
47*ba7f5789SAnna Dabrowska    /**
48*ba7f5789SAnna Dabrowska     * @return Value[][]
49*ba7f5789SAnna Dabrowska     */
50*ba7f5789SAnna Dabrowska    public function getRows()
51*ba7f5789SAnna Dabrowska    {
52*ba7f5789SAnna Dabrowska        return $this->rows;
53*ba7f5789SAnna Dabrowska    }
54*ba7f5789SAnna Dabrowska
55*ba7f5789SAnna Dabrowska    /**
56*ba7f5789SAnna Dabrowska     * @return array
57*ba7f5789SAnna Dabrowska     */
58*ba7f5789SAnna Dabrowska    public function getRids(): array
59*ba7f5789SAnna Dabrowska    {
60*ba7f5789SAnna Dabrowska        return $this->rids;
61*ba7f5789SAnna Dabrowska    }
62*ba7f5789SAnna Dabrowska
63*ba7f5789SAnna Dabrowska    /**
64*ba7f5789SAnna Dabrowska     * @return int
65*ba7f5789SAnna Dabrowska     */
66*ba7f5789SAnna Dabrowska    public function getCount(): int
67*ba7f5789SAnna Dabrowska    {
68*ba7f5789SAnna Dabrowska        return $this->count;
69*ba7f5789SAnna Dabrowska    }
70*ba7f5789SAnna Dabrowska
71*ba7f5789SAnna Dabrowska    /**
72*ba7f5789SAnna Dabrowska     * @return array
73*ba7f5789SAnna Dabrowska     */
74*ba7f5789SAnna Dabrowska    public function getRevs(): array
75*ba7f5789SAnna Dabrowska    {
76*ba7f5789SAnna Dabrowska        return $this->revs;
77*ba7f5789SAnna Dabrowska    }
78*ba7f5789SAnna Dabrowska
79*ba7f5789SAnna Dabrowska    /**
80*ba7f5789SAnna Dabrowska     * @param string $pid
81*ba7f5789SAnna Dabrowska     * @return void
82*ba7f5789SAnna Dabrowska     */
83*ba7f5789SAnna Dabrowska    public function addPid($pid)
84*ba7f5789SAnna Dabrowska    {
85*ba7f5789SAnna Dabrowska        $this->pids[] = $pid;
86*ba7f5789SAnna Dabrowska    }
87*ba7f5789SAnna Dabrowska
88*ba7f5789SAnna Dabrowska    /**
89*ba7f5789SAnna Dabrowska     * @param int $rid
90*ba7f5789SAnna Dabrowska     * @return void
91*ba7f5789SAnna Dabrowska     */
92*ba7f5789SAnna Dabrowska    public function addRid($rid)
93*ba7f5789SAnna Dabrowska    {
94*ba7f5789SAnna Dabrowska        $this->rids[] = $rid;
95*ba7f5789SAnna Dabrowska    }
96*ba7f5789SAnna Dabrowska
97*ba7f5789SAnna Dabrowska    /**
98*ba7f5789SAnna Dabrowska     * @param int $rev
99*ba7f5789SAnna Dabrowska     * @return void
100*ba7f5789SAnna Dabrowska     */
101*ba7f5789SAnna Dabrowska    public function addRev($rev)
102*ba7f5789SAnna Dabrowska    {
103*ba7f5789SAnna Dabrowska        $this->revs[] = $rev;
104*ba7f5789SAnna Dabrowska    }
105*ba7f5789SAnna Dabrowska
106*ba7f5789SAnna Dabrowska    /**
107*ba7f5789SAnna Dabrowska     * @param array $result
108*ba7f5789SAnna Dabrowska     * @return void
109*ba7f5789SAnna Dabrowska     */
110*ba7f5789SAnna Dabrowska    public function addRow($row)
111*ba7f5789SAnna Dabrowska    {
112*ba7f5789SAnna Dabrowska        $this->rows[] = $row;
113*ba7f5789SAnna Dabrowska    }
114*ba7f5789SAnna Dabrowska
115*ba7f5789SAnna Dabrowska    /**
116*ba7f5789SAnna Dabrowska     * @return void
117*ba7f5789SAnna Dabrowska     */
118*ba7f5789SAnna Dabrowska    public function increaseCount()
119*ba7f5789SAnna Dabrowska    {
120*ba7f5789SAnna Dabrowska        $this->count++;
121*ba7f5789SAnna Dabrowska    }
122*ba7f5789SAnna Dabrowska/**
123*ba7f5789SAnna Dabrowska     * @return void
124*ba7f5789SAnna Dabrowska     */
125*ba7f5789SAnna Dabrowska    public function decreaseCount()
126*ba7f5789SAnna Dabrowska    {
127*ba7f5789SAnna Dabrowska        $this->count--;
128*ba7f5789SAnna Dabrowska    }
129*ba7f5789SAnna Dabrowska}
130