doc/lib: Add class DocSearchMatch represeting a search match
refs #6630
This commit is contained in:
parent
312d18d14a
commit
267c36d8d1
|
@ -0,0 +1,151 @@
|
|||
<?php
|
||||
/* Icinga Web 2 | (c) 2013-2015 Icinga Development Team | GPLv2+ */
|
||||
|
||||
namespace Icinga\Module\Doc\Search;
|
||||
|
||||
use UnexpectedValueException;
|
||||
|
||||
/**
|
||||
* A doc search match
|
||||
*/
|
||||
class DocSearchMatch
|
||||
{
|
||||
/**
|
||||
* Header match
|
||||
*
|
||||
* @type int
|
||||
*/
|
||||
const MATCH_HEADER = 1;
|
||||
|
||||
/**
|
||||
* Content match
|
||||
*
|
||||
* @type int
|
||||
*/
|
||||
const MATCH_CONTENT = 2;
|
||||
|
||||
/**
|
||||
* Line
|
||||
*
|
||||
* @type string
|
||||
*/
|
||||
protected $line;
|
||||
|
||||
/**
|
||||
* Line number
|
||||
*
|
||||
* @type int
|
||||
*/
|
||||
protected $lineno;
|
||||
|
||||
/**
|
||||
* Type of the match
|
||||
*
|
||||
* @type int
|
||||
*/
|
||||
protected $matchType;
|
||||
|
||||
/**
|
||||
* Matches
|
||||
*
|
||||
* @type array
|
||||
*/
|
||||
protected $matches = array();
|
||||
|
||||
/**
|
||||
* Set the line
|
||||
*
|
||||
* @param string $line
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setLine($line)
|
||||
{
|
||||
$this->line = (string) $line;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the line
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getLine()
|
||||
{
|
||||
return $this->line;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the line number
|
||||
*
|
||||
* @param int $lineno
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setLineno($lineno)
|
||||
{
|
||||
$this->lineno = (int) $lineno;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the match type
|
||||
*
|
||||
* @param int $matchType
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setMatchType($matchType)
|
||||
{
|
||||
$matchType = (int) $matchType;
|
||||
if ($matchType !== static::MATCH_HEADER && $matchType !== static::MATCH_CONTENT) {
|
||||
throw new UnexpectedValueException();
|
||||
}
|
||||
$this->matchType = $matchType;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the match type
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getMatchType()
|
||||
{
|
||||
return $this->matchType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append a match
|
||||
*
|
||||
* @param string $match
|
||||
* @param int $position
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function appendMatch($match, $position)
|
||||
{
|
||||
$this->matches[(int) $position] = (string) $match;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the matches
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getMatches()
|
||||
{
|
||||
return $this->matches;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether the match is empty
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isEmpty()
|
||||
{
|
||||
return empty($this->matches);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue