xref: /plugin/combo/ComboStrap/Meta/Api/MetadataInteger.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
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