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