-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstorage.uml
714 lines (713 loc) · 41.5 KB
/
storage.uml
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
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
<?xml version="1.0" encoding="UTF-8"?>
<Diagram>
<ID>JAVA</ID>
<OriginalElement>/home/note/IdeaProjects/StorageApi/src/main/java</OriginalElement>
<nodes>
<node x="2390.718396892652" y="621.0">com.butbetter.storage.csvImport.customConverter.BeanOffsetDateTimeConverter</node>
<node x="2748.264036016946" y="1783.0">com.butbetter.storage.csvImport.service.importer.CSVImportService</node>
<node x="0.0" y="1432.0">com.butbetter.storage.restApi.repository.AddressRepository</node>
<node x="2066.718396892652" y="586.5">com.butbetter.storage.csvImport.customConverter.BeanAddressCsvConverter</node>
<node x="2679.104166666666" y="1011.5">com.butbetter.storage.csvImport.service.converter.ICSVConverter</node>
<node x="209.99999999999955" y="1432.0">com.butbetter.storage.restApi.repository.ProductRepository</node>
<node x="2486.593308615817" y="1432.0">com.butbetter.storage.csvImport.service.converter.ICSVProductInformationConverter</node>
<node x="3670.6498057909603" y="1382.5">com.butbetter.storage.csvImport.properties.StorageProperties</node>
<node x="2227.479166666666" y="0.0">com.butbetter.storage.csvImport.model.AddressCsv</node>
<node x="1405.2916666666663" y="1806.0">com.butbetter.storage.csvImport.validator.ProductInformationCsvValidator</node>
<node x="43.84339689265198" y="1783.0">com.butbetter.storage.restApi.service.StorageService</node>
<node x="3955.166666666666" y="1645.0">com.butbetter.storage.csvImport.service.fileStorage.FileStorageService</node>
<node x="2150.718308615817" y="1432.0">com.butbetter.storage.csvImport.validator.IProductInformationCsvValidator</node>
<node x="624.843308615817" y="1024.5">com.butbetter.storage.restApi.validator.IProductInformationValidator</node>
<node x="515.7499999999995" y="1396.0">com.butbetter.storage.restApi.service.IStorageService</node>
<node x="370.49999999999955" y="633.5">com.butbetter.storage.restApi.validator.Validator</node>
<node x="3677.6498057909603" y="1806.0">com.butbetter.storage.StorageApplication</node>
<node x="4450.916666666666" y="1000.0">com.butbetter.storage.csvImport.exception.StorageFileNotFoundException</node>
<node x="4079.666666666666" y="1000.0">com.butbetter.storage.csvImport.exception.StorageException</node>
<node x="4371.166666666666" y="1714.0">com.butbetter.storage.csvImport.controller.FileUploadController</node>
<node x="340.718308615817" y="0.0">com.butbetter.storage.restApi.model.Address</node>
<node x="908.843308615817" y="1011.5">com.butbetter.storage.restApi.controller.ProductInformationNotFoundException</node>
<node x="3595.104166666666" y="1000.0">com.butbetter.storage.csvImport.exception.FaultyCSVException</node>
<node x="633.843396892652" y="1748.5">com.butbetter.storage.restApi.controller.StorageController</node>
<node x="4847.034869350279" y="1350.0">com.butbetter.storage.csvImport.service.fileStorage.IFileStorageService</node>
<node x="1415.5456391242938" y="1406.5">com.butbetter.storage.restApi.validator.ProductInformationValidator</node>
<node x="2268.104166666666" y="882.0">com.butbetter.storage.csvImport.model.ProductInformationCsv</node>
<node x="4059.666666666666" y="1419.0">com.butbetter.storage.csvImport.service.importer.ICSVImportService</node>
<node x="3035.343396892652" y="1432.0">com.butbetter.storage.csvImport.repository.FileAddressRepository</node>
<node x="5049.166666666666" y="1806.0">com.butbetter.storage.csvImport.configurations.StorageConfiguration</node>
<node x="1711.2916666666663" y="1806.0">com.butbetter.storage.csvImport.service.converter.CSVConverter</node>
<node x="3187.104166666666" y="1000.0">com.butbetter.storage.csvImport.exception.StorageFileNotProcessableException</node>
<node x="2802.593308615817" y="1432.0">com.butbetter.storage.csvImport.repository.FileProductRepository</node>
<node x="544.2499999999995" y="504.0">com.butbetter.storage.restApi.model.ProductInformation</node>
</nodes>
<notes />
<edges>
<edge source="com.butbetter.storage.csvImport.service.converter.CSVConverter" target="com.butbetter.storage.csvImport.service.converter.ICSVProductInformationConverter" relationship="REALIZATION">
<point x="83.75" y="-40.0" />
<point x="1962.5416666666663" y="1614.0" />
<point x="2535.7599752824835" y="1614.0" />
<point x="-98.33333333333348" y="14.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.model.ProductInformationCsv" target="com.butbetter.storage.csvImport.customConverter.BeanOffsetDateTimeConverter" relationship="DEPENDENCY">
<point x="-97.75" y="-157.0" />
<point x="2365.854166666666" y="860.0" />
<point x="2414.604166666666" y="860.0" />
<point x="2414.604166666666" y="850.0" />
<point x="2468.218396892652" y="850.0" />
<point x="-77.5" y="40.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.model.ProductInformationCsv" target="com.butbetter.storage.csvImport.model.AddressCsv" relationship="TO_ONE">
<point x="97.75" y="-157.0" />
<point x="2561.354166666666" y="860.0" />
<point x="2631.479166666666" y="860.0" />
<point x="2631.479166666666" y="840.0" />
<point x="2747.979166666666" y="840.0" />
<point x="2747.979166666666" y="473.0" />
<point x="2543.3124999999995" y="473.0" />
<point x="126.33333333333348" y="226.0" />
</edge>
<edge source="com.butbetter.storage.restApi.service.StorageService" target="com.butbetter.storage.restApi.repository.ProductRepository" relationship="TO_ONE">
<point x="-213.75" y="-63.0" />
<point x="115.09339689265198" y="1624.0" />
<point x="227.71839689265198" y="1624.0" />
<point x="227.71839689265198" y="1614.0" />
<point x="256.49999999999955" y="1614.0" />
<point x="-46.5" y="14.5" />
</edge>
<edge source="com.butbetter.storage.restApi.validator.ProductInformationValidator" target="com.butbetter.storage.restApi.validator.IProductInformationValidator" relationship="REALIZATION">
<point x="-65.25" y="-40.0" />
<point x="1480.7956391242938" y="1298.0" />
<point x="844.843308615817" y="1298.0" />
<point x="88.0" y="14.5" />
</edge>
<edge source="com.butbetter.storage.restApi.service.StorageService" target="com.butbetter.storage.restApi.model.ProductInformation" relationship="DEPENDENCY">
<point x="-71.25" y="-63.0" />
<point x="257.593396892652" y="1624.0" />
<point x="389.718396892652" y="1624.0" />
<point x="389.718396892652" y="1604.0" />
<point x="431.49999999999955" y="1604.0" />
<point x="431.49999999999955" y="860.0" />
<point x="719.7499999999995" y="860.0" />
<point x="0.0" y="157.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.importer.ICSVImportService" target="com.butbetter.storage.csvImport.exception.FaultyCSVException" relationship="DEPENDENCY">
<point x="0.0" y="-27.5" />
<point x="4153.166666666666" y="1318.0" />
<point x="4507.89980579096" y="1318.0" />
<point x="4507.89980579096" y="1268.0" />
<point x="4472.337394067796" y="1268.0" />
<point x="4472.337394067796" y="1238.0" />
<point x="3808.854166666666" y="1238.0" />
<point x="71.25" y="39.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.model.ProductInformationCsv" target="com.butbetter.storage.csvImport.customConverter.BeanAddressCsvConverter" relationship="TO_ONE">
<point x="97.75" y="-157.0" />
<point x="2561.354166666666" y="860.0" />
<point x="2631.479166666666" y="860.0" />
<point x="2631.479166666666" y="840.0" />
<point x="2293.968396892652" y="840.0" />
<point x="75.75" y="74.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.converter.ICSVProductInformationConverter" target="com.butbetter.storage.csvImport.model.ProductInformationCsv" relationship="DEPENDENCY">
<point x="-73.75" y="-14.5" />
<point x="2560.343308615817" y="1318.0" />
<point x="2463.604166666666" y="1318.0" />
<point x="0.0" y="157.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.validator.ProductInformationCsvValidator" target="com.butbetter.storage.restApi.validator.ProductInformationValidator" relationship="DEPENDENCY">
<point x="95.33333333333326" y="-40.0" />
<point x="1643.6249999999995" y="1624.0" />
<point x="1695.3850635593185" y="1624.0" />
<point x="1695.3850635593185" y="1594.0" />
<point x="1611.2956391242938" y="1594.0" />
<point x="65.25" y="40.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.controller.FileUploadController" target="com.butbetter.storage.csvImport.exception.FaultyCSVException" relationship="DEPENDENCY">
<point x="-164.5" y="-132.0" />
<point x="4535.666666666666" y="1624.0" />
<point x="4760.951536016946" y="1624.0" />
<point x="4760.951536016946" y="1594.0" />
<point x="4518.39980579096" y="1594.0" />
<point x="4518.39980579096" y="1308.0" />
<point x="4472.337394067796" y="1308.0" />
<point x="4472.337394067796" y="1238.0" />
<point x="3808.854166666666" y="1238.0" />
<point x="71.25" y="39.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.importer.CSVImportService" target="com.butbetter.storage.csvImport.service.converter.ICSVConverter" relationship="DEPENDENCY">
<point x="-322.875" y="-63.0" />
<point x="2855.889036016946" y="1624.0" />
<point x="2530.889036016946" y="1624.0" />
<point x="2530.889036016946" y="1594.0" />
<point x="2792.093308615817" y="1594.0" />
<point x="2792.093308615817" y="1308.0" />
<point x="2831.354166666666" y="1308.0" />
<point x="50.75" y="27.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.importer.ICSVImportService" target="com.butbetter.storage.csvImport.exception.StorageFileNotFoundException" relationship="DEPENDENCY">
<point x="0.0" y="-27.5" />
<point x="4153.166666666666" y="1318.0" />
<point x="4507.89980579096" y="1318.0" />
<point x="4507.89980579096" y="1298.0" />
<point x="4625.462394067796" y="1298.0" />
<point x="4625.462394067796" y="1218.0" />
<point x="4717.166666666666" y="1218.0" />
<point x="88.75" y="39.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.importer.CSVImportService" target="com.butbetter.storage.csvImport.exception.FaultyCSVException" relationship="CREATE">
<point x="107.625" y="-63.0" />
<point x="3286.389036016946" y="1624.0" />
<point x="3283.6498940677952" y="1624.0" />
<point x="3283.6498940677952" y="1564.0" />
<point x="3642.343308615817" y="1564.0" />
<point x="3642.343308615817" y="1328.0" />
<point x="3666.354166666666" y="1328.0" />
<point x="-71.25" y="39.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.controller.FileUploadController" target="com.butbetter.storage.csvImport.exception.StorageException" relationship="DEPENDENCY">
<point x="-164.5" y="-132.0" />
<point x="4535.666666666666" y="1624.0" />
<point x="4760.951536016946" y="1624.0" />
<point x="4760.951536016946" y="1594.0" />
<point x="4744.218396892652" y="1594.0" />
<point x="4744.218396892652" y="1228.0" />
<point x="4283.666666666666" y="1228.0" />
<point x="68.0" y="39.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.importer.CSVImportService" target="com.butbetter.storage.csvImport.validator.IProductInformationCsvValidator" relationship="TO_ONE">
<point x="-107.625" y="-63.0" />
<point x="3071.139036016946" y="1624.0" />
<point x="3116.1498057909603" y="1624.0" />
<point x="3116.1498057909603" y="1584.0" />
<point x="2391.5516419491505" y="1584.0" />
<point x="96.33333333333348" y="14.5" />
</edge>
<edge source="com.butbetter.storage.restApi.service.IStorageService" target="com.butbetter.storage.restApi.controller.ProductInformationNotFoundException" relationship="DEPENDENCY">
<point x="0.0" y="-50.5" />
<point x="691.7499999999995" y="1318.0" />
<point x="1189.343308615817" y="1318.0" />
<point x="93.5" y="27.5" />
</edge>
<edge source="com.butbetter.storage.restApi.service.IStorageService" target="com.butbetter.storage.restApi.validator.IProductInformationValidator" relationship="DEPENDENCY">
<point x="0.0" y="-50.5" />
<point x="691.7499999999995" y="1298.0" />
<point x="756.843308615817" y="1298.0" />
<point x="0.0" y="14.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.importer.CSVImportService" target="com.butbetter.storage.csvImport.service.converter.ICSVProductInformationConverter" relationship="TO_ONE">
<point x="-107.625" y="-63.0" />
<point x="3071.139036016946" y="1624.0" />
<point x="3116.1498057909603" y="1624.0" />
<point x="3116.1498057909603" y="1584.0" />
<point x="2732.4266419491505" y="1584.0" />
<point x="98.33333333333348" y="14.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.controller.FileUploadController" target="com.butbetter.storage.csvImport.service.fileStorage.IFileStorageService" relationship="DEPENDENCY">
<point x="-164.5" y="-132.0" />
<point x="4535.666666666666" y="1624.0" />
<point x="4760.951536016946" y="1624.0" />
<point x="4760.951536016946" y="1614.0" />
<point x="5006.701536016946" y="1614.0" />
<point x="5006.701536016946" y="1594.0" />
<point x="4970.534869350279" y="1594.0" />
<point x="0.0" y="96.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.converter.ICSVProductInformationConverter" target="com.butbetter.storage.csvImport.service.converter.ICSVConverter" relationship="INTERFACE_GENERALIZATION">
<point x="73.75" y="-14.5" />
<point x="2707.843308615817" y="1308.0" />
<point x="2729.854166666666" y="1308.0" />
<point x="-50.75" y="27.5" />
</edge>
<edge source="com.butbetter.storage.restApi.controller.StorageController" target="com.butbetter.storage.restApi.controller.ProductInformationNotFoundException" relationship="DEPENDENCY">
<point x="163.5" y="-97.5" />
<point x="1124.343396892652" y="1624.0" />
<point x="1189.343308615817" y="1624.0" />
<point x="93.5" y="27.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.repository.FileProductRepository" target="com.butbetter.storage.csvImport.model.ProductInformationCsv" relationship="DEPENDENCY">
<point x="0.0" y="-14.5" />
<point x="2908.593308615817" y="1318.0" />
<point x="2463.604166666666" y="1318.0" />
<point x="0.0" y="157.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.validator.ProductInformationCsvValidator" target="com.butbetter.storage.csvImport.validator.IProductInformationCsvValidator" relationship="REALIZATION">
<point x="0.0" y="-40.0" />
<point x="1548.2916666666663" y="1604.0" />
<point x="2198.8849752824835" y="1604.0" />
<point x="-96.33333333333348" y="14.5" />
</edge>
<edge source="com.butbetter.storage.restApi.repository.AddressRepository" target="com.butbetter.storage.restApi.model.Address" relationship="DEPENDENCY">
<point x="0.0" y="-14.5" />
<point x="94.5" y="483.0" />
<point x="515.2183086158168" y="483.0" />
<point x="515.2183086158168" y="473.0" />
<point x="430.468308615817" y="473.0" />
<point x="-89.75" y="226.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.fileStorage.FileStorageService" target="com.butbetter.storage.csvImport.service.fileStorage.IFileStorageService" relationship="REALIZATION">
<point x="49.5" y="-201.0" />
<point x="4202.666666666666" y="1604.0" />
<point x="4888.201536016946" y="1604.0" />
<point x="-82.33333333333303" y="96.5" />
</edge>
<edge source="com.butbetter.storage.restApi.service.IStorageService" target="com.butbetter.storage.restApi.model.ProductInformation" relationship="DEPENDENCY">
<point x="0.0" y="-50.5" />
<point x="691.7499999999995" y="1288.0" />
<point x="614.343308615817" y="1288.0" />
<point x="614.343308615817" y="860.0" />
<point x="719.7499999999995" y="860.0" />
<point x="0.0" y="157.0" />
</edge>
<edge source="com.butbetter.storage.restApi.controller.StorageController" target="com.butbetter.storage.restApi.model.ProductInformation" relationship="DEPENDENCY">
<point x="163.5" y="-97.5" />
<point x="1124.343396892652" y="1624.0" />
<point x="1382.8890360169462" y="1624.0" />
<point x="1382.8890360169462" y="860.0" />
<point x="719.7499999999995" y="860.0" />
<point x="0.0" y="157.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.importer.CSVImportService" target="com.butbetter.storage.csvImport.repository.FileAddressRepository" relationship="DEPENDENCY">
<point x="-322.875" y="-63.0" />
<point x="2855.889036016946" y="1624.0" />
<point x="2530.889036016946" y="1624.0" />
<point x="2530.889036016946" y="1594.0" />
<point x="3089.093396892652" y="1594.0" />
<point x="-53.75" y="14.5" />
</edge>
<edge source="com.butbetter.storage.restApi.model.ProductInformation" target="com.butbetter.storage.restApi.model.Address" relationship="DEPENDENCY">
<point x="-87.75" y="-157.0" />
<point x="631.9999999999995" y="483.0" />
<point x="515.2183086158168" y="483.0" />
<point x="515.2183086158168" y="473.0" />
<point x="430.468308615817" y="473.0" />
<point x="-89.75" y="226.0" />
</edge>
<edge source="com.butbetter.storage.restApi.service.StorageService" target="com.butbetter.storage.restApi.service.IStorageService" relationship="REALIZATION">
<point x="213.75" y="-63.0" />
<point x="542.593396892652" y="1624.0" />
<point x="574.4166666666661" y="1624.0" />
<point x="-117.33333333333337" y="50.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.fileStorage.IFileStorageService" target="com.butbetter.storage.csvImport.exception.StorageFileNotProcessableException" relationship="DEPENDENCY">
<point x="0.0" y="-96.5" />
<point x="4970.534869350279" y="1328.0" />
<point x="4528.89980579096" y="1328.0" />
<point x="4528.89980579096" y="1258.0" />
<point x="4296.212394067796" y="1258.0" />
<point x="4296.212394067796" y="1248.0" />
<point x="3478.104166666666" y="1248.0" />
<point x="97.0" y="39.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.fileStorage.IFileStorageService" target="com.butbetter.storage.csvImport.exception.StorageFileNotFoundException" relationship="DEPENDENCY">
<point x="0.0" y="-96.5" />
<point x="4970.534869350279" y="1328.0" />
<point x="4528.89980579096" y="1328.0" />
<point x="4528.89980579096" y="1308.0" />
<point x="4625.462394067796" y="1308.0" />
<point x="4625.462394067796" y="1218.0" />
<point x="4717.166666666666" y="1218.0" />
<point x="88.75" y="39.0" />
</edge>
<edge source="com.butbetter.storage.restApi.service.StorageService" target="com.butbetter.storage.restApi.controller.ProductInformationNotFoundException" relationship="CREATE">
<point x="71.25" y="-63.0" />
<point x="400.093396892652" y="1624.0" />
<point x="442.49999999999955" y="1624.0" />
<point x="442.49999999999955" y="1308.0" />
<point x="1002.343308615817" y="1308.0" />
<point x="-93.5" y="27.5" />
</edge>
<edge source="com.butbetter.storage.restApi.service.StorageService" target="com.butbetter.storage.restApi.validator.IProductInformationValidator" relationship="DEPENDENCY">
<point x="-71.25" y="-63.0" />
<point x="257.593396892652" y="1624.0" />
<point x="389.718396892652" y="1624.0" />
<point x="389.718396892652" y="1604.0" />
<point x="431.49999999999955" y="1604.0" />
<point x="431.49999999999955" y="1328.0" />
<point x="756.843308615817" y="1328.0" />
<point x="0.0" y="14.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.importer.CSVImportService" target="com.butbetter.storage.csvImport.exception.StorageFileNotProcessableException" relationship="CREATE">
<point x="107.625" y="-63.0" />
<point x="3286.389036016946" y="1624.0" />
<point x="3283.6498940677952" y="1624.0" />
<point x="3283.6498940677952" y="1564.0" />
<point x="3260.843396892652" y="1564.0" />
<point x="3260.843396892652" y="1328.0" />
<point x="3284.104166666666" y="1328.0" />
<point x="-97.0" y="39.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.validator.ProductInformationCsvValidator" target="com.butbetter.storage.csvImport.model.ProductInformationCsv" relationship="DEPENDENCY">
<point x="95.33333333333326" y="-40.0" />
<point x="1643.6249999999995" y="1624.0" />
<point x="1695.3850635593185" y="1624.0" />
<point x="1695.3850635593185" y="1594.0" />
<point x="1737.1707274011287" y="1594.0" />
<point x="1737.1707274011287" y="1318.0" />
<point x="2463.604166666666" y="1318.0" />
<point x="0.0" y="157.0" />
</edge>
<edge source="com.butbetter.storage.restApi.controller.StorageController" target="com.butbetter.storage.restApi.service.IStorageService" relationship="TO_ONE">
<point x="-163.5" y="-97.5" />
<point x="797.343396892652" y="1624.0" />
<point x="691.7499999999995" y="1624.0" />
<point x="0.0" y="50.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.fileStorage.IFileStorageService" target="com.butbetter.storage.csvImport.exception.StorageException" relationship="DEPENDENCY">
<point x="0.0" y="-96.5" />
<point x="4970.534869350279" y="1328.0" />
<point x="4528.89980579096" y="1328.0" />
<point x="4528.89980579096" y="1318.0" />
<point x="4744.218396892652" y="1318.0" />
<point x="4744.218396892652" y="1228.0" />
<point x="4283.666666666666" y="1228.0" />
<point x="68.0" y="39.0" />
</edge>
<edge source="com.butbetter.storage.restApi.validator.IProductInformationValidator" target="com.butbetter.storage.restApi.model.ProductInformation" relationship="DEPENDENCY">
<point x="-66.0" y="-14.5" />
<point x="690.843308615817" y="860.0" />
<point x="719.7499999999995" y="860.0" />
<point x="0.0" y="157.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.validator.ProductInformationCsvValidator" target="com.butbetter.storage.restApi.validator.ProductInformationValidator" relationship="TO_ONE">
<point x="-95.33333333333326" y="-40.0" />
<point x="1452.958333333333" y="1624.0" />
<point x="1480.7956391242938" y="1624.0" />
<point x="-65.25" y="40.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.importer.CSVImportService" target="com.butbetter.storage.csvImport.repository.FileProductRepository" relationship="DEPENDENCY">
<point x="-322.875" y="-63.0" />
<point x="2855.889036016946" y="1624.0" />
<point x="2530.889036016946" y="1624.0" />
<point x="2530.889036016946" y="1594.0" />
<point x="2855.593308615817" y="1594.0" />
<point x="-53.0" y="14.5" />
</edge>
<edge source="com.butbetter.storage.StorageApplication" target="com.butbetter.storage.csvImport.properties.StorageProperties" relationship="DEPENDENCY">
<point x="0.0" y="-40.0" />
<point x="0.0" y="64.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.fileStorage.FileStorageService" target="com.butbetter.storage.csvImport.exception.StorageFileNotProcessableException" relationship="DEPENDENCY">
<point x="-148.5" y="-201.0" />
<point x="4004.666666666666" y="1624.0" />
<point x="3915.7123940677952" y="1624.0" />
<point x="3915.7123940677952" y="1328.0" />
<point x="4296.212394067796" y="1328.0" />
<point x="4296.212394067796" y="1248.0" />
<point x="3478.104166666666" y="1248.0" />
<point x="97.0" y="39.0" />
</edge>
<edge source="com.butbetter.storage.restApi.service.StorageService" target="com.butbetter.storage.restApi.repository.AddressRepository" relationship="TO_ONE">
<point x="-213.75" y="-63.0" />
<point x="115.09339689265198" y="1624.0" />
<point x="227.71839689265198" y="1624.0" />
<point x="227.71839689265198" y="1614.0" />
<point x="47.25" y="1614.0" />
<point x="-47.25" y="14.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.fileStorage.FileStorageService" target="com.butbetter.storage.csvImport.service.importer.ICSVImportService" relationship="DEPENDENCY">
<point x="-148.5" y="-201.0" />
<point x="4004.666666666666" y="1624.0" />
<point x="3915.7123940677952" y="1624.0" />
<point x="3915.7123940677952" y="1584.0" />
<point x="4153.166666666666" y="1584.0" />
<point x="0.0" y="27.5" />
</edge>
<edge source="com.butbetter.storage.restApi.service.StorageService" target="com.butbetter.storage.restApi.repository.AddressRepository" relationship="DEPENDENCY">
<point x="-71.25" y="-63.0" />
<point x="257.593396892652" y="1624.0" />
<point x="389.718396892652" y="1624.0" />
<point x="389.718396892652" y="1604.0" />
<point x="141.75" y="1604.0" />
<point x="47.25" y="14.5" />
</edge>
<edge source="com.butbetter.storage.restApi.validator.IProductInformationValidator" target="com.butbetter.storage.restApi.validator.Validator" relationship="INTERFACE_GENERALIZATION">
<point x="66.0" y="-14.5" />
<point x="822.843308615817" y="850.0" />
<point x="1320.6707274011287" y="850.0" />
<point x="1320.6707274011287" y="840.0" />
<point x="478.49999999999955" y="840.0" />
<point x="36.0" y="27.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.model.ProductInformationCsv" target="com.butbetter.storage.csvImport.customConverter.BeanAddressCsvConverter" relationship="DEPENDENCY">
<point x="-97.75" y="-157.0" />
<point x="2365.854166666666" y="860.0" />
<point x="2414.604166666666" y="860.0" />
<point x="2414.604166666666" y="850.0" />
<point x="2142.468396892652" y="850.0" />
<point x="-75.75" y="74.5" />
</edge>
<edge source="com.butbetter.storage.restApi.controller.StorageController" target="com.butbetter.storage.restApi.service.IStorageService" relationship="DEPENDENCY">
<point x="163.5" y="-97.5" />
<point x="1124.343396892652" y="1624.0" />
<point x="809.0833333333328" y="1624.0" />
<point x="117.33333333333326" y="50.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.fileStorage.IFileStorageService" target="com.butbetter.storage.csvImport.exception.FaultyCSVException" relationship="DEPENDENCY">
<point x="0.0" y="-96.5" />
<point x="4970.534869350279" y="1328.0" />
<point x="4528.89980579096" y="1328.0" />
<point x="4528.89980579096" y="1248.0" />
<point x="4472.337394067796" y="1248.0" />
<point x="4472.337394067796" y="1238.0" />
<point x="3808.854166666666" y="1238.0" />
<point x="71.25" y="39.0" />
</edge>
<edge source="com.butbetter.storage.restApi.service.StorageService" target="com.butbetter.storage.restApi.repository.ProductRepository" relationship="DEPENDENCY">
<point x="-71.25" y="-63.0" />
<point x="257.593396892652" y="1624.0" />
<point x="389.718396892652" y="1624.0" />
<point x="389.718396892652" y="1604.0" />
<point x="349.49999999999955" y="1604.0" />
<point x="46.5" y="14.5" />
</edge>
<edge source="com.butbetter.storage.restApi.service.StorageService" target="com.butbetter.storage.restApi.validator.Validator" relationship="DEPENDENCY">
<point x="-71.25" y="-63.0" />
<point x="257.593396892652" y="1624.0" />
<point x="389.718396892652" y="1624.0" />
<point x="389.718396892652" y="1604.0" />
<point x="406.49999999999955" y="1604.0" />
<point x="-36.0" y="27.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.importer.CSVImportService" target="com.butbetter.storage.csvImport.model.ProductInformationCsv" relationship="DEPENDENCY">
<point x="-322.875" y="-63.0" />
<point x="2855.889036016946" y="1624.0" />
<point x="2530.889036016946" y="1624.0" />
<point x="2530.889036016946" y="1594.0" />
<point x="2450.218308615817" y="1594.0" />
<point x="2450.218308615817" y="1318.0" />
<point x="2463.604166666666" y="1318.0" />
<point x="0.0" y="157.0" />
</edge>
<edge source="com.butbetter.storage.restApi.repository.ProductRepository" target="com.butbetter.storage.restApi.model.ProductInformation" relationship="DEPENDENCY">
<point x="0.0" y="-14.5" />
<point x="302.99999999999955" y="860.0" />
<point x="719.7499999999995" y="860.0" />
<point x="0.0" y="157.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.repository.FileAddressRepository" target="com.butbetter.storage.csvImport.model.AddressCsv" relationship="DEPENDENCY">
<point x="0.0" y="-14.5" />
<point x="3142.843396892652" y="483.0" />
<point x="2416.979166666666" y="483.0" />
<point x="0.0" y="226.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.importer.CSVImportService" target="com.butbetter.storage.csvImport.service.converter.ICSVProductInformationConverter" relationship="DEPENDENCY">
<point x="-322.875" y="-63.0" />
<point x="2855.889036016946" y="1624.0" />
<point x="2530.889036016946" y="1624.0" />
<point x="2530.889036016946" y="1594.0" />
<point x="2634.093308615817" y="1594.0" />
<point x="0.0" y="14.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.fileStorage.FileStorageService" target="com.butbetter.storage.csvImport.exception.StorageFileNotFoundException" relationship="CREATE">
<point x="148.5" y="-201.0" />
<point x="4301.666666666666" y="1624.0" />
<point x="4257.166666666666" y="1624.0" />
<point x="4257.166666666666" y="1288.0" />
<point x="4539.666666666666" y="1288.0" />
<point x="-88.75" y="39.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.converter.CSVConverter" target="com.butbetter.storage.csvImport.model.ProductInformationCsv" relationship="DEPENDENCY">
<point x="-83.75" y="-40.0" />
<point x="1795.0416666666663" y="1594.0" />
<point x="1873.5416666666663" y="1594.0" />
<point x="1873.5416666666663" y="1318.0" />
<point x="2463.604166666666" y="1318.0" />
<point x="0.0" y="157.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.fileStorage.FileStorageService" target="com.butbetter.storage.csvImport.exception.StorageException" relationship="CREATE">
<point x="148.5" y="-201.0" />
<point x="4301.666666666666" y="1624.0" />
<point x="4257.166666666666" y="1624.0" />
<point x="4257.166666666666" y="1278.0" />
<point x="4147.666666666666" y="1278.0" />
<point x="-68.0" y="39.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.fileStorage.FileStorageService" target="com.butbetter.storage.csvImport.properties.StorageProperties" relationship="DEPENDENCY">
<point x="-148.5" y="-201.0" />
<point x="4004.666666666666" y="1624.0" />
<point x="3915.7123940677952" y="1624.0" />
<point x="3915.7123940677952" y="1564.0" />
<point x="3773.1498057909603" y="1564.0" />
<point x="0.0" y="64.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.importer.CSVImportService" target="com.butbetter.storage.restApi.validator.IProductInformationValidator" relationship="DEPENDENCY">
<point x="-322.875" y="-63.0" />
<point x="2855.889036016946" y="1624.0" />
<point x="2530.889036016946" y="1624.0" />
<point x="2530.889036016946" y="1594.0" />
<point x="2049.468308615817" y="1594.0" />
<point x="2049.468308615817" y="1328.0" />
<point x="756.843308615817" y="1328.0" />
<point x="0.0" y="14.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.importer.CSVImportService" target="com.butbetter.storage.csvImport.validator.IProductInformationCsvValidator" relationship="DEPENDENCY">
<point x="-322.875" y="-63.0" />
<point x="2855.889036016946" y="1624.0" />
<point x="2530.889036016946" y="1624.0" />
<point x="2530.889036016946" y="1594.0" />
<point x="2295.218308615817" y="1594.0" />
<point x="0.0" y="14.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.fileStorage.FileStorageService" target="com.butbetter.storage.csvImport.exception.FaultyCSVException" relationship="DEPENDENCY">
<point x="-148.5" y="-201.0" />
<point x="4004.666666666666" y="1624.0" />
<point x="3915.7123940677952" y="1624.0" />
<point x="3915.7123940677952" y="1584.0" />
<point x="4049.166666666666" y="1584.0" />
<point x="4049.166666666666" y="1308.0" />
<point x="4472.337394067796" y="1308.0" />
<point x="4472.337394067796" y="1238.0" />
<point x="3808.854166666666" y="1238.0" />
<point x="71.25" y="39.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.model.ProductInformationCsv" target="com.butbetter.storage.csvImport.customConverter.BeanOffsetDateTimeConverter" relationship="TO_ONE">
<point x="97.75" y="-157.0" />
<point x="2561.354166666666" y="860.0" />
<point x="2631.479166666666" y="860.0" />
<point x="2631.479166666666" y="840.0" />
<point x="2623.218396892652" y="840.0" />
<point x="77.5" y="40.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.configurations.StorageConfiguration" target="com.butbetter.storage.csvImport.service.fileStorage.IFileStorageService" relationship="DEPENDENCY">
<point x="0.0" y="-40.0" />
<point x="5212.166666666666" y="1604.0" />
<point x="5006.701536016946" y="1604.0" />
<point x="5006.701536016946" y="1594.0" />
<point x="4970.534869350279" y="1594.0" />
<point x="0.0" y="96.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.importer.CSVImportService" target="com.butbetter.storage.csvImport.repository.FileProductRepository" relationship="TO_ONE">
<point x="-107.625" y="-63.0" />
<point x="3071.139036016946" y="1624.0" />
<point x="3116.1498057909603" y="1624.0" />
<point x="3116.1498057909603" y="1584.0" />
<point x="2961.593308615817" y="1584.0" />
<point x="53.0" y="14.5" />
</edge>
<edge source="com.butbetter.storage.restApi.service.StorageService" target="com.butbetter.storage.restApi.validator.IProductInformationValidator" relationship="TO_ONE">
<point x="-213.75" y="-63.0" />
<point x="115.09339689265198" y="1624.0" />
<point x="227.71839689265198" y="1624.0" />
<point x="227.71839689265198" y="1614.0" />
<point x="199.5" y="1614.0" />
<point x="199.5" y="1298.0" />
<point x="668.843308615817" y="1298.0" />
<point x="-88.0" y="14.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.controller.FileUploadController" target="com.butbetter.storage.csvImport.service.fileStorage.IFileStorageService" relationship="TO_ONE">
<point x="164.5" y="-132.0" />
<point x="4864.666666666666" y="1624.0" />
<point x="5052.868202683612" y="1624.0" />
<point x="82.33333333333303" y="96.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.controller.FileUploadController" target="com.butbetter.storage.csvImport.exception.StorageFileNotFoundException" relationship="DEPENDENCY">
<point x="-164.5" y="-132.0" />
<point x="4535.666666666666" y="1624.0" />
<point x="4760.951536016946" y="1624.0" />
<point x="4760.951536016946" y="1594.0" />
<point x="4739.218396892652" y="1594.0" />
<point x="4739.218396892652" y="1288.0" />
<point x="4625.462394067796" y="1288.0" />
<point x="4625.462394067796" y="1218.0" />
<point x="4717.166666666666" y="1218.0" />
<point x="88.75" y="39.0" />
</edge>
<edge source="com.butbetter.storage.restApi.model.ProductInformation" target="com.butbetter.storage.restApi.model.Address" relationship="TO_ONE">
<point x="87.75" y="-157.0" />
<point x="807.4999999999995" y="473.0" />
<point x="609.968308615817" y="473.0" />
<point x="89.75" y="226.0" />
</edge>
<edge source="com.butbetter.storage.restApi.validator.ProductInformationValidator" target="com.butbetter.storage.restApi.model.ProductInformation" relationship="DEPENDENCY">
<point x="65.25" y="-40.0" />
<point x="1611.2956391242938" y="1318.0" />
<point x="1515.666666666666" y="1318.0" />
<point x="1515.666666666666" y="860.0" />
<point x="719.7499999999995" y="860.0" />
<point x="0.0" y="157.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.customConverter.BeanAddressCsvConverter" target="com.butbetter.storage.csvImport.model.AddressCsv" relationship="CREATE">
<point x="0.0" y="-74.5" />
<point x="2218.218396892652" y="483.0" />
<point x="2290.6458333333326" y="483.0" />
<point x="-126.33333333333348" y="226.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.controller.FileUploadController" target="com.butbetter.storage.csvImport.exception.StorageFileNotProcessableException" relationship="DEPENDENCY">
<point x="-164.5" y="-132.0" />
<point x="4535.666666666666" y="1624.0" />
<point x="4760.951536016946" y="1624.0" />
<point x="4760.951536016946" y="1594.0" />
<point x="4486.39980579096" y="1594.0" />
<point x="4486.39980579096" y="1328.0" />
<point x="4296.212394067796" y="1328.0" />
<point x="4296.212394067796" y="1248.0" />
<point x="3478.104166666666" y="1248.0" />
<point x="97.0" y="39.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.importer.CSVImportService" target="com.butbetter.storage.csvImport.service.importer.ICSVImportService" relationship="REALIZATION">
<point x="322.875" y="-63.0" />
<point x="3501.639036016946" y="1574.0" />
<point x="4090.8333333333326" y="1574.0" />
<point x="-62.333333333333485" y="27.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.importer.ICSVImportService" target="com.butbetter.storage.csvImport.exception.StorageFileNotProcessableException" relationship="DEPENDENCY">
<point x="0.0" y="-27.5" />
<point x="4153.166666666666" y="1318.0" />
<point x="4507.89980579096" y="1318.0" />
<point x="4507.89980579096" y="1278.0" />
<point x="4296.212394067796" y="1278.0" />
<point x="4296.212394067796" y="1248.0" />
<point x="3478.104166666666" y="1248.0" />
<point x="97.0" y="39.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.validator.IProductInformationCsvValidator" target="com.butbetter.storage.restApi.validator.Validator" relationship="INTERFACE_GENERALIZATION">
<point x="-72.25" y="-14.5" />
<point x="2222.968308615817" y="1308.0" />
<point x="1886.093396892652" y="1308.0" />
<point x="1886.093396892652" y="850.0" />
<point x="1320.6707274011287" y="850.0" />
<point x="1320.6707274011287" y="840.0" />
<point x="478.49999999999955" y="840.0" />
<point x="36.0" y="27.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.model.ProductInformationCsv" target="com.butbetter.storage.csvImport.model.AddressCsv" relationship="DEPENDENCY">
<point x="-97.75" y="-157.0" />
<point x="2365.854166666666" y="860.0" />
<point x="2414.604166666666" y="860.0" />
<point x="2414.604166666666" y="850.0" />
<point x="2380.218396892652" y="850.0" />
<point x="2380.218396892652" y="483.0" />
<point x="2416.979166666666" y="483.0" />
<point x="0.0" y="226.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.validator.IProductInformationCsvValidator" target="com.butbetter.storage.csvImport.model.ProductInformationCsv" relationship="DEPENDENCY">
<point x="72.25" y="-14.5" />
<point x="2367.468308615817" y="1318.0" />
<point x="2463.604166666666" y="1318.0" />
<point x="0.0" y="157.0" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.importer.CSVImportService" target="com.butbetter.storage.csvImport.repository.FileAddressRepository" relationship="TO_ONE">
<point x="-107.625" y="-63.0" />
<point x="3071.139036016946" y="1624.0" />
<point x="3116.1498057909603" y="1624.0" />
<point x="3116.1498057909603" y="1584.0" />
<point x="3196.593396892652" y="1584.0" />
<point x="53.75" y="14.5" />
</edge>
<edge source="com.butbetter.storage.csvImport.service.fileStorage.FileStorageService" target="com.butbetter.storage.csvImport.service.importer.ICSVImportService" relationship="TO_ONE">
<point x="-49.5" y="-201.0" />
<point x="4103.666666666666" y="1594.0" />
<point x="4215.499999999999" y="1594.0" />
<point x="62.33333333333303" y="27.5" />
</edge>
</edges>
<settings layout="Hierarchic" zoom="0.3480355819125278" showDependencies="true" x="2688.0" y="1023.5" />
<SelectedNodes />
<Categories>
<Category>Constructors</Category>
<Category>Fields</Category>
<Category>Inner Classes</Category>
<Category>Methods</Category>
<Category>Properties</Category>
</Categories>
<SCOPE>All</SCOPE>
<VISIBILITY>private</VISIBILITY>
</Diagram>