-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdependency_graph.drawio
272 lines (272 loc) · 27.3 KB
/
dependency_graph.drawio
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
<mxfile host="app.diagrams.net" modified="2024-01-24T13:55:55.696Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" etag="TM_Ltm3MCpKeYHUsUTB3" version="22.1.16" type="device">
<diagram id="8QB1S9UVQqcJYX_vl649" name="Page-1">
<mxGraphModel dx="947" dy="512" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-34" value="DOMAIN" style="shape=note2;boundedLbl=1;whiteSpace=wrap;html=1;size=25;verticalAlign=top;align=center;fontFamily=Helvetica;fontSize=11;fontColor=default;connectable=0;" parent="1" vertex="1">
<mxGeometry x="1890" y="950" width="820" height="390" as="geometry" />
</mxCell>
<mxCell id="9Jr3Y48DdjrhFMSyBu9t-1" value="App" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="314" y="100" width="76" height="50" as="geometry" />
</mxCell>
<mxCell id="9Jr3Y48DdjrhFMSyBu9t-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="9Jr3Y48DdjrhFMSyBu9t-1" target="9Jr3Y48DdjrhFMSyBu9t-2" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="9Jr3Y48DdjrhFMSyBu9t-2" value="symbol_details_presentation" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="118" y="270" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="9Jr3Y48DdjrhFMSyBu9t-2" target="LSnZtYon_nobOEny3ROd-1" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="LSnZtYon_nobOEny3ROd-3" target="LSnZtYon_nobOEny3ROd-1" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="340" y="295" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-1" value="symbol_details_UC_I" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="170" y="430" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-3" value="symbol_details_Data" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="400" y="270" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-5" value="symbol_details_UC_Impl" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="170" y="550" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.527;entryY=1.029;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="LSnZtYon_nobOEny3ROd-5" target="LSnZtYon_nobOEny3ROd-1" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-14" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LSnZtYon_nobOEny3ROd-7" target="LSnZtYon_nobOEny3ROd-8" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-7" value="UCProvider" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="670" y="470" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-8" value="symbol_details_UC_I" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="800" y="600" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-15" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LSnZtYon_nobOEny3ROd-9" target="LSnZtYon_nobOEny3ROd-8" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-9" value="symbol_details_UC_Impl" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="920" y="470" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=1;" parent="1" source="LSnZtYon_nobOEny3ROd-10" target="LSnZtYon_nobOEny3ROd-7" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-13" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LSnZtYon_nobOEny3ROd-10" target="LSnZtYon_nobOEny3ROd-9" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-17" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="LSnZtYon_nobOEny3ROd-10" target="LSnZtYon_nobOEny3ROd-16" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-10" value="symbol_details_presentation" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="800" y="290" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-16" value="Utils" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="1180" y="470" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-18" value="Utils" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="1060" y="1627" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-19" value="resources" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="1656" y="1210" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-9" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="LSnZtYon_nobOEny3ROd-21" target="LSnZtYon_nobOEny3ROd-25" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-20" style="edgeStyle=orthogonalEdgeStyle;shape=connector;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="LSnZtYon_nobOEny3ROd-21" target="LSnZtYon_nobOEny3ROd-23" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-26" style="edgeStyle=orthogonalEdgeStyle;shape=connector;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="LSnZtYon_nobOEny3ROd-21" target="Q8JbcYsWUGU1Nyl9KI-R-23" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-21" value="App" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="1600" y="590" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-29" style="edgeStyle=orthogonalEdgeStyle;shape=connector;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="LSnZtYon_nobOEny3ROd-23" target="Q8JbcYsWUGU1Nyl9KI-R-17" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-37" style="edgeStyle=orthogonalEdgeStyle;shape=connector;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;" parent="1" source="LSnZtYon_nobOEny3ROd-23" target="LSnZtYon_nobOEny3ROd-24" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-23" value="SymbolDetailsUseCaseImpl" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="1950" y="990" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-24" value="SymbolDetailsUseCase" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="2040" y="1216" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-19" style="edgeStyle=orthogonalEdgeStyle;shape=connector;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;" parent="1" source="LSnZtYon_nobOEny3ROd-25" target="Q8JbcYsWUGU1Nyl9KI-R-17" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-25" value="SymbolRepositorympl" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="2230" y="850" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-29" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="LSnZtYon_nobOEny3ROd-26" target="LSnZtYon_nobOEny3ROd-24" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-2" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="LSnZtYon_nobOEny3ROd-26" target="LSnZtYon_nobOEny3ROd-18" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-3" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="LSnZtYon_nobOEny3ROd-26" target="LSnZtYon_nobOEny3ROd-27" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-13" value="Provide implementations" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;fontColor=default;" parent="Q8JbcYsWUGU1Nyl9KI-R-3" vertex="1" connectable="0">
<mxGeometry x="0.2086" y="-2" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-4" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="LSnZtYon_nobOEny3ROd-26" target="LSnZtYon_nobOEny3ROd-30" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-14" value="depends fromAPI" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;fontColor=default;" parent="Q8JbcYsWUGU1Nyl9KI-R-4" vertex="1" connectable="0">
<mxGeometry x="0.0502" y="-1" relative="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-11" style="edgeStyle=orthogonalEdgeStyle;shape=connector;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;" parent="1" source="LSnZtYon_nobOEny3ROd-26" target="LSnZtYon_nobOEny3ROd-28" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-26" value="presentation" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="1600" y="820" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-5" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LSnZtYon_nobOEny3ROd-27" target="LSnZtYon_nobOEny3ROd-30" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-6" style="edgeStyle=orthogonalEdgeStyle;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="LSnZtYon_nobOEny3ROd-27" target="LSnZtYon_nobOEny3ROd-18" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-27" value="Dependency provider" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="950" y="1427" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-12" style="edgeStyle=orthogonalEdgeStyle;shape=connector;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;strokeWidth=2;" parent="1" source="LSnZtYon_nobOEny3ROd-28" target="LSnZtYon_nobOEny3ROd-19" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-28" value="coreUi" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="1656" y="1070" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="LSnZtYon_nobOEny3ROd-30" value="Analytics" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="820" y="1627" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-7" value="Split API and implementation" style="shape=note;strokeWidth=2;fontSize=14;size=20;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontColor=#666600;" parent="1" vertex="1">
<mxGeometry x="996" y="1627" width="110.00000000000001" height="80" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-15" value="smoothie_chart" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="1510" y="1320" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-18" style="edgeStyle=orthogonalEdgeStyle;shape=connector;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;strokeWidth=2;" parent="1" source="Q8JbcYsWUGU1Nyl9KI-R-17" target="LSnZtYon_nobOEny3ROd-24" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-25" style="edgeStyle=orthogonalEdgeStyle;shape=connector;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeWidth=2;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="Q8JbcYsWUGU1Nyl9KI-R-17" target="Q8JbcYsWUGU1Nyl9KI-R-21" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="2470" y="1200" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-17" value="SymbolRepository" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="2230" y="1090" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-21" value="SymbolSearchUseCase" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="2400" y="1216" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-30" style="edgeStyle=orthogonalEdgeStyle;shape=connector;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="Q8JbcYsWUGU1Nyl9KI-R-23" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="2330" y="1090" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-23" value="SymbolSearchUseCaseImpl" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="2490" y="990" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-24" style="edgeStyle=orthogonalEdgeStyle;shape=connector;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="Q8JbcYsWUGU1Nyl9KI-R-23" target="Q8JbcYsWUGU1Nyl9KI-R-21" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="2520" y="1190" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-28" style="edgeStyle=orthogonalEdgeStyle;shape=connector;curved=1;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;labelBackgroundColor=default;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;endArrow=classic;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="Q8JbcYsWUGU1Nyl9KI-R-27" target="Q8JbcYsWUGU1Nyl9KI-R-21" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-27" value="presentation" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="2820" y="827" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-38" value="Network" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="2780" y="1250" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-39" value="Cache" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="2990" y="1230" width="196" height="50" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-44" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="1420" y="1640" width="300" height="110" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-40" value="dependency_provider_core" style="shape=module;align=left;spacingLeft=20;align=center;verticalAlign=top;" parent="Q8JbcYsWUGU1Nyl9KI-R-44" vertex="1">
<mxGeometry width="300" height="110" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-41" value="«interface»<br><b>Dependency</b>" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=11;fontColor=default;" parent="Q8JbcYsWUGU1Nyl9KI-R-44" vertex="1">
<mxGeometry x="40" y="37" width="110" height="50" as="geometry" />
</mxCell>
<mxCell id="Q8JbcYsWUGU1Nyl9KI-R-42" value="«annotation<span style="background-color: initial;">»</span><br><b>DependencyKey</b>" style="html=1;whiteSpace=wrap;fontFamily=Helvetica;fontSize=11;fontColor=default;" parent="Q8JbcYsWUGU1Nyl9KI-R-44" vertex="1">
<mxGeometry x="170" y="37" width="110" height="50" as="geometry" />
</mxCell>
<mxCell id="aXoyg8-KedDfsUOO-8gB-1" value="UI <br>Layer" style="shape=umlFrame;whiteSpace=wrap;html=1;pointerEvents=0;" vertex="1" parent="1">
<mxGeometry x="160" y="1050" width="300" height="200" as="geometry" />
</mxCell>
<mxCell id="aXoyg8-KedDfsUOO-8gB-2" value="Domain Layer" style="shape=umlFrame;whiteSpace=wrap;html=1;pointerEvents=0;" vertex="1" parent="1">
<mxGeometry x="160" y="1320" width="300" height="200" as="geometry" />
</mxCell>
<mxCell id="aXoyg8-KedDfsUOO-8gB-3" value="Data Layer" style="shape=umlFrame;whiteSpace=wrap;html=1;pointerEvents=0;" vertex="1" parent="1">
<mxGeometry x="40" y="1580" width="750" height="530" as="geometry" />
</mxCell>
<mxCell id="aXoyg8-KedDfsUOO-8gB-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.503;entryY=0.002;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="aXoyg8-KedDfsUOO-8gB-1" target="aXoyg8-KedDfsUOO-8gB-2">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="aXoyg8-KedDfsUOO-8gB-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0;entryDx=0;entryDy=85;entryPerimeter=0;" edge="1" parent="1" source="aXoyg8-KedDfsUOO-8gB-2" target="aXoyg8-KedDfsUOO-8gB-8">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="aXoyg8-KedDfsUOO-8gB-8" value="Repositories" style="verticalAlign=top;align=left;spacingTop=8;spacingLeft=2;spacingRight=12;shape=cube;size=10;direction=south;fontStyle=4;html=1;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="210" y="1620" width="180" height="120" as="geometry" />
</mxCell>
<mxCell id="aXoyg8-KedDfsUOO-8gB-9" value="Data Sources" style="verticalAlign=top;align=left;spacingTop=8;spacingLeft=2;spacingRight=12;shape=cube;size=10;direction=south;fontStyle=4;html=1;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="130" y="1780" width="600" height="230" as="geometry" />
</mxCell>
<mxCell id="aXoyg8-KedDfsUOO-8gB-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0;entryDx=0;entryDy=295;entryPerimeter=0;" edge="1" parent="1" source="aXoyg8-KedDfsUOO-8gB-8" target="aXoyg8-KedDfsUOO-8gB-9">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="aXoyg8-KedDfsUOO-8gB-11" value="«DataSource»<br><b>Remote</b>" style="html=1;dropTarget=0;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="150" y="1840" width="120" height="90" as="geometry" />
</mxCell>
<mxCell id="aXoyg8-KedDfsUOO-8gB-12" value="" style="shape=module;jettyWidth=8;jettyHeight=4;" vertex="1" parent="aXoyg8-KedDfsUOO-8gB-11">
<mxGeometry x="1" width="20" height="20" relative="1" as="geometry">
<mxPoint x="-27" y="7" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="aXoyg8-KedDfsUOO-8gB-15" value="«DataSource»<br><b>Memory</b>" style="html=1;dropTarget=0;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="585" y="1840" width="120" height="90" as="geometry" />
</mxCell>
<mxCell id="aXoyg8-KedDfsUOO-8gB-16" value="" style="shape=module;jettyWidth=8;jettyHeight=4;" vertex="1" parent="aXoyg8-KedDfsUOO-8gB-15">
<mxGeometry x="1" width="20" height="20" relative="1" as="geometry">
<mxPoint x="-27" y="7" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="aXoyg8-KedDfsUOO-8gB-17" value="«DataSource»<br><b>Cache</b>" style="html=1;dropTarget=0;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="438" y="1840" width="120" height="90" as="geometry" />
</mxCell>
<mxCell id="aXoyg8-KedDfsUOO-8gB-18" value="" style="shape=module;jettyWidth=8;jettyHeight=4;" vertex="1" parent="aXoyg8-KedDfsUOO-8gB-17">
<mxGeometry x="1" width="20" height="20" relative="1" as="geometry">
<mxPoint x="-27" y="7" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="aXoyg8-KedDfsUOO-8gB-19" value="«DataSource»<br><b>Local</b>" style="html=1;dropTarget=0;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="292" y="1840" width="120" height="90" as="geometry" />
</mxCell>
<mxCell id="aXoyg8-KedDfsUOO-8gB-20" value="" style="shape=module;jettyWidth=8;jettyHeight=4;" vertex="1" parent="aXoyg8-KedDfsUOO-8gB-19">
<mxGeometry x="1" width="20" height="20" relative="1" as="geometry">
<mxPoint x="-27" y="7" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="aXoyg8-KedDfsUOO-8gB-21" value="One Repository for one entity" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="210" y="1647" width="160" height="30" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>