Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
11 / 11 |
CRAP | |
100.00% |
35 / 35 |
XMLIndex | |
100.00% |
1 / 1 |
|
100.00% |
11 / 11 |
14 | |
100.00% |
35 / 35 |
__construct | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
fromXML | |
100.00% |
1 / 1 |
2 | |
100.00% |
8 / 8 |
|||
toXML | |
100.00% |
1 / 1 |
2 | |
100.00% |
7 / 7 |
|||
fromIndexMetaData | |
100.00% |
1 / 1 |
2 | |
100.00% |
8 / 8 |
|||
getName | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
setName | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
getIsUnique | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
setIsUnique | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
getIndexType | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
setIndexType | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
getIndexPartList | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
<?php | |
declare(strict_types = 1); | |
namespace Siesta\XML; | |
use Siesta\Database\MetaData\IndexMetaData; | |
/** | |
* @author Gregor Müller | |
*/ | |
class XMLIndex | |
{ | |
const ELEMENT_INDEX_NAME = "index"; | |
const INDEX_NAME = "name"; | |
const UNIQUE = "unique"; | |
const INDEX_TYPE = "type"; | |
/** | |
* @var string | |
*/ | |
protected $name; | |
/** | |
* @var bool | |
*/ | |
protected $isUnique; | |
/** | |
* @var string | |
*/ | |
protected $indexType; | |
/** | |
* @var XMLIndexPart[] | |
*/ | |
protected $indexPartList; | |
/** | |
* XMLIndex constructor. | |
*/ | |
public function __construct() | |
{ | |
$this->indexPartList = []; | |
} | |
/** | |
* @param XMLAccess $xmlAccess | |
*/ | |
public function fromXML(XMLAccess $xmlAccess) | |
{ | |
$this->setName($xmlAccess->getAttribute(self::INDEX_NAME)); | |
$this->setIndexType($xmlAccess->getAttribute(self::INDEX_TYPE)); | |
$this->setIsUnique($xmlAccess->getAttributeAsBool(self::UNIQUE)); | |
foreach ($xmlAccess->getXMLChildElementListByName(XMLIndexPart::ELEMENT_INDEX_PART_NAME) as $xmlIndexPartAccess) { | |
$xmlIndexPart = new XMLIndexPart(); | |
$xmlIndexPart->fromXML($xmlIndexPartAccess); | |
$this->indexPartList[] = $xmlIndexPart; | |
} | |
} | |
/** | |
* @param XMLWrite $parent | |
*/ | |
public function toXML(XMLWrite $parent) | |
{ | |
$xmlWrite = $parent->appendChild(self::ELEMENT_INDEX_NAME); | |
$xmlWrite->setAttribute(self::INDEX_NAME, $this->getName()); | |
$xmlWrite->setAttribute(self::INDEX_TYPE, $this->getIndexType()); | |
$xmlWrite->setBoolAttribute(self::UNIQUE, $this->getIsUnique()); | |
foreach ($this->getIndexPartList() as $indexPart) { | |
$indexPart->toXML($xmlWrite); | |
} | |
} | |
/** | |
* @param IndexMetaData $indexMetaData | |
*/ | |
public function fromIndexMetaData(IndexMetaData $indexMetaData) | |
{ | |
$this->setName($indexMetaData->getName()); | |
$this->setIndexType($indexMetaData->getType()); | |
$this->setIsUnique($indexMetaData->getIsUnique()); | |
foreach ($indexMetaData->getIndexPartList() as $indexPartMetaData) { | |
$xmlIndexPart = new XMLIndexPart(); | |
$xmlIndexPart->fromIndexPartMetaData($indexPartMetaData); | |
$this->indexPartList[] = $xmlIndexPart; | |
} | |
} | |
/** | |
* @return string | |
*/ | |
public function getName() | |
{ | |
return $this->name; | |
} | |
/** | |
* @param string $name | |
*/ | |
public function setName($name) | |
{ | |
$this->name = $name; | |
} | |
/** | |
* @return boolean | |
*/ | |
public function getIsUnique() | |
{ | |
return $this->isUnique; | |
} | |
/** | |
* @param boolean $isUnique | |
*/ | |
public function setIsUnique($isUnique) | |
{ | |
$this->isUnique = $isUnique; | |
} | |
/** | |
* @return string | |
*/ | |
public function getIndexType() | |
{ | |
return $this->indexType; | |
} | |
/** | |
* @param string $indexType | |
*/ | |
public function setIndexType($indexType) | |
{ | |
$this->indexType = $indexType; | |
} | |
/** | |
* @return XMLIndexPart[] | |
*/ | |
public function getIndexPartList() | |
{ | |
return $this->indexPartList; | |
} | |
} |