Passed
Push — main ( be62d9...6b4ffd )
by Osvaldo
01:37
created

Liderazgo   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 52
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 8
eloc 22
c 1
b 0
f 0
dl 0
loc 52
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A caracteristicasDelLiderazgo() 0 3 1
A obtenerRiesgosCualitativos() 0 13 4
A escasaClaridadDeFunciones() 0 3 1
A __construct() 0 8 1
A liderazgo() 0 5 1
1
<?php
2
namespace src\dominios;
3
4
use Exception;
5
use src\dimensiones\{EscasaClaridadDeFunciones,CaracteristicasDelLiderazgo};
6
7
class Liderazgo
8
{
9
    private $_escasaClaridadDeFunciones;
10
    private $_caracteristicasDelLiderazgo;
11
    private $_niveles = array(
12
        '0-3' => 'Nulo o despreciable',
13
        '3-5' => 'Bajo',
14
        '5-8' => 'Medio',
15
        '8-11' => 'Alto',
16
        '11-99' => 'Muy alto'
17
    );
18
19
    public function __construct
20
    (
21
        EscasaClaridadDeFunciones $EscasaClaridadDeFunciones,
22
        CaracteristicasDelLiderazgo $CaracteristicasDelLiderazgo
23
    )
24
    {
25
        $this->_escasaClaridadDeFunciones = $EscasaClaridadDeFunciones;
26
        $this->_caracteristicasDelLiderazgo = $CaracteristicasDelLiderazgo;
27
    }
28
29
    public function liderazgo(): int
30
    {
31
        return 
32
        $this->escasaClaridadDeFunciones()->escasaClaridadDeFunciones() +
33
        $this->caracteristicasDelLiderazgo()->caracteristicasDelLiderazgo();
34
    }
35
36
    public function escasaClaridadDeFunciones(): EscasaClaridadDeFunciones
37
    {
38
        return $this->_escasaClaridadDeFunciones;
39
    }
40
41
    public function caracteristicasDelLiderazgo(): CaracteristicasDelLiderazgo
42
    {
43
        return $this->_caracteristicasDelLiderazgo;
44
    }
45
46
    public function obtenerRiesgosCualitativos(): string
47
    {
48
        foreach ($this->_niveles as $k => $v)
49
        {
50
            $uno = explode('-',$k)[0];
51
            $dos = explode('-',$k)[1];
52
            if($this->liderazgo() >= $uno && $this->liderazgo() < $dos)
53
            {
54
                return $v;
55
            }
56
        }
57
58
        throw new Exception("Error para obtener riesgo cualitativo");
59
    }
60
}