Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
7 / 7 |
CRAP | |
100.00% |
15 / 15 |
MySQLIndex | |
100.00% |
1 / 1 |
|
100.00% |
7 / 7 |
7 | |
100.00% |
15 / 15 |
__construct | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
fromResultSet | |
100.00% |
1 / 1 |
1 | |
100.00% |
5 / 5 |
|||
addIndexPart | |
100.00% |
1 / 1 |
1 | |
100.00% |
4 / 4 |
|||
getName | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
getType | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
getIsUnique | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
getIndexPartList | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
<?php | |
declare(strict_types = 1); | |
namespace Siesta\Driver\MySQL\MetaData; | |
use Siesta\Database\MetaData\IndexMetaData; | |
use Siesta\Database\MetaData\IndexPartMetaData; | |
use Siesta\Database\ResultSet; | |
/** | |
* @author Gregor Müller | |
*/ | |
class MySQLIndex implements IndexMetaData | |
{ | |
const PRIMARY_KEY_INDEX_NAME = "PRIMARY"; | |
const INDEX_NAME = "INDEX_NAME"; | |
const NON_UNIQUE = "NON_UNIQUE"; | |
const SEQ_IN_INDEX = "SEQ_IN_INDEX"; | |
const NULLABLE = "NULLABLE"; | |
const NULLABLE_YES = "YES"; | |
const INDEX_TYPE = "INDEX_TYPE"; | |
/** | |
* @var IndexPartMetaData[] | |
*/ | |
protected $indexPartList; | |
/** | |
* @var string | |
*/ | |
protected $name; | |
/** | |
* @var bool | |
*/ | |
protected $unique; | |
/** | |
* @var string | |
*/ | |
protected $type; | |
/** | |
* MySQLIndex constructor. | |
*/ | |
public function __construct() | |
{ | |
$this->indexPartList = []; | |
} | |
/** | |
* @param ResultSet $resultSet | |
*/ | |
public function fromResultSet(ResultSet $resultSet) | |
{ | |
$this->name = $resultSet->getStringValue(self::INDEX_NAME); | |
$this->unique = $resultSet->getIntegerValue(self::NON_UNIQUE) === 0; | |
$this->type = $resultSet->getStringValue(self::INDEX_TYPE); | |
$this->addIndexPart($resultSet); | |
} | |
/** | |
* @param ResultSet $resultSet | |
*/ | |
public function addIndexPart(ResultSet $resultSet) | |
{ | |
$indexPart = new MySQLIndexPart(); | |
$indexPart->fromResultSet($resultSet); | |
$this->indexPartList[] = $indexPart; | |
} | |
/** | |
* @return string | |
*/ | |
public function getName() : string | |
{ | |
return $this->name; | |
} | |
/** | |
* @return string | |
*/ | |
public function getType() : string | |
{ | |
return strtolower($this->type); | |
} | |
/** | |
* @return bool | |
*/ | |
public function getIsUnique() : bool | |
{ | |
return $this->unique; | |
} | |
/** | |
* @return IndexPartMetaData[] | |
*/ | |
public function getIndexPartList() : array | |
{ | |
return $this->indexPartList; | |
} | |
} |