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.

Tooltips   F
last analyzed

Complexity

Total Complexity 65

Size/Duplication

Total Lines 802
Duplicated Lines 0 %

Importance

Changes 6
Bugs 0 Features 0
Metric Value
eloc 131
dl 0
loc 802
rs 3.2
c 6
b 0
f 0
wmc 65

64 Methods

Rating   Name   Duplication   Size   Complexity  
A setItemSort() 0 5 1
A callbacks() 0 7 2
A getFooterFontFamily() 0 3 1
A setCaretSize() 0 5 1
A setFooterSpacing() 0 5 1
A setTitleMarginBottom() 0 5 1
A getBackgroundColor() 0 3 1
A setMultiKeyBackground() 0 5 1
A getFooterFontStyle() 0 3 1
A setBodyFontColor() 0 5 1
A setEnabled() 0 5 1
A getFooterMarginTop() 0 3 1
A getItemSort() 0 3 1
A setPosition() 0 5 1
A isIntersect() 0 3 1
A getBodyFontSize() 0 3 1
A getFilter() 0 3 1
A getTitleFontStyle() 0 3 1
A getFooterFontSize() 0 3 1
A getCustom() 0 3 1
A getMultiKeyBackground() 0 3 1
A setFooterFontStyle() 0 5 1
A setBodySpacing() 0 5 1
A getCaretSize() 0 3 1
A isEnabled() 0 3 1
A setCornerRadius() 0 5 1
A setFooterFontSize() 0 5 1
A setTitleFontSize() 0 5 1
A getTitleFontSize() 0 3 1
A setBackgroundColor() 0 5 1
A setTitleFontFamily() 0 5 1
A setBodyFontStyle() 0 5 1
A getPosition() 0 3 1
A getBodyFontStyle() 0 3 1
A setBodyFontFamily() 0 5 1
A setIntersect() 0 5 1
A jsonSerialize() 0 3 1
A getFooterSpacing() 0 3 1
A setMode() 0 5 1
A setTitleSpacing() 0 5 1
A getXPadding() 0 3 1
A getFooterFontColor() 0 3 1
A setTitleFontColor() 0 5 1
A getMode() 0 3 1
A setFooterFontFamily() 0 5 1
A setTitleFontStyle() 0 5 1
A isDisplayColors() 0 3 1
A getYPadding() 0 3 1
A setFooterMarginTop() 0 5 1
A setFilter() 0 5 1
A setFooterFontColor() 0 5 1
A getCornerRadius() 0 3 1
A setCustom() 0 5 1
A getBodyFontFamily() 0 3 1
A setBodyFontSize() 0 5 1
A getTitleSpacing() 0 3 1
A getTitleMarginBottom() 0 3 1
A getBodyFontColor() 0 3 1
A getTitleFontColor() 0 3 1
A setDisplayColors() 0 5 1
A setYPadding() 0 5 1
A setXPadding() 0 5 1
A getBodySpacing() 0 3 1
A getTitleFontFamily() 0 3 1

How to fix   Complexity   

Complex Class

Complex classes like Tooltips often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

While breaking up the class, it is a good idea to analyze how other classes use Tooltips, and based on these observations, apply Extract Interface, too.

1
<?php
2
3
namespace Halfpastfour\PHPChartJS\Options;
4
5
use Halfpastfour\PHPChartJS\ArraySerializableInterface;
6
use Halfpastfour\PHPChartJS\Delegate\ArraySerializable;
7
use Halfpastfour\PHPChartJS\Options\Tooltips\Callbacks;
8
use JsonSerializable;
9
use Laminas\Json\Expr;
10
11
/**
12
 * Class Tooltips
13
 *
14
 * @package Halfpastfour\PHPChartJS\Options
15
 */
16
class Tooltips implements ArraySerializableInterface, JsonSerializable
17
{
18
    use ArraySerializable;
19
20
    /**
21
     * @var bool
22
     */
23
    private $enabled;
24
25
    /**
26
     * @var Expr
27
     */
28
    private $custom;
29
30
    /**
31
     * @var string
32
     */
33
    private $mode;
34
35
    /**
36
     * @var bool
37
     */
38
    private $intersect;
39
40
    /**
41
     * @var string
42
     */
43
    private $position;
44
45
    /**
46
     * @var Expr
47
     */
48
    private $itemSort;
49
50
    /**
51
     * @var Expr
52
     */
53
    private $filter;
54
55
    /**
56
     * @var string
57
     */
58
    private $backgroundColor;
59
60
    /**
61
     * @var string
62
     */
63
    private $titleFontFamily;
64
65
    /**
66
     * @var int
67
     */
68
    private $titleFontSize;
69
70
    /**
71
     * @var string
72
     */
73
    private $titleFontStyle;
74
75
    /**
76
     * @var string
77
     */
78
    private $titleFontColor;
79
80
    /**
81
     * @var int
82
     */
83
    private $titleSpacing;
84
85
    /**
86
     * @var int
87
     */
88
    private $titleMarginBottom;
89
90
    /**
91
     * @var string
92
     */
93
    private $bodyFontFamily;
94
95
    /**
96
     * @var int
97
     */
98
    private $bodyFontSize;
99
100
    /**
101
     * @var string
102
     */
103
    private $bodyFontStyle;
104
105
    /**
106
     * @var string
107
     */
108
    private $bodyFontColor;
109
110
    /**
111
     * @var int
112
     */
113
    private $bodySpacing;
114
115
    /**
116
     * @var string
117
     */
118
    private $footerFontFamily;
119
120
    /**
121
     * @var int
122
     */
123
    private $footerFontSize;
124
125
    /**
126
     * @var string
127
     */
128
    private $footerFontStyle;
129
130
    /**
131
     * @var string
132
     */
133
    private $footerFontColor;
134
135
    /**
136
     * @var int
137
     */
138
    private $footerSpacing;
139
140
    /**
141
     * @var int
142
     */
143
    private $footerMarginTop;
144
145
    /**
146
     * @var int
147
     */
148
    private $xPadding;
149
150
    /**
151
     * @var int
152
     */
153
    private $yPadding;
154
155
    /**
156
     * @var int
157
     */
158
    private $caretSize;
159
160
    /**
161
     * @var int
162
     */
163
    private $cornerRadius;
164
165
    /**
166
     * @var string
167
     */
168
    private $multiKeyBackground;
169
170
    /**
171
     * @var bool
172
     */
173
    private $displayColors;
174
175
    /**
176
     * @var Callbacks
177
     */
178
    private $callbacks;
179
180
    /**
181
     * @return bool
182
     */
183
    public function isEnabled()
184
    {
185
        return $this->enabled;
186
    }
187
188
    /**
189
     * @param bool $enabled
190
     *
191
     * @return $this
192
     */
193
    public function setEnabled($enabled)
194
    {
195
        $this->enabled = boolval($enabled);
196
197
        return $this;
198
    }
199
200
    /**
201
     * @return \Laminas\Json\Expr
202
     */
203
    public function getCustom()
204
    {
205
        return $this->custom;
206
    }
207
208
    /**
209
     * @param \Laminas\Json\Expr $custom
210
     *
211
     * @return $this
212
     */
213
    public function setCustom($custom)
214
    {
215
        $this->custom = $custom;
216
217
        return $this;
218
    }
219
220
    /**
221
     * @return string
222
     */
223
    public function getMode()
224
    {
225
        return $this->mode;
226
    }
227
228
    /**
229
     * @param string $mode
230
     *
231
     * @return $this
232
     */
233
    public function setMode($mode)
234
    {
235
        $this->mode = strval($mode);
236
237
        return $this;
238
    }
239
240
    /**
241
     * @return bool
242
     */
243
    public function isIntersect()
244
    {
245
        return $this->intersect;
246
    }
247
248
    /**
249
     * @param bool $intersect
250
     *
251
     * @return $this
252
     */
253
    public function setIntersect($intersect)
254
    {
255
        $this->intersect = boolval($intersect);
256
257
        return $this;
258
    }
259
260
    /**
261
     * @return string
262
     */
263
    public function getPosition()
264
    {
265
        return $this->position;
266
    }
267
268
    /**
269
     * @param string $position
270
     *
271
     * @return $this
272
     */
273
    public function setPosition($position)
274
    {
275
        $this->position = strval($position);
276
277
        return $this;
278
    }
279
280
    /**
281
     * @return Expr
282
     */
283
    public function getItemSort()
284
    {
285
        return $this->itemSort;
286
    }
287
288
    /**
289
     * @param Expr $itemSort
290
     *
291
     * @return $this
292
     */
293
    public function setItemSort($itemSort)
294
    {
295
        $this->itemSort = new Expr(strval($itemSort));
296
297
        return $this;
298
    }
299
300
    /**
301
     * @return Expr
302
     */
303
    public function getFilter()
304
    {
305
        return $this->filter;
306
    }
307
308
    /**
309
     * @param Expr $filter
310
     *
311
     * @return $this
312
     */
313
    public function setFilter($filter)
314
    {
315
        $this->filter = new Expr(strval($filter));
316
317
        return $this;
318
    }
319
320
    /**
321
     * @return string
322
     */
323
    public function getBackgroundColor()
324
    {
325
        return $this->backgroundColor;
326
    }
327
328
    /**
329
     * @param string $backgroundColor
330
     *
331
     * @return $this
332
     */
333
    public function setBackgroundColor($backgroundColor)
334
    {
335
        $this->backgroundColor = strval($backgroundColor);
336
337
        return $this;
338
    }
339
340
    /**
341
     * @return string
342
     */
343
    public function getTitleFontFamily()
344
    {
345
        return $this->titleFontFamily;
346
    }
347
348
    /**
349
     * @param string $titleFontFamily
350
     *
351
     * @return $this
352
     */
353
    public function setTitleFontFamily($titleFontFamily)
354
    {
355
        $this->titleFontFamily = strval($titleFontFamily);
356
357
        return $this;
358
    }
359
360
    /**
361
     * @return int
362
     */
363
    public function getTitleFontSize()
364
    {
365
        return $this->titleFontSize;
366
    }
367
368
    /**
369
     * @param int $titleFontSize
370
     *
371
     * @return $this
372
     */
373
    public function setTitleFontSize($titleFontSize)
374
    {
375
        $this->titleFontSize = intval($titleFontSize);
376
377
        return $this;
378
    }
379
380
    /**
381
     * @return string
382
     */
383
    public function getTitleFontStyle()
384
    {
385
        return $this->titleFontStyle;
386
    }
387
388
    /**
389
     * @param string $titleFontStyle
390
     *
391
     * @return $this
392
     */
393
    public function setTitleFontStyle($titleFontStyle)
394
    {
395
        $this->titleFontStyle = strval($titleFontStyle);
396
397
        return $this;
398
    }
399
400
    /**
401
     * @return string
402
     */
403
    public function getTitleFontColor()
404
    {
405
        return $this->titleFontColor;
406
    }
407
408
    /**
409
     * @param string $titleFontColor
410
     *
411
     * @return $this
412
     */
413
    public function setTitleFontColor($titleFontColor)
414
    {
415
        $this->titleFontColor = strval($titleFontColor);
416
417
        return $this;
418
    }
419
420
    /**
421
     * @return int
422
     */
423
    public function getTitleSpacing()
424
    {
425
        return $this->titleSpacing;
426
    }
427
428
    /**
429
     * @param int $titleSpacing
430
     *
431
     * @return $this
432
     */
433
    public function setTitleSpacing($titleSpacing)
434
    {
435
        $this->titleSpacing = intval($titleSpacing);
436
437
        return $this;
438
    }
439
440
    /**
441
     * @return int
442
     */
443
    public function getTitleMarginBottom()
444
    {
445
        return $this->titleMarginBottom;
446
    }
447
448
    /**
449
     * @param int $titleMarginBottom
450
     *
451
     * @return $this
452
     */
453
    public function setTitleMarginBottom($titleMarginBottom)
454
    {
455
        $this->titleMarginBottom = intval($titleMarginBottom);
456
457
        return $this;
458
    }
459
460
    /**
461
     * @return string
462
     */
463
    public function getBodyFontFamily()
464
    {
465
        return $this->bodyFontFamily;
466
    }
467
468
    /**
469
     * @param string $bodyFontFamily
470
     *
471
     * @return $this
472
     */
473
    public function setBodyFontFamily($bodyFontFamily)
474
    {
475
        $this->bodyFontFamily = strval($bodyFontFamily);
476
477
        return $this;
478
    }
479
480
    /**
481
     * @return int
482
     */
483
    public function getBodyFontSize()
484
    {
485
        return $this->bodyFontSize;
486
    }
487
488
    /**
489
     * @param int $bodyFontSize
490
     *
491
     * @return $this
492
     */
493
    public function setBodyFontSize($bodyFontSize)
494
    {
495
        $this->bodyFontSize = intval($bodyFontSize);
496
497
        return $this;
498
    }
499
500
    /**
501
     * @return string
502
     */
503
    public function getBodyFontStyle()
504
    {
505
        return $this->bodyFontStyle;
506
    }
507
508
    /**
509
     * @param string $bodyFontStyle
510
     *
511
     * @return $this
512
     */
513
    public function setBodyFontStyle($bodyFontStyle)
514
    {
515
        $this->bodyFontStyle = strval($bodyFontStyle);
516
517
        return $this;
518
    }
519
520
    /**
521
     * @return string
522
     */
523
    public function getBodyFontColor()
524
    {
525
        return $this->bodyFontColor;
526
    }
527
528
    /**
529
     * @param string $bodyFontColor
530
     *
531
     * @return $this
532
     */
533
    public function setBodyFontColor($bodyFontColor)
534
    {
535
        $this->bodyFontColor = strval($bodyFontColor);
536
537
        return $this;
538
    }
539
540
    /**
541
     * @return int
542
     */
543
    public function getBodySpacing()
544
    {
545
        return $this->bodySpacing;
546
    }
547
548
    /**
549
     * @param int $bodySpacing
550
     *
551
     * @return $this
552
     */
553
    public function setBodySpacing($bodySpacing)
554
    {
555
        $this->bodySpacing = intval($bodySpacing);
556
557
        return $this;
558
    }
559
560
    /**
561
     * @return string
562
     */
563
    public function getFooterFontFamily()
564
    {
565
        return $this->footerFontFamily;
566
    }
567
568
    /**
569
     * @param string $footerFontFamily
570
     *
571
     * @return $this
572
     */
573
    public function setFooterFontFamily($footerFontFamily)
574
    {
575
        $this->footerFontFamily = strval($footerFontFamily);
576
577
        return $this;
578
    }
579
580
    /**
581
     * @return int
582
     */
583
    public function getFooterFontSize()
584
    {
585
        return $this->footerFontSize;
586
    }
587
588
    /**
589
     * @param int $footerFontSize
590
     *
591
     * @return $this
592
     */
593
    public function setFooterFontSize($footerFontSize)
594
    {
595
        $this->footerFontSize = intval($footerFontSize);
596
597
        return $this;
598
    }
599
600
    /**
601
     * @return string
602
     */
603
    public function getFooterFontStyle()
604
    {
605
        return $this->footerFontStyle;
606
    }
607
608
    /**
609
     * @param string $footerFontStyle
610
     *
611
     * @return $this
612
     */
613
    public function setFooterFontStyle($footerFontStyle)
614
    {
615
        $this->footerFontStyle = strval($footerFontStyle);
616
617
        return $this;
618
    }
619
620
    /**
621
     * @return string
622
     */
623
    public function getFooterFontColor()
624
    {
625
        return $this->footerFontColor;
626
    }
627
628
    /**
629
     * @param string $footerFontColor
630
     *
631
     * @return $this
632
     */
633
    public function setFooterFontColor($footerFontColor)
634
    {
635
        $this->footerFontColor = strval($footerFontColor);
636
637
        return $this;
638
    }
639
640
    /**
641
     * @return int
642
     */
643
    public function getFooterSpacing()
644
    {
645
        return $this->footerSpacing;
646
    }
647
648
    /**
649
     * @param int $footerSpacing
650
     *
651
     * @return $this
652
     */
653
    public function setFooterSpacing($footerSpacing)
654
    {
655
        $this->footerSpacing = intval($footerSpacing);
656
657
        return $this;
658
    }
659
660
    /**
661
     * @return int
662
     */
663
    public function getFooterMarginTop()
664
    {
665
        return $this->footerMarginTop;
666
    }
667
668
    /**
669
     * @param int $footerMarginTop
670
     *
671
     * @return $this
672
     */
673
    public function setFooterMarginTop($footerMarginTop)
674
    {
675
        $this->footerMarginTop = intval($footerMarginTop);
676
677
        return $this;
678
    }
679
680
    /**
681
     * @return int
682
     */
683
    public function getXPadding()
684
    {
685
        return $this->xPadding;
686
    }
687
688
    /**
689
     * @param int $xPadding
690
     *
691
     * @return $this
692
     */
693
    public function setXPadding($xPadding)
694
    {
695
        $this->xPadding = intval($xPadding);
696
697
        return $this;
698
    }
699
700
    /**
701
     * @return int
702
     */
703
    public function getYPadding()
704
    {
705
        return $this->yPadding;
706
    }
707
708
    /**
709
     * @param int $yPadding
710
     *
711
     * @return $this
712
     */
713
    public function setYPadding($yPadding)
714
    {
715
        $this->yPadding = intval($yPadding);
716
717
        return $this;
718
    }
719
720
    /**
721
     * @return int
722
     */
723
    public function getCaretSize()
724
    {
725
        return $this->caretSize;
726
    }
727
728
    /**
729
     * @param int $caretSize
730
     *
731
     * @return $this
732
     */
733
    public function setCaretSize($caretSize)
734
    {
735
        $this->caretSize = intval($caretSize);
736
737
        return $this;
738
    }
739
740
    /**
741
     * @return int
742
     */
743
    public function getCornerRadius()
744
    {
745
        return $this->cornerRadius;
746
    }
747
748
    /**
749
     * @param int $cornerRadius
750
     *
751
     * @return $this
752
     */
753
    public function setCornerRadius($cornerRadius)
754
    {
755
        $this->cornerRadius = intval($cornerRadius);
756
757
        return $this;
758
    }
759
760
    /**
761
     * @return string
762
     */
763
    public function getMultiKeyBackground()
764
    {
765
        return $this->multiKeyBackground;
766
    }
767
768
    /**
769
     * @param string $multiKeyBackground
770
     *
771
     * @return $this
772
     */
773
    public function setMultiKeyBackground($multiKeyBackground)
774
    {
775
        $this->multiKeyBackground = strval($multiKeyBackground);
776
777
        return $this;
778
    }
779
780
    /**
781
     * @return bool
782
     */
783
    public function isDisplayColors()
784
    {
785
        return $this->displayColors;
786
    }
787
788
    /**
789
     * @param bool $displayColors
790
     *
791
     * @return $this
792
     */
793
    public function setDisplayColors($displayColors)
794
    {
795
        $this->displayColors = boolval($displayColors);
796
797
        return $this;
798
    }
799
800
    /**
801
     * @return Callbacks
802
     */
803
    public function callbacks()
804
    {
805
        if (is_null($this->callbacks)) {
806
            $this->callbacks = new Callbacks();
807
        }
808
809
        return $this->callbacks;
810
    }
811
812
    /**
813
     * @return array
814
     */
815
    public function jsonSerialize()
816
    {
817
        return $this->getArrayCopy();
818
    }
819
}
820