forked from cbdb-project/cbdb-online-main-server
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMutationHandlerRegistry.php
More file actions
120 lines (115 loc) · 4.71 KB
/
Copy pathMutationHandlerRegistry.php
File metadata and controls
120 lines (115 loc) · 4.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?php
namespace App\Services\Mutations;
class MutationHandlerRegistry {
/**
* @var array<int,MutationHandlerInterface>
*/
protected array $handlers;
public function __construct(
BiogMainMutationHandler $biogMainHandler,
BiogMainCreateHandler $biogMainCreateHandler,
BiogMainDeleteHandler $biogMainDeleteHandler,
AltnameMutationHandler $altnameHandler,
AddressMutationHandler $addressHandler,
EntryMutationHandler $entryHandler,
StatusMutationHandler $statusHandler,
EventMutationHandler $eventHandler,
AssociationMutationHandler $associationHandler,
KinshipMutationHandler $kinshipHandler,
PossessionMutationHandler $possessionHandler,
TextMutationHandler $textHandler,
PostingMutationHandler $postingHandler,
SocialInstitutionMutationHandler $socialInstitutionHandler,
SourceMutationHandler $sourceHandler,
ConfigCodeTableMutationHandler $codeTableHandler,
AltnameCreateHandler $altnameCreateHandler,
AddressCreateHandler $addressCreateHandler,
EntryCreateHandler $entryCreateHandler,
StatusCreateHandler $statusCreateHandler,
TextCreateHandler $textCreateHandler,
AssociationCreateHandler $associationCreateHandler,
KinshipCreateHandler $kinshipCreateHandler,
EventCreateHandler $eventCreateHandler,
SocialInstitutionCreateHandler $socialInstitutionCreateHandler,
PossessionCreateHandler $possessionCreateHandler,
PostingCreateHandler $postingCreateHandler,
AltnameDeleteHandler $altnameDeleteHandler,
AddressDeleteHandler $addressDeleteHandler,
EntryDeleteHandler $entryDeleteHandler,
StatusDeleteHandler $statusDeleteHandler,
TextDeleteHandler $textDeleteHandler,
AssociationDeleteHandler $associationDeleteHandler,
KinshipDeleteHandler $kinshipDeleteHandler,
EventDeleteHandler $eventDeleteHandler,
SocialInstitutionDeleteHandler $socialInstitutionDeleteHandler,
SourceDeleteHandler $sourceDeleteHandler,
PossessionDeleteHandler $possessionDeleteHandler,
PostingDeleteHandler $postingDeleteHandler,
EntityAggregateCreateHandler $entityAggregateCreateHandler,
EntityAggregateUpdateHandler $entityAggregateUpdateHandler,
EntityAggregateDeleteHandler $entityAggregateDeleteHandler,
MergedPersonCreateHandler $mergedPersonCreateHandler,
MergedPersonDeleteHandler $mergedPersonDeleteHandler,
CodeTableCreateHandler $codeTableCreateHandler,
CodeTableDeleteHandler $codeTableDeleteHandler
) {
$this->handlers = [
$biogMainHandler,
$biogMainCreateHandler,
$biogMainDeleteHandler,
$altnameHandler,
$addressHandler,
$entryHandler,
$statusHandler,
$eventHandler,
$associationHandler,
$kinshipHandler,
$possessionHandler,
$textHandler,
$postingHandler,
$socialInstitutionHandler,
$sourceHandler,
$codeTableHandler,
$altnameCreateHandler,
$addressCreateHandler,
$entryCreateHandler,
$statusCreateHandler,
$textCreateHandler,
$associationCreateHandler,
$kinshipCreateHandler,
$eventCreateHandler,
$socialInstitutionCreateHandler,
$possessionCreateHandler,
$postingCreateHandler,
$altnameDeleteHandler,
$addressDeleteHandler,
$entryDeleteHandler,
$statusDeleteHandler,
$textDeleteHandler,
$associationDeleteHandler,
$kinshipDeleteHandler,
$eventDeleteHandler,
$socialInstitutionDeleteHandler,
$sourceDeleteHandler,
$possessionDeleteHandler,
$postingDeleteHandler,
// 通用實體聚合 handler(office/social-institution/後續實體皆由此分派,
// 依 config/entity_aggregates.php 的 definition;§6.5)。
$entityAggregateCreateHandler,
$entityAggregateUpdateHandler,
$entityAggregateDeleteHandler,
$mergedPersonCreateHandler,
$mergedPersonDeleteHandler,
$codeTableCreateHandler,
$codeTableDeleteHandler,
];
}
public function resolve(string $resource, string $mode, string $operation): ?MutationHandlerInterface {
foreach ($this->handlers as $handler) {
if ($handler->supports($resource, $mode, $operation)) {
return $handler;
}
}
return null;
}
}