PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.8.2
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.8.2
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / vendor / composer / semver / src / Constraint / Bound.php
matomo / app / vendor / composer / semver / src / Constraint Last commit date
Bound.php 1 year ago Constraint.php 1 year ago ConstraintInterface.php 1 year ago MatchAllConstraint.php 1 year ago MatchNoneConstraint.php 1 year ago MultiConstraint.php 1 year ago
Bound.php
123 lines
1 <?php
2
3 /*
4 * This file is part of composer/semver.
5 *
6 * (c) Composer <https://github.com/composer>
7 *
8 * For the full copyright and license information, please view
9 * the LICENSE file that was distributed with this source code.
10 */
11
12 namespace Composer\Semver\Constraint;
13
14 class Bound
15 {
16 /**
17 * @var string
18 */
19 private $version;
20
21 /**
22 * @var bool
23 */
24 private $isInclusive;
25
26 /**
27 * @param string $version
28 * @param bool $isInclusive
29 */
30 public function __construct($version, $isInclusive)
31 {
32 $this->version = $version;
33 $this->isInclusive = $isInclusive;
34 }
35
36 /**
37 * @return string
38 */
39 public function getVersion()
40 {
41 return $this->version;
42 }
43
44 /**
45 * @return bool
46 */
47 public function isInclusive()
48 {
49 return $this->isInclusive;
50 }
51
52 /**
53 * @return bool
54 */
55 public function isZero()
56 {
57 return $this->getVersion() === '0.0.0.0-dev' && $this->isInclusive();
58 }
59
60 /**
61 * @return bool
62 */
63 public function isPositiveInfinity()
64 {
65 return $this->getVersion() === PHP_INT_MAX.'.0.0.0' && !$this->isInclusive();
66 }
67
68 /**
69 * Compares a bound to another with a given operator.
70 *
71 * @param Bound $other
72 * @param string $operator
73 *
74 * @return bool
75 */
76 public function compareTo(Bound $other, $operator)
77 {
78 if (!\in_array($operator, array('<', '>'), true)) {
79 throw new \InvalidArgumentException('Does not support any other operator other than > or <.');
80 }
81
82 // If they are the same it doesn't matter
83 if ($this == $other) {
84 return false;
85 }
86
87 $compareResult = version_compare($this->getVersion(), $other->getVersion());
88
89 // Not the same version means we don't need to check if the bounds are inclusive or not
90 if (0 !== $compareResult) {
91 return (('>' === $operator) ? 1 : -1) === $compareResult;
92 }
93
94 // Question we're answering here is "am I higher than $other?"
95 return '>' === $operator ? $other->isInclusive() : !$other->isInclusive();
96 }
97
98 public function __toString()
99 {
100 return sprintf(
101 '%s [%s]',
102 $this->getVersion(),
103 $this->isInclusive() ? 'inclusive' : 'exclusive'
104 );
105 }
106
107 /**
108 * @return self
109 */
110 public static function zero()
111 {
112 return new Bound('0.0.0.0-dev', true);
113 }
114
115 /**
116 * @return self
117 */
118 public static function positiveInfinity()
119 {
120 return new Bound(PHP_INT_MAX.'.0.0.0', false);
121 }
122 }
123