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.

MapRenderer::render()   B
last analyzed

Complexity

Conditions 4
Paths 3

Size

Total Lines 34
Code Lines 22

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 25
CRAP Score 4

Importance

Changes 0
Metric Value
dl 0
loc 34
ccs 25
cts 25
cp 1
rs 8.5806
c 0
b 0
f 0
cc 4
eloc 22
nc 3
nop 1
crap 4
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\Renderer;
13
14
use Ivory\GoogleMap\Helper\Formatter\Formatter;
15
use Ivory\GoogleMap\Helper\Renderer\Control\ControlManagerRenderer;
16
use Ivory\GoogleMap\Helper\Renderer\Utility\RequirementRenderer;
17
use Ivory\GoogleMap\Map;
18
use Ivory\GoogleMap\MapTypeId;
19
use Ivory\JsonBuilder\JsonBuilder;
20
21
/**
22
 * @author GeLo <[email protected]>
23
 */
24
class MapRenderer extends AbstractJsonRenderer
25
{
26
    /**
27
     * @var MapTypeIdRenderer
28
     */
29
    private $mapTypeIdRenderer;
30
31
    /**
32
     * @var ControlManagerRenderer
33
     */
34
    private $controlManagerRenderer;
35
36
    /**
37
     * @var RequirementRenderer
38
     */
39
    private $requirementRenderer;
40
41
    /**
42
     * @param Formatter              $formatter
43
     * @param JsonBuilder            $jsonBuilder
44
     * @param MapTypeIdRenderer      $mapTypeIdRenderer
45
     * @param ControlManagerRenderer $controlManagerRenderer
46
     * @param RequirementRenderer    $requirementRenderer
47
     */
48 304
    public function __construct(
49
        Formatter $formatter,
50
        JsonBuilder $jsonBuilder,
51
        MapTypeIdRenderer $mapTypeIdRenderer,
52
        ControlManagerRenderer $controlManagerRenderer,
53
        RequirementRenderer $requirementRenderer
54
    ) {
55 304
        parent::__construct($formatter, $jsonBuilder);
56
57 304
        $this->setMapTypeIdRenderer($mapTypeIdRenderer);
58 304
        $this->setControlManagerRenderer($controlManagerRenderer);
59 304
        $this->setRequirementRenderer($requirementRenderer);
60 304
    }
61
62
    /**
63
     * @return MapTypeIdRenderer
64
     */
65 4
    public function getMapTypeIdRenderer()
66
    {
67 4
        return $this->mapTypeIdRenderer;
68
    }
69
70
    /**
71
     * @param MapTypeIdRenderer $mapTypeIdRenderer
72
     */
73 304
    public function setMapTypeIdRenderer(MapTypeIdRenderer $mapTypeIdRenderer)
74
    {
75 304
        $this->mapTypeIdRenderer = $mapTypeIdRenderer;
76 304
    }
77
78
    /**
79
     * @return ControlManagerRenderer
80
     */
81 4
    public function getControlManagerRenderer()
82
    {
83 4
        return $this->controlManagerRenderer;
84
    }
85
86
    /**
87
     * @param ControlManagerRenderer $controlManagerRenderer
88
     */
89 304
    public function setControlManagerRenderer(ControlManagerRenderer $controlManagerRenderer)
90
    {
91 304
        $this->controlManagerRenderer = $controlManagerRenderer;
92 304
    }
93
94
    /**
95
     * @return RequirementRenderer
96
     */
97 4
    public function getRequirementRenderer()
98
    {
99 4
        return $this->requirementRenderer;
100
    }
101
102
    /**
103
     * @param RequirementRenderer $requirementRenderer
104
     */
105 304
    public function setRequirementRenderer($requirementRenderer)
106
    {
107 304
        $this->requirementRenderer = $requirementRenderer;
108 304
    }
109
110
    /**
111
     * @param Map $map
112
     *
113
     * @return string
114
     */
115 232
    public function render(Map $map)
116
    {
117 232
        $formatter = $this->getFormatter();
118 232
        $jsonBuilder = $this->getJsonBuilder();
119
120 232
        $options = $map->getMapOptions();
121 232
        unset($options['mapTypeId']);
122
123 232
        if (!$map->isAutoZoom()) {
124 168
            if (!isset($options['zoom'])) {
125 166
                $options['zoom'] = 3;
126 82
            }
127 84
        } else {
128 64
            unset($options['zoom']);
129
        }
130
131 232
        $this->controlManagerRenderer->render($map->getControlManager(), $jsonBuilder);
132
133
        $jsonBuilder
134 232
            ->setValue(
135 232
                '[mapTypeId]',
136 232
                $this->mapTypeIdRenderer->render($map->getMapOption('mapTypeId') ?: MapTypeId::ROADMAP),
137 116
                false
138 116
            )
139 232
            ->setValues($options);
140
141 232
        return $formatter->renderObjectAssignment($map, $formatter->renderObject('Map', [
142 232
            $formatter->renderCall(
143 232
                $formatter->renderProperty('document', 'getElementById'),
144 232
                [$formatter->renderEscape($map->getHtmlId())]
145 116
            ),
146 232
            $jsonBuilder->build(),
147 116
        ]));
148
    }
149
150
    /**
151
     * @return string
152
     */
153 220
    public function renderRequirement()
154
    {
155 220
        return $this->requirementRenderer->render($this->getFormatter()->renderClass());
156
    }
157
}
158