GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — language ( 22f462 )
by Eric
02:22
created

ApiHelperBuilder::build()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
/*
4
 * This file is part of the Ivory Google Map package.
5
 *
6
 * (c) Eric GELOEN <[email protected]>
7
 *
8
 * For the full copyright and license information, please read the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Ivory\GoogleMap\Helper\Builder;
13
14
use Ivory\GoogleMap\Helper\ApiHelper;
15
use Ivory\GoogleMap\Helper\Collector\Overlay\EncodedPolylineCollector;
16
use Ivory\GoogleMap\Helper\Collector\Overlay\InfoBoxCollector;
17
use Ivory\GoogleMap\Helper\Collector\Overlay\MarkerCollector;
18
use Ivory\GoogleMap\Helper\Formatter\Formatter;
19
use Ivory\GoogleMap\Helper\Renderer\ApiInitRenderer;
20
use Ivory\GoogleMap\Helper\Renderer\ApiRenderer;
21
use Ivory\GoogleMap\Helper\Renderer\Control\ControlManagerRenderer;
22
use Ivory\GoogleMap\Helper\Renderer\Geometry\EncodingRenderer;
23
use Ivory\GoogleMap\Helper\Renderer\Html\JavascriptTagRenderer;
24
use Ivory\GoogleMap\Helper\Renderer\Html\TagRenderer;
25
use Ivory\GoogleMap\Helper\Renderer\LoaderRenderer;
26
use Ivory\GoogleMap\Helper\Renderer\MapRenderer;
27
use Ivory\GoogleMap\Helper\Renderer\MapTypeIdRenderer;
28
use Ivory\GoogleMap\Helper\Renderer\Overlay\EncodedPolylineRenderer;
29
use Ivory\GoogleMap\Helper\Renderer\Overlay\InfoBoxRenderer;
30
use Ivory\GoogleMap\Helper\Renderer\Overlay\MarkerClustererRenderer;
31
use Ivory\GoogleMap\Helper\Renderer\Place\AutocompleteRenderer;
32
use Ivory\GoogleMap\Helper\Renderer\Utility\CallbackRenderer;
33
use Ivory\GoogleMap\Helper\Renderer\Utility\RequirementLoaderRenderer;
34
use Ivory\GoogleMap\Helper\Renderer\Utility\RequirementRenderer;
35
use Ivory\GoogleMap\Helper\Renderer\Utility\SourceRenderer;
36
use Ivory\GoogleMap\Helper\Subscriber\ApiJavascriptSubscriber;
37
use Ivory\GoogleMap\Helper\Subscriber\MapJavascriptSubscriber;
38
use Ivory\GoogleMap\Helper\Subscriber\Overlay\EncodedPolylineSubscriber;
39
use Ivory\GoogleMap\Helper\Subscriber\Overlay\InfoBoxSubscriber;
40
use Ivory\GoogleMap\Helper\Subscriber\Overlay\MarkerClustererSubscriber;
41
use Ivory\GoogleMap\Helper\Subscriber\Place\AutocompleteJavascriptSubscriber;
42
use Ivory\JsonBuilder\JsonBuilder;
43
44
/**
45
 * @author GeLo <[email protected]>
46
 */
47
class ApiHelperBuilder extends AbstractHelperBuilder
48
{
49
    /**
50
     * @var string
51
     */
52
    private $language;
53
54
    /**
55
     * @param Formatter|null   $formatter
56
     * @param JsonBuilder|null $jsonBuilder
57
     * @param string           $language
58
     */
59
    public function __construct(Formatter $formatter = null, JsonBuilder $jsonBuilder = null, $language = 'en')
60
    {
61
        parent::__construct($formatter, $jsonBuilder);
62
63
        $this->setLanguage($language);
64
    }
65
66
    /**
67
     * @return string
68
     */
69
    public function getLanguage()
70
    {
71
        return $this->language;
72
    }
73
74
    /**
75
     * @param string $language
76
     */
77
    public function setLanguage($language)
78
    {
79
        $this->language = $language;
80
    }
81
82
    /**
83
     * @return ApiHelper
84
     */
85
    public function build()
86
    {
87
        return new ApiHelper($this->createEventDispatcher());
88
    }
89
90
    /**
91
     * {@inheritdoc}
92
     */
93
    protected function createSubscribers()
94
    {
95
        $formatter = $this->getFormatter();
96
        $jsonBuilder = $this->getJsonBuilder();
97
98
        // Overlay collectors
99
        $encodedPolylineCollector = new EncodedPolylineCollector();
100
        $markerCollector = new MarkerCollector();
101
        $infoBoxCollector = new InfoBoxCollector($markerCollector);
102
103
        // Control renderers
104
        $controlManagerRenderer = new ControlManagerRenderer();
105
106
        // Utility renderers
107
        $callbackRenderer = new CallbackRenderer($formatter);
108
        $loaderRenderer = new LoaderRenderer($formatter, $jsonBuilder, $this->language);
109
        $requirementLoaderRenderer = new RequirementLoaderRenderer($formatter);
110
        $requirementRenderer = new RequirementRenderer($formatter);
111
        $sourceRenderer = new SourceRenderer($formatter);
112
113
        // Map renderers
114
        $mapTypeIdRenderer = new MapTypeIdRenderer($formatter);
115
        $mapRenderer = new MapRenderer(
116
            $formatter,
117
            $jsonBuilder,
118
            $mapTypeIdRenderer,
119
            $controlManagerRenderer,
120
            $requirementRenderer
121
        );
122
123
        // Overlay renderers
124
        $encodingRenderer = new EncodingRenderer($formatter);
125
        $encodedPolylineRenderer = new EncodedPolylineRenderer($formatter, $jsonBuilder, $encodingRenderer);
126
        $infoBoxRenderer = new InfoBoxRenderer($formatter, $jsonBuilder, $requirementRenderer);
127
        $markerClustererRenderer = new MarkerClustererRenderer($formatter, $jsonBuilder, $requirementRenderer);
128
129
        // Place renderers
130
        $autocompleteRenderer = new AutocompleteRenderer($formatter, $jsonBuilder, $requirementRenderer);
131
132
        // Html renderers
133
        $tagRenderer = new TagRenderer($formatter);
134
        $javascriptTagRenderer = new JavascriptTagRenderer($formatter, $tagRenderer);
135
136
        // Api renderers
137
        $apiInitRenderer = new ApiInitRenderer($formatter);
138
        $apiRenderer = new ApiRenderer(
139
            $formatter,
140
            $apiInitRenderer,
141
            $loaderRenderer,
142
            $requirementLoaderRenderer,
143
            $sourceRenderer
144
        );
145
146
        return array_merge([
147
            new ApiJavascriptSubscriber($formatter, $apiRenderer, $javascriptTagRenderer),
148
            new AutocompleteJavascriptSubscriber(
149
                $formatter,
150
                $autocompleteRenderer,
151
                $callbackRenderer,
152
                $javascriptTagRenderer
153
            ),
154
            new EncodedPolylineSubscriber($formatter, $encodedPolylineCollector, $encodedPolylineRenderer),
155
            new InfoBoxSubscriber($formatter, $infoBoxCollector, $infoBoxRenderer),
156
            new MapJavascriptSubscriber($formatter, $mapRenderer, $callbackRenderer, $javascriptTagRenderer),
157
            new MarkerClustererSubscriber($formatter, $markerClustererRenderer),
158
        ], parent::createSubscribers());
159
    }
160
}
161