|
24 | 24 |
|
25 | 25 | use PackageFactory\ComponentEngine\Domain\TypeName\TypeName; |
26 | 26 | use PackageFactory\ComponentEngine\Domain\VariableName\VariableName; |
| 27 | +use PackageFactory\ComponentEngine\Framework\PHP\Singleton\Singleton; |
27 | 28 | use PackageFactory\ComponentEngine\TypeSystem\AtomicTypeInterface; |
28 | 29 | use PackageFactory\ComponentEngine\TypeSystem\ScopeInterface; |
29 | 30 | use PackageFactory\ComponentEngine\TypeSystem\Type\BooleanType\BooleanType; |
|
34 | 35 |
|
35 | 36 | final class GlobalScope implements ScopeInterface |
36 | 37 | { |
37 | | - private static null|self $instance = null; |
38 | | - |
39 | | - private function __construct() |
40 | | - { |
41 | | - } |
42 | | - |
43 | | - public static function get(): self |
44 | | - { |
45 | | - return self::$instance ??= new self(); |
46 | | - } |
| 38 | + use Singleton; |
47 | 39 |
|
48 | 40 | public function getType(TypeName $typeName): AtomicTypeInterface |
49 | 41 | { |
50 | 42 | return match ($typeName) { |
51 | | - StringType::get()->getName() => StringType::get(), |
52 | | - IntegerType::get()->getName() => IntegerType::get(), |
53 | | - BooleanType::get()->getName() => BooleanType::get(), |
54 | | - SlotType::get()->getName() => SlotType::get(), |
| 43 | + StringType::singleton()->getName() => StringType::singleton(), |
| 44 | + IntegerType::singleton()->getName() => IntegerType::singleton(), |
| 45 | + BooleanType::singleton()->getName() => BooleanType::singleton(), |
| 46 | + SlotType::singleton()->getName() => SlotType::singleton(), |
55 | 47 | default => throw new \Exception('@TODO: Unknown Type ' . $typeName->value) |
56 | 48 | }; |
57 | 49 | } |
|
0 commit comments