1: | <?php |
2: | /** |
3: | * This code is licensed under AGPLv3 license or Afterlogic Software License |
4: | * if commercial version of the product was purchased. |
5: | * For full statements of the licenses see LICENSE-AFTERLOGIC and LICENSE-AGPL3 files. |
6: | */ |
7: | |
8: | namespace Aurora\System\Enums; |
9: | |
10: | /** |
11: | * @license https://www.gnu.org/licenses/agpl-3.0.html AGPL-3.0 |
12: | * @license https://afterlogic.com/products/common-licensing Afterlogic Software License |
13: | * @copyright Copyright (c) 2019, Afterlogic Corp. |
14: | */ |
15: | abstract class AbstractEnumeration |
16: | { |
17: | /** |
18: | * @var array |
19: | */ |
20: | protected $aConsts = array(); |
21: | |
22: | /** |
23: | * |
24: | * @return array |
25: | */ |
26: | public function getMap() |
27: | { |
28: | return $this->aConsts; |
29: | } |
30: | |
31: | /** |
32: | * @return bool |
33: | */ |
34: | public static function validateValue($value) |
35: | { |
36: | /* @phpstan-ignore-next-line */ |
37: | return in_array($value, array_values((new static())->getMap())); |
38: | } |
39: | } |
40: |