Passed
Push — feature/issue-168 ( a16e5d...f01c3b )
by Mikaël
06:47
created

AbstractMinMaxRule   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 65
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 26
dl 0
loc 65
rs 10
c 0
b 0
f 0
wmc 6

1 Method

Rating   Name   Duplication   Size   Complexity  
B comparisonString() 0 23 6
1
<?php
2
3
4
namespace WsdlToPhp\PackageGenerator\File\Validation;
5
6
abstract class AbstractMinMaxRule extends AbstractRule
7
{
8
9
    /**
10
     * Symbol to use for max rule
11
     * @var string
12
     */
13
    const SYMBOL_MAX_INCLUSIVE = '>';
14
15
    /**
16
     * Symbol to use for max exclusive rule
17
     * @var string
18
     */
19
    const SYMBOL_MAX_EXCLUSIVE = '>=';
20
21
    /**
22
     * Symbol to use for min rule
23
     * @var string
24
     */
25
    const SYMBOL_MIN_INCLUSIVE = '<';
26
27
    /**
28
     * Symbol to use for min exclusive rule
29
     * @var string
30
     */
31
    const SYMBOL_MIN_EXCLUSIVE = '<=';
32
33
    /**
34
     * Symbol to use for strict rule
35
     * @var string
36
     */
37
    const SYMBOL_STRICT = '!==';
38
39
    /**
40
     * Must return the comparison symbol
41
     * @return string
42
     */
43
    abstract public static function symbol();
44
45
    /**
46
     * @return string
47
     */
48
    final public static function comparisonString()
49
    {
50
        switch (static::symbol()) {
51
            case self::SYMBOL_MAX_INCLUSIVE:
52
                $comparison = 'less than or equal to';
53
                break;
54
            case self::SYMBOL_MIN_INCLUSIVE:
55
                $comparison = 'greater than or equal to';
56
                break;
57
            case self::SYMBOL_MIN_EXCLUSIVE:
58
                $comparison = 'greater than';
59
                break;
60
            case self::SYMBOL_MAX_EXCLUSIVE:
61
                $comparison = 'less than';
62
                break;
63
            case self::SYMBOL_STRICT:
64
                $comparison = 'equal to';
65
                break;
66
            default:
67
                throw new \InvalidArgumentException(sprintf('Invalid value %s returned by static::symbol(), can\'t determine comparison string', static::symbol()));
68
                break;
69
        }
70
        return $comparison;
71
    }
72
}
73