11<?php
22
3+ declare (strict_types=1 );
4+
35namespace z4kn4fein \SemVer \Constraints ;
46
57use z4kn4fein \SemVer \SemverException ;
@@ -13,11 +15,8 @@ class Condition implements VersionComparator
1315{
1416 use Singles;
1517
16- /** @var string */
17- private $ operator ;
18-
19- /** @var Version */
20- private $ version ;
18+ private string $ operator ;
19+ private Version $ version ;
2120
2221 public function __construct (string $ operator , Version $ version )
2322 {
@@ -38,61 +37,31 @@ public function __toString(): string
3837 */
3938 public function isSatisfiedBy (Version $ version ): bool
4039 {
41- switch ($ this ->operator ) {
42- case Op::EQUAL :
43- return $ version ->isEqual ($ this ->version );
44-
45- case Op::NOT_EQUAL :
46- return !$ version ->isEqual ($ this ->version );
47-
48- case Op::LESS_THAN :
49- return $ version ->isLessThan ($ this ->version );
50-
51- case Op::LESS_THAN_OR_EQUAL :
52- case Op::LESS_THAN_OR_EQUAL2 :
53- return $ version ->isLessThanOrEqual ($ this ->version );
54-
55- case Op::GREATER_THAN :
56- return $ version ->isGreaterThan ($ this ->version );
57-
58- case Op::GREATER_THAN_OR_EQUAL :
59- case Op::GREATER_THAN_OR_EQUAL2 :
60- return $ version ->isGreaterThanOrEqual ($ this ->version );
61-
62- default :
63- throw new SemverException (sprintf ('Invalid operator in condition %s ' , (string ) $ this ));
64- }
40+ return match ($ this ->operator ) {
41+ Op::EQUAL => $ version ->isEqual ($ this ->version ),
42+ Op::NOT_EQUAL => !$ version ->isEqual ($ this ->version ),
43+ Op::LESS_THAN => $ version ->isLessThan ($ this ->version ),
44+ Op::LESS_THAN_OR_EQUAL , Op::LESS_THAN_OR_EQUAL2 => $ version ->isLessThanOrEqual ($ this ->version ),
45+ Op::GREATER_THAN => $ version ->isGreaterThan ($ this ->version ),
46+ Op::GREATER_THAN_OR_EQUAL , Op::GREATER_THAN_OR_EQUAL2 => $ version ->isGreaterThanOrEqual ($ this ->version ),
47+ default => throw new SemverException (sprintf ('Invalid operator in condition %s ' , $ this )),
48+ };
6549 }
6650
6751 /**
6852 * @throws SemverException
6953 */
7054 public function opposite (): string
7155 {
72- switch ($ this ->operator ) {
73- case Op::EQUAL :
74- return Op::NOT_EQUAL .$ this ->version ;
75-
76- case Op::NOT_EQUAL :
77- return Op::EQUAL .$ this ->version ;
78-
79- case Op::LESS_THAN :
80- return Op::GREATER_THAN_OR_EQUAL .$ this ->version ;
81-
82- case Op::LESS_THAN_OR_EQUAL :
83- case Op::LESS_THAN_OR_EQUAL2 :
84- return Op::GREATER_THAN .$ this ->version ;
85-
86- case Op::GREATER_THAN :
87- return Op::LESS_THAN_OR_EQUAL .$ this ->version ;
88-
89- case Op::GREATER_THAN_OR_EQUAL :
90- case Op::GREATER_THAN_OR_EQUAL2 :
91- return Op::LESS_THAN .$ this ->version ;
92-
93- default :
94- throw new SemverException (sprintf ('Invalid operator in condition %s ' , (string ) $ this ));
95- }
56+ return match ($ this ->operator ) {
57+ Op::EQUAL => Op::NOT_EQUAL .$ this ->version ,
58+ Op::NOT_EQUAL => Op::EQUAL .$ this ->version ,
59+ Op::LESS_THAN => Op::GREATER_THAN_OR_EQUAL .$ this ->version ,
60+ Op::LESS_THAN_OR_EQUAL , Op::LESS_THAN_OR_EQUAL2 => Op::GREATER_THAN .$ this ->version ,
61+ Op::GREATER_THAN => Op::LESS_THAN_OR_EQUAL .$ this ->version ,
62+ Op::GREATER_THAN_OR_EQUAL , Op::GREATER_THAN_OR_EQUAL2 => Op::LESS_THAN .$ this ->version ,
63+ default => throw new SemverException (sprintf ('Invalid operator in condition %s ' , $ this )),
64+ };
9665 }
9766
9867 public static function greaterThanMin (): Condition
0 commit comments