Code Duplication    Length = 24-24 lines in 11 locations

ProviderFactory/ArcGISOnlineFactory.php 1 location

@@ 18-41 (lines=24) @@
15
use Http\Discovery\HttpClientDiscovery;
16
use Symfony\Component\OptionsResolver\OptionsResolver;
17
18
final class ArcGISOnlineFactory extends AbstractFactory
19
{
20
    protected static $dependencies = [
21
        ['requiredClass' => ArcGISOnline::class, 'packageName' => 'geocoder-php/arcgis-online-provider'],
22
    ];
23
24
    protected function getProvider(array $config)
25
    {
26
        $httplug = $config['httplug_client'] ?: HttpClientDiscovery::find();
27
28
        return new ArcGISOnline($httplug, $config['source_country']);
29
    }
30
31
    protected static function configureOptionResolver(OptionsResolver $resolver)
32
    {
33
        $resolver->setDefaults([
34
            'httplug_client' => null,
35
            'source_country' => null,
36
        ]);
37
38
        $resolver->setAllowedTypes('httplug_client', [HttpClient::class, 'null']);
39
        $resolver->setAllowedTypes('source_country', ['string', 'null']);
40
    }
41
}
42

ProviderFactory/BingMapsFactory.php 1 location

@@ 18-41 (lines=24) @@
15
use Http\Discovery\HttpClientDiscovery;
16
use Symfony\Component\OptionsResolver\OptionsResolver;
17
18
final class BingMapsFactory extends AbstractFactory
19
{
20
    protected static $dependencies = [
21
        ['requiredClass' => BingMaps::class, 'packageName' => 'geocoder-php/bing-maps-provider'],
22
    ];
23
24
    protected function getProvider(array $config)
25
    {
26
        $httplug = $config['httplug_client'] ?: HttpClientDiscovery::find();
27
28
        return new BingMaps($httplug, $config['api_key']);
29
    }
30
31
    protected static function configureOptionResolver(OptionsResolver $resolver)
32
    {
33
        $resolver->setDefaults([
34
            'httplug_client' => null,
35
        ]);
36
37
        $resolver->setRequired('api_key');
38
        $resolver->setAllowedTypes('httplug_client', [HttpClient::class, 'null']);
39
        $resolver->setAllowedTypes('api_key', ['string']);
40
    }
41
}
42

ProviderFactory/FreeGeoIpFactory.php 1 location

@@ 18-41 (lines=24) @@
15
use Http\Discovery\HttpClientDiscovery;
16
use Symfony\Component\OptionsResolver\OptionsResolver;
17
18
final class FreeGeoIpFactory extends AbstractFactory
19
{
20
    protected static $dependencies = [
21
        ['requiredClass' => FreeGeoIp::class, 'packageName' => 'geocoder-php/free-geoip-provider'],
22
    ];
23
24
    protected function getProvider(array $config)
25
    {
26
        $httplug = $config['httplug_client'] ?: HttpClientDiscovery::find();
27
28
        return new FreeGeoIp($httplug, $config['base_url']);
29
    }
30
31
    protected static function configureOptionResolver(OptionsResolver $resolver)
32
    {
33
        $resolver->setDefaults([
34
            'httplug_client' => null,
35
            'base_url' => 'https://freegeoip.net/json/%s',
36
        ]);
37
38
        $resolver->setAllowedTypes('httplug_client', [HttpClient::class, 'null']);
39
        $resolver->setAllowedTypes('base_url', ['string']);
40
    }
41
}
42

ProviderFactory/GeoIPsFactory.php 1 location

@@ 18-41 (lines=24) @@
15
use Http\Discovery\HttpClientDiscovery;
16
use Symfony\Component\OptionsResolver\OptionsResolver;
17
18
final class GeoIPsFactory extends AbstractFactory
19
{
20
    protected static $dependencies = [
21
        ['requiredClass' => GeoIPs::class, 'packageName' => 'geocoder-php/geoips-provider'],
22
    ];
23
24
    protected function getProvider(array $config)
25
    {
26
        $httplug = $config['httplug_client'] ?: HttpClientDiscovery::find();
27
28
        return new GeoIPs($httplug, $config['api_key']);
29
    }
30
31
    protected static function configureOptionResolver(OptionsResolver $resolver)
32
    {
33
        $resolver->setDefaults([
34
            'httplug_client' => null,
35
        ]);
36
37
        $resolver->setRequired('api_key');
38
        $resolver->setAllowedTypes('httplug_client', [HttpClient::class, 'null']);
39
        $resolver->setAllowedTypes('api_key', ['string']);
40
    }
41
}
42

ProviderFactory/GeonamesFactory.php 1 location

@@ 18-41 (lines=24) @@
15
use Http\Discovery\HttpClientDiscovery;
16
use Symfony\Component\OptionsResolver\OptionsResolver;
17
18
final class GeonamesFactory extends AbstractFactory
19
{
20
    protected static $dependencies = [
21
        ['requiredClass' => Geonames::class, 'packageName' => 'geocoder-php/geonames-provider'],
22
    ];
23
24
    protected function getProvider(array $config)
25
    {
26
        $httplug = $config['httplug_client'] ?: HttpClientDiscovery::find();
27
28
        return new Geonames($httplug, $config['username']);
29
    }
30
31
    protected static function configureOptionResolver(OptionsResolver $resolver)
32
    {
33
        $resolver->setDefaults([
34
            'httplug_client' => null,
35
        ]);
36
37
        $resolver->setRequired('username');
38
        $resolver->setAllowedTypes('httplug_client', [HttpClient::class, 'null']);
39
        $resolver->setAllowedTypes('username', ['string']);
40
    }
41
}
42

ProviderFactory/MapzenFactory.php 1 location

@@ 18-41 (lines=24) @@
15
use Http\Discovery\HttpClientDiscovery;
16
use Symfony\Component\OptionsResolver\OptionsResolver;
17
18
final class MapzenFactory extends AbstractFactory
19
{
20
    protected static $dependencies = [
21
        ['requiredClass' => Mapzen::class, 'packageName' => 'geocoder-php/mapzen-provider'],
22
    ];
23
24
    protected function getProvider(array $config)
25
    {
26
        $httplug = $config['httplug_client'] ?: HttpClientDiscovery::find();
27
28
        return new Mapzen($httplug, $config['api_key']);
29
    }
30
31
    protected static function configureOptionResolver(OptionsResolver $resolver)
32
    {
33
        $resolver->setDefaults([
34
            'httplug_client' => null,
35
        ]);
36
37
        $resolver->setRequired('api_key');
38
        $resolver->setAllowedTypes('httplug_client', [HttpClient::class, 'null']);
39
        $resolver->setAllowedTypes('api_key', ['string']);
40
    }
41
}
42

ProviderFactory/NominatimFactory.php 1 location

@@ 18-41 (lines=24) @@
15
use Http\Discovery\HttpClientDiscovery;
16
use Symfony\Component\OptionsResolver\OptionsResolver;
17
18
final class NominatimFactory extends AbstractFactory
19
{
20
    protected static $dependencies = [
21
        ['requiredClass' => Nominatim::class, 'packageName' => 'geocoder-php/nominatim-provider'],
22
    ];
23
24
    protected function getProvider(array $config)
25
    {
26
        $httplug = $config['httplug_client'] ?: HttpClientDiscovery::find();
27
28
        return new Nominatim($httplug, $config['root_url']);
29
    }
30
31
    protected static function configureOptionResolver(OptionsResolver $resolver)
32
    {
33
        $resolver->setDefaults([
34
            'httplug_client' => null,
35
            'root_url' => 'https://nominatim.openstreetmap.org',
36
        ]);
37
38
        $resolver->setAllowedTypes('httplug_client', [HttpClient::class, 'null']);
39
        $resolver->setAllowedTypes('root_url', ['string']);
40
    }
41
}
42

ProviderFactory/OpenCageFactory.php 1 location

@@ 18-41 (lines=24) @@
15
use Http\Discovery\HttpClientDiscovery;
16
use Symfony\Component\OptionsResolver\OptionsResolver;
17
18
final class OpenCageFactory extends AbstractFactory
19
{
20
    protected static $dependencies = [
21
        ['requiredClass' => OpenCage::class, 'packageName' => 'geocoder-php/open-cage-provider'],
22
    ];
23
24
    protected function getProvider(array $config)
25
    {
26
        $httplug = $config['httplug_client'] ?: HttpClientDiscovery::find();
27
28
        return new OpenCage($httplug, $config['api_key']);
29
    }
30
31
    protected static function configureOptionResolver(OptionsResolver $resolver)
32
    {
33
        $resolver->setDefaults([
34
            'httplug_client' => null,
35
        ]);
36
37
        $resolver->setRequired('api_key');
38
        $resolver->setAllowedTypes('httplug_client', [HttpClient::class, 'null']);
39
        $resolver->setAllowedTypes('api_key', ['string']);
40
    }
41
}
42

ProviderFactory/PickPointFactory.php 1 location

@@ 18-41 (lines=24) @@
15
use Http\Discovery\HttpClientDiscovery;
16
use Symfony\Component\OptionsResolver\OptionsResolver;
17
18
final class PickPointFactory extends AbstractFactory
19
{
20
    protected static $dependencies = [
21
        ['requiredClass' => PickPoint::class, 'packageName' => 'geocoder-php/pickpoint-provider'],
22
    ];
23
24
    protected function getProvider(array $config)
25
    {
26
        $httplug = $config['httplug_client'] ?: HttpClientDiscovery::find();
27
28
        return new PickPoint($httplug, $config['api_key']);
29
    }
30
31
    protected static function configureOptionResolver(OptionsResolver $resolver)
32
    {
33
        $resolver->setDefaults([
34
            'httplug_client' => null,
35
        ]);
36
37
        $resolver->setRequired('api_key');
38
        $resolver->setAllowedTypes('httplug_client', [HttpClient::class, 'null']);
39
        $resolver->setAllowedTypes('api_key', ['string']);
40
    }
41
}
42

ProviderFactory/TomTomFactory.php 1 location

@@ 18-41 (lines=24) @@
15
use Http\Discovery\HttpClientDiscovery;
16
use Symfony\Component\OptionsResolver\OptionsResolver;
17
18
final class TomTomFactory extends AbstractFactory
19
{
20
    protected static $dependencies = [
21
        ['requiredClass' => TomTom::class, 'packageName' => 'geocoder-php/tomtom-provider'],
22
    ];
23
24
    protected function getProvider(array $config)
25
    {
26
        $httplug = $config['httplug_client'] ?: HttpClientDiscovery::find();
27
28
        return new TomTom($httplug, $config['api_key']);
29
    }
30
31
    protected static function configureOptionResolver(OptionsResolver $resolver)
32
    {
33
        $resolver->setDefaults([
34
            'httplug_client' => null,
35
        ]);
36
37
        $resolver->setRequired('api_key');
38
        $resolver->setAllowedTypes('httplug_client', [HttpClient::class, 'null']);
39
        $resolver->setAllowedTypes('api_key', ['string']);
40
    }
41
}
42

ProviderFactory/YandexFactory.php 1 location

@@ 18-41 (lines=24) @@
15
use Http\Discovery\HttpClientDiscovery;
16
use Symfony\Component\OptionsResolver\OptionsResolver;
17
18
final class YandexFactory extends AbstractFactory
19
{
20
    protected static $dependencies = [
21
        ['requiredClass' => Yandex::class, 'packageName' => 'geocoder-php/yandex-provider'],
22
    ];
23
24
    protected function getProvider(array $config)
25
    {
26
        $httplug = $config['httplug_client'] ?: HttpClientDiscovery::find();
27
28
        return new Yandex($httplug, $config['toponym']);
29
    }
30
31
    protected static function configureOptionResolver(OptionsResolver $resolver)
32
    {
33
        $resolver->setDefaults([
34
            'httplug_client' => null,
35
            'toponym' => null,
36
        ]);
37
38
        $resolver->setAllowedTypes('httplug_client', [HttpClient::class, 'null']);
39
        $resolver->setAllowedTypes('toponym', ['string', 'null']);
40
    }
41
}
42