Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
29 / 29
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
TypeConverterFactory
100.00% covered (success)
100.00%
29 / 29
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
1 / 1
 __construct
n/a
0 / 0
n/a
0 / 0
1
 create
100.00% covered (success)
100.00%
29 / 29
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2namespace Apie\StorageMetadata;
3
4use Apie\Core\FileStorage\ChainedFileStorage;
5use Apie\Core\TypeConverters\ArrayToDoctrineCollection;
6use Apie\Core\TypeConverters\DoctrineCollectionToArray;
7use Apie\StorageMetadata\Converters\ApieListToArray;
8use Apie\StorageMetadata\Converters\ArrayToItemHashmap;
9use Apie\StorageMetadata\Converters\ArrayToItemList;
10use Apie\StorageMetadata\Converters\ArrayToItemSet;
11use Apie\StorageMetadata\Converters\AutoIncrementTableToInt;
12use Apie\StorageMetadata\Converters\AutoIncrementTableToValueObject;
13use Apie\StorageMetadata\Converters\DateTimeToString;
14use Apie\StorageMetadata\Converters\EnumToString;
15use Apie\StorageMetadata\Converters\IntToAutoIncrementTable;
16use Apie\StorageMetadata\Converters\IntToValueObject;
17use Apie\StorageMetadata\Converters\MixedStorageToObject;
18use Apie\StorageMetadata\Converters\MixedToMixedStorage;
19use Apie\StorageMetadata\Converters\StringToDateTime;
20use Apie\StorageMetadata\Converters\StringToEnum;
21use Apie\StorageMetadata\Converters\StringToSearchIndex;
22use Apie\StorageMetadata\Converters\StringToUploadedFileInterface;
23use Apie\StorageMetadata\Converters\StringToValueObject;
24use Apie\StorageMetadata\Converters\UploadedFileInterfaceToString;
25use Apie\StorageMetadata\Converters\ValueObjectToAutoIncrementTable;
26use Apie\StorageMetadata\Converters\ValueObjectToFloat;
27use Apie\StorageMetadata\Converters\ValueObjectToInt;
28use Apie\StorageMetadata\Converters\ValueObjectToString;
29use Apie\TypeConverter\Converters\ObjectToObjectConverter;
30use Apie\TypeConverter\DefaultConvertersFactory;
31use Apie\TypeConverter\TypeConverter;
32
33final class TypeConverterFactory
34{
35    /**
36     * @codeCoverageIgnore
37     */
38    private function __construct()
39    {
40    }
41
42    public static function create(ChainedFileStorage $fileStorage): TypeConverter
43    {
44        return new TypeConverter(
45            new ObjectToObjectConverter(),
46            ...DefaultConvertersFactory::create(
47                new StringToUploadedFileInterface($fileStorage),
48                new UploadedFileInterfaceToString($fileStorage),
49                new ArrayToDoctrineCollection(),
50                new StringToSearchIndex(),
51                new DoctrineCollectionToArray(),
52                new ApieListToArray(),
53                new AutoIncrementTableToInt(),
54                new AutoIncrementTableToValueObject(),
55                new IntToAutoIncrementTable(),
56                new ValueObjectToAutoIncrementTable(),
57                new ValueObjectToInt(),
58                new IntToValueObject(),
59                new ValueObjectToFloat(),
60                new MixedStorageToObject(),
61                new MixedToMixedStorage(),
62                new ValueObjectToString(),
63                new EnumToString(),
64                new StringToDateTime(),
65                new DateTimeToString(),
66                new StringToValueObject(),
67                new StringToEnum(),
68                new ArrayToItemHashmap(),
69                new ArrayToItemList(),
70                new ArrayToItemSet(),
71            )
72        );
73    }
74}