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
Pull Request — master (#136)
by Eric
04:41 queued 01:49
created

ApiHelperBuilder::setKey()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 1
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
     * @var string|null
56
     */
57
    private $key;
58
59
    /**
60
     * @param Formatter|null   $formatter
61
     * @param JsonBuilder|null $jsonBuilder
62
     * @param string           $language
63
     * @param string|null      $key
64
     */
65
    public function __construct(
66
        Formatter $formatter = null,
67
        JsonBuilder $jsonBuilder = null,
68
        $language = 'en',
69
        $key = null
0 ignored issues
show
Unused Code introduced by
The parameter $key is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
70
    ) {
71
        parent::__construct($formatter, $jsonBuilder);
72
73
        $this->setLanguage($language);
74
    }
75
76
    /**
77
     * @return string
78
     */
79
    public function getLanguage()
80
    {
81
        return $this->language;
82
    }
83
84
    /**
85
     * @param string $language
86
     */
87
    public function setLanguage($language)
88
    {
89
        $this->language = $language;
90
    }
91
92
    /**
93
     * @return bool
94
     */
95
    public function hasKey()
96
    {
97
        return $this->key !== null;
98
    }
99
100
    /**
101
     * @return string|null
102
     */
103
    public function getKey()
104
    {
105
        return $this->key;
106
    }
107
108
    /**
109
     * @param string|null $key
110
     */
111
    public function setKey($key)
112
    {
113
        $this->key = $key;
114
    }
115
116
    /**
117
     * @return ApiHelper
118
     */
119
    public function build()
120
    {
121
        return new ApiHelper($this->createEventDispatcher());
122
    }
123
124
    /**
125
     * {@inheritdoc}
126
     */
127
    protected function createSubscribers()
128
    {
129
        $formatter = $this->getFormatter();
130
        $jsonBuilder = $this->getJsonBuilder();
131
132
        // Overlay collectors
133
        $encodedPolylineCollector = new EncodedPolylineCollector();
134
        $markerCollector = new MarkerCollector();
135
        $infoBoxCollector = new InfoBoxCollector($markerCollector);
136
137
        // Control renderers
138
        $controlManagerRenderer = new ControlManagerRenderer();
139
140
        // Utility renderers
141
        $callbackRenderer = new CallbackRenderer($formatter);
142
        $loaderRenderer = new LoaderRenderer($formatter, $jsonBuilder, $this->language, $this->key);
143
        $requirementLoaderRenderer = new RequirementLoaderRenderer($formatter);
144
        $requirementRenderer = new RequirementRenderer($formatter);
145
        $sourceRenderer = new SourceRenderer($formatter);
146
147
        // Map renderers
148
        $mapTypeIdRenderer = new MapTypeIdRenderer($formatter);
149
        $mapRenderer = new MapRenderer(
150
            $formatter,
151
            $jsonBuilder,
152
            $mapTypeIdRenderer,
153
            $controlManagerRenderer,
154
            $requirementRenderer
155
        );
156
157
        // Overlay renderers
158
        $encodingRenderer = new EncodingRenderer($formatter);
159
        $encodedPolylineRenderer = new EncodedPolylineRenderer($formatter, $jsonBuilder, $encodingRenderer);
160
        $infoBoxRenderer = new InfoBoxRenderer($formatter, $jsonBuilder, $requirementRenderer);
161
        $markerClustererRenderer = new MarkerClustererRenderer($formatter, $jsonBuilder, $requirementRenderer);
162
163
        // Place renderers
164
        $autocompleteRenderer = new AutocompleteRenderer($formatter, $jsonBuilder, $requirementRenderer);
165
166
        // Html renderers
167
        $tagRenderer = new TagRenderer($formatter);
168
        $javascriptTagRenderer = new JavascriptTagRenderer($formatter, $tagRenderer);
169
170
        // Api renderers
171
        $apiInitRenderer = new ApiInitRenderer($formatter);
172
        $apiRenderer = new ApiRenderer(
173
            $formatter,
174
            $apiInitRenderer,
175
            $loaderRenderer,
176
            $requirementLoaderRenderer,
177
            $sourceRenderer
178
        );
179
180
        return array_merge([
181
            new ApiJavascriptSubscriber($formatter, $apiRenderer, $javascriptTagRenderer),
182
            new AutocompleteJavascriptSubscriber(
183
                $formatter,
184
                $autocompleteRenderer,
185
                $callbackRenderer,
186
                $javascriptTagRenderer
187
            ),
188
            new EncodedPolylineSubscriber($formatter, $encodedPolylineCollector, $encodedPolylineRenderer),
189
            new InfoBoxSubscriber($formatter, $infoBoxCollector, $infoBoxRenderer),
190
            new MapJavascriptSubscriber($formatter, $mapRenderer, $callbackRenderer, $javascriptTagRenderer),
191
            new MarkerClustererSubscriber($formatter, $markerClustererRenderer),
192
        ], parent::createSubscribers());
193
    }
194
}
195