Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
100.00% |
1 / 1 |
|
100.00% |
21 / 21 |
CRAP | |
100.00% |
57 / 57 |
| XMLAttribute | |
100.00% |
1 / 1 |
|
100.00% |
21 / 21 |
22 | |
100.00% |
57 / 57 |
| fromXML | |
100.00% |
1 / 1 |
1 | |
100.00% |
10 / 10 |
|||
| toXML | |
100.00% |
1 / 1 |
2 | |
100.00% |
10 / 10 |
|||
| fromColumnMetaData | |
100.00% |
1 / 1 |
1 | |
100.00% |
10 / 10 |
|||
| getPhpName | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| setPhpName | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| getPhpType | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| setPhpType | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| getDbName | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| setDbName | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| getDbType | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| setDbType | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| getIsPrimaryKey | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| setIsPrimaryKey | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| getDefaultValue | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| setDefaultValue | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| getAutoValue | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| setAutoValue | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| getIsRequired | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| setIsRequired | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| getIsTransient | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| setIsTransient | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| <?php | |
| declare(strict_types = 1); | |
| namespace Siesta\XML; | |
| use Siesta\Database\MetaData\ColumnMetaData; | |
| use Siesta\NamingStrategy\NamingStrategyRegistry; | |
| /** | |
| * @author Gregor Müller | |
| */ | |
| class XMLAttribute | |
| { | |
| const ELEMENT_ATTRIBUTE_NAME = "attribute"; | |
| const PHP_NAME = "name"; | |
| const PHP_TYPE = "type"; | |
| const DB_NAME = "dbName"; | |
| const DB_TYPE = "dbType"; | |
| const DEFAULT_VALUE = "defaultValue"; | |
| const PRIMARY_KEY = "primaryKey"; | |
| const REQUIRED = "required"; | |
| const AUTO_VALUE = "autoValue"; | |
| const TRANSIENT = "transient"; | |
| /** | |
| * @var string | |
| */ | |
| protected $phpName; | |
| /** | |
| * @var string | |
| */ | |
| protected $phpType; | |
| /** | |
| * @var string | |
| */ | |
| protected $dbName; | |
| /** | |
| * @var string | |
| */ | |
| protected $dbType; | |
| /** | |
| * @var bool | |
| */ | |
| protected $isPrimaryKey; | |
| /** | |
| * @var string | |
| */ | |
| protected $defaultValue; | |
| /** | |
| * @var string | |
| */ | |
| protected $autoValue; | |
| /** | |
| * @var bool | |
| */ | |
| protected $isRequired; | |
| /** | |
| * @var bool | |
| */ | |
| protected $isTransient; | |
| /** | |
| * @param XMLAccess $xmlAccess | |
| */ | |
| public function fromXML(XMLAccess $xmlAccess) | |
| { | |
| $this->setAutoValue($xmlAccess->getAttribute(self::AUTO_VALUE)); | |
| $this->setPhpName($xmlAccess->getAttribute(self::PHP_NAME)); | |
| $this->setPhpType($xmlAccess->getAttribute(self::PHP_TYPE)); | |
| $this->setDbName($xmlAccess->getAttribute(self::DB_NAME)); | |
| $this->setDbType($xmlAccess->getAttribute(self::DB_TYPE)); | |
| $this->setDefaultValue($xmlAccess->getAttribute(self::DEFAULT_VALUE)); | |
| $this->setIsPrimaryKey($xmlAccess->getAttributeAsBool(self::PRIMARY_KEY)); | |
| $this->setIsRequired($xmlAccess->getAttributeAsBool(self::REQUIRED)); | |
| $this->setIsTransient($xmlAccess->getAttributeAsBool(self::TRANSIENT)); | |
| } | |
| /** | |
| * @param XMLWrite $parent | |
| */ | |
| public function toXML(XMLWrite $parent) | |
| { | |
| $xmlWrite = $parent->appendChild(self::ELEMENT_ATTRIBUTE_NAME); | |
| $xmlWrite->setAttribute(self::PHP_NAME, $this->getPhpName()); | |
| $xmlWrite->setAttribute(self::PHP_TYPE, $this->getPhpType()); | |
| $xmlWrite->setAttribute(self::DB_NAME, $this->getDbName()); | |
| $xmlWrite->setAttribute(self::DB_TYPE, $this->getDbType()); | |
| $xmlWrite->setBoolAttributeIfTrue(self::PRIMARY_KEY, $this->getIsPrimaryKey()); | |
| $xmlWrite->setBoolAttributeIfTrue(self::REQUIRED, $this->getIsRequired()); | |
| if ($this->getAutoValue() !== null) { | |
| $xmlWrite->setAttribute(self::AUTO_VALUE, $this->getAutoValue()); | |
| } | |
| } | |
| /** | |
| * @param ColumnMetaData $columnMetaData | |
| */ | |
| public function fromColumnMetaData(ColumnMetaData $columnMetaData) | |
| { | |
| $namingStrategy = NamingStrategyRegistry::getAttributeNamingStrategy(); | |
| $phpName = $namingStrategy->transform($columnMetaData->getDBName()); | |
| $this->setPhpName($phpName); | |
| $this->setPhpType($columnMetaData->getPHPType()); | |
| $this->setDbName($columnMetaData->getDBName()); | |
| $this->setDbType($columnMetaData->getDBType()); | |
| $this->setIsPrimaryKey($columnMetaData->getIsPrimaryKey()); | |
| $this->setIsRequired($columnMetaData->getIsRequired()); | |
| $this->setAutoValue($columnMetaData->getAutoValue()); | |
| } | |
| /** | |
| * @return string | |
| */ | |
| public function getPhpName() | |
| { | |
| return $this->phpName; | |
| } | |
| /** | |
| * @param string $phpName | |
| */ | |
| public function setPhpName($phpName) | |
| { | |
| $this->phpName = $phpName; | |
| } | |
| /** | |
| * @return string | |
| */ | |
| public function getPhpType() | |
| { | |
| return $this->phpType; | |
| } | |
| /** | |
| * @param string $phpType | |
| */ | |
| public function setPhpType($phpType) | |
| { | |
| $this->phpType = $phpType; | |
| } | |
| /** | |
| * @return string | |
| */ | |
| public function getDbName() | |
| { | |
| return $this->dbName; | |
| } | |
| /** | |
| * @param string $dbName | |
| */ | |
| public function setDbName($dbName) | |
| { | |
| $this->dbName = $dbName; | |
| } | |
| /** | |
| * @return string | |
| */ | |
| public function getDbType() | |
| { | |
| return $this->dbType; | |
| } | |
| /** | |
| * @param string $dbType | |
| */ | |
| public function setDbType($dbType) | |
| { | |
| $this->dbType = $dbType; | |
| } | |
| /** | |
| * @return boolean | |
| */ | |
| public function getIsPrimaryKey() | |
| { | |
| return $this->isPrimaryKey; | |
| } | |
| /** | |
| * @param boolean $isPrimaryKey | |
| */ | |
| public function setIsPrimaryKey($isPrimaryKey) | |
| { | |
| $this->isPrimaryKey = $isPrimaryKey; | |
| } | |
| /** | |
| * @return string | |
| */ | |
| public function getDefaultValue() | |
| { | |
| return $this->defaultValue; | |
| } | |
| /** | |
| * @param string $defaultValue | |
| */ | |
| public function setDefaultValue($defaultValue) | |
| { | |
| $this->defaultValue = $defaultValue; | |
| } | |
| /** | |
| * @return string | |
| */ | |
| public function getAutoValue() | |
| { | |
| return $this->autoValue; | |
| } | |
| /** | |
| * @param string $autoValue | |
| */ | |
| public function setAutoValue($autoValue) | |
| { | |
| $this->autoValue = $autoValue; | |
| } | |
| /** | |
| * @return boolean | |
| */ | |
| public function getIsRequired() | |
| { | |
| return $this->isRequired; | |
| } | |
| /** | |
| * @param boolean $isRequired | |
| */ | |
| public function setIsRequired($isRequired) | |
| { | |
| $this->isRequired = $isRequired; | |
| } | |
| /** | |
| * @return boolean | |
| */ | |
| public function getIsTransient() | |
| { | |
| return $this->isTransient; | |
| } | |
| /** | |
| * @param boolean $isTransient | |
| */ | |
| public function setIsTransient($isTransient) | |
| { | |
| $this->isTransient = $isTransient; | |
| } | |
| } |