1*04fd306cSNickeau<?php 2*04fd306cSNickeau 3*04fd306cSNickeau 4*04fd306cSNickeaunamespace ComboStrap\Meta\Api; 5*04fd306cSNickeau 6*04fd306cSNickeau 7*04fd306cSNickeauuse ComboStrap\DataType; 8*04fd306cSNickeauuse ComboStrap\ExceptionCompile; 9*04fd306cSNickeauuse ComboStrap\LogUtility; 10*04fd306cSNickeauuse ComboStrap\Meta\Api\Metadata; 11*04fd306cSNickeau 12*04fd306cSNickeauabstract class MetadataInteger extends Metadata 13*04fd306cSNickeau{ 14*04fd306cSNickeau 15*04fd306cSNickeau /** 16*04fd306cSNickeau * @var int 17*04fd306cSNickeau */ 18*04fd306cSNickeau protected $value; 19*04fd306cSNickeau 20*04fd306cSNickeau 21*04fd306cSNickeau static public function getDataType(): string 22*04fd306cSNickeau { 23*04fd306cSNickeau return DataType::INTEGER_TYPE_VALUE; 24*04fd306cSNickeau } 25*04fd306cSNickeau 26*04fd306cSNickeau public function getValue(): ?int 27*04fd306cSNickeau { 28*04fd306cSNickeau $this->buildCheck(); 29*04fd306cSNickeau return $this->value; 30*04fd306cSNickeau } 31*04fd306cSNickeau 32*04fd306cSNickeau public function valueIsNotNull(): bool 33*04fd306cSNickeau { 34*04fd306cSNickeau return $this->value !== null; 35*04fd306cSNickeau } 36*04fd306cSNickeau 37*04fd306cSNickeau 38*04fd306cSNickeau /** 39*04fd306cSNickeau * @throws ExceptionCompile 40*04fd306cSNickeau */ 41*04fd306cSNickeau public function setValue($value): Metadata 42*04fd306cSNickeau { 43*04fd306cSNickeau $this->value = DataType::toInteger($value); 44*04fd306cSNickeau return $this; 45*04fd306cSNickeau } 46*04fd306cSNickeau 47*04fd306cSNickeau /** 48*04fd306cSNickeau * @throws ExceptionCompile 49*04fd306cSNickeau */ 50*04fd306cSNickeau public function setFromStoreValue($value): Metadata 51*04fd306cSNickeau { 52*04fd306cSNickeau return $this->setValue($value); 53*04fd306cSNickeau } 54*04fd306cSNickeau 55*04fd306cSNickeau public function setFromStoreValueWithoutException($value): Metadata 56*04fd306cSNickeau { 57*04fd306cSNickeau if ($value === null || $value === "") { 58*04fd306cSNickeau $this->value = null; 59*04fd306cSNickeau return $this; 60*04fd306cSNickeau } 61*04fd306cSNickeau if (!is_string($value)) { 62*04fd306cSNickeau LogUtility::msg("This value of a text metadata is not a string. " . var_export($value, true)); 63*04fd306cSNickeau return $this; 64*04fd306cSNickeau } 65*04fd306cSNickeau $this->value = $value; 66*04fd306cSNickeau return $this; 67*04fd306cSNickeau } 68*04fd306cSNickeau 69*04fd306cSNickeau public function getDefaultValue(): int 70*04fd306cSNickeau { 71*04fd306cSNickeau return 0; 72*04fd306cSNickeau } 73*04fd306cSNickeau 74*04fd306cSNickeau} 75