summaryrefslogtreecommitdiff
path: root/vendor/phar-io/version/src/constraints
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/phar-io/version/src/constraints')
-rw-r--r--vendor/phar-io/version/src/constraints/AbstractVersionConstraint.php23
-rw-r--r--vendor/phar-io/version/src/constraints/AndVersionConstraintGroup.php34
-rw-r--r--vendor/phar-io/version/src/constraints/AnyVersionConstraint.php20
-rw-r--r--vendor/phar-io/version/src/constraints/ExactVersionConstraint.php22
-rw-r--r--vendor/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php26
-rw-r--r--vendor/phar-io/version/src/constraints/OrVersionConstraintGroup.php35
-rw-r--r--vendor/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php33
-rw-r--r--vendor/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php25
-rw-r--r--vendor/phar-io/version/src/constraints/VersionConstraint.php16
9 files changed, 234 insertions, 0 deletions
diff --git a/vendor/phar-io/version/src/constraints/AbstractVersionConstraint.php b/vendor/phar-io/version/src/constraints/AbstractVersionConstraint.php
new file mode 100644
index 000000000..66201a140
--- /dev/null
+++ b/vendor/phar-io/version/src/constraints/AbstractVersionConstraint.php
@@ -0,0 +1,23 @@
+<?php declare(strict_types = 1);
+/*
+ * This file is part of PharIo\Version.
+ *
+ * (c) Arne Blankerts <[email protected]>, Sebastian Heuer <[email protected]>, Sebastian Bergmann <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace PharIo\Version;
+
+abstract class AbstractVersionConstraint implements VersionConstraint {
+ /** @var string */
+ private $originalValue;
+
+ public function __construct(string $originalValue) {
+ $this->originalValue = $originalValue;
+ }
+
+ public function asString(): string {
+ return $this->originalValue;
+ }
+}
diff --git a/vendor/phar-io/version/src/constraints/AndVersionConstraintGroup.php b/vendor/phar-io/version/src/constraints/AndVersionConstraintGroup.php
new file mode 100644
index 000000000..5096f2fbb
--- /dev/null
+++ b/vendor/phar-io/version/src/constraints/AndVersionConstraintGroup.php
@@ -0,0 +1,34 @@
+<?php declare(strict_types = 1);
+/*
+ * This file is part of PharIo\Version.
+ *
+ * (c) Arne Blankerts <[email protected]>, Sebastian Heuer <[email protected]>, Sebastian Bergmann <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace PharIo\Version;
+
+class AndVersionConstraintGroup extends AbstractVersionConstraint {
+ /** @var VersionConstraint[] */
+ private $constraints = [];
+
+ /**
+ * @param VersionConstraint[] $constraints
+ */
+ public function __construct(string $originalValue, array $constraints) {
+ parent::__construct($originalValue);
+
+ $this->constraints = $constraints;
+ }
+
+ public function complies(Version $version): bool {
+ foreach ($this->constraints as $constraint) {
+ if (!$constraint->complies($version)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+}
diff --git a/vendor/phar-io/version/src/constraints/AnyVersionConstraint.php b/vendor/phar-io/version/src/constraints/AnyVersionConstraint.php
new file mode 100644
index 000000000..1499f071f
--- /dev/null
+++ b/vendor/phar-io/version/src/constraints/AnyVersionConstraint.php
@@ -0,0 +1,20 @@
+<?php declare(strict_types = 1);
+/*
+ * This file is part of PharIo\Version.
+ *
+ * (c) Arne Blankerts <[email protected]>, Sebastian Heuer <[email protected]>, Sebastian Bergmann <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace PharIo\Version;
+
+class AnyVersionConstraint implements VersionConstraint {
+ public function complies(Version $version): bool {
+ return true;
+ }
+
+ public function asString(): string {
+ return '*';
+ }
+}
diff --git a/vendor/phar-io/version/src/constraints/ExactVersionConstraint.php b/vendor/phar-io/version/src/constraints/ExactVersionConstraint.php
new file mode 100644
index 000000000..1d675c9c9
--- /dev/null
+++ b/vendor/phar-io/version/src/constraints/ExactVersionConstraint.php
@@ -0,0 +1,22 @@
+<?php declare(strict_types = 1);
+/*
+ * This file is part of PharIo\Version.
+ *
+ * (c) Arne Blankerts <[email protected]>, Sebastian Heuer <[email protected]>, Sebastian Bergmann <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace PharIo\Version;
+
+class ExactVersionConstraint extends AbstractVersionConstraint {
+ public function complies(Version $version): bool {
+ $other = $version->getVersionString();
+
+ if ($version->hasBuildMetaData()) {
+ $other .= '+' . $version->getBuildMetaData()->asString();
+ }
+
+ return $this->asString() === $other;
+ }
+}
diff --git a/vendor/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php b/vendor/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php
new file mode 100644
index 000000000..ec3717231
--- /dev/null
+++ b/vendor/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php
@@ -0,0 +1,26 @@
+<?php declare(strict_types = 1);
+/*
+ * This file is part of PharIo\Version.
+ *
+ * (c) Arne Blankerts <[email protected]>, Sebastian Heuer <[email protected]>, Sebastian Bergmann <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace PharIo\Version;
+
+class GreaterThanOrEqualToVersionConstraint extends AbstractVersionConstraint {
+ /** @var Version */
+ private $minimalVersion;
+
+ public function __construct(string $originalValue, Version $minimalVersion) {
+ parent::__construct($originalValue);
+
+ $this->minimalVersion = $minimalVersion;
+ }
+
+ public function complies(Version $version): bool {
+ return $version->getVersionString() === $this->minimalVersion->getVersionString()
+ || $version->isGreaterThan($this->minimalVersion);
+ }
+}
diff --git a/vendor/phar-io/version/src/constraints/OrVersionConstraintGroup.php b/vendor/phar-io/version/src/constraints/OrVersionConstraintGroup.php
new file mode 100644
index 000000000..59fd382f8
--- /dev/null
+++ b/vendor/phar-io/version/src/constraints/OrVersionConstraintGroup.php
@@ -0,0 +1,35 @@
+<?php declare(strict_types = 1);
+/*
+ * This file is part of PharIo\Version.
+ *
+ * (c) Arne Blankerts <[email protected]>, Sebastian Heuer <[email protected]>, Sebastian Bergmann <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace PharIo\Version;
+
+class OrVersionConstraintGroup extends AbstractVersionConstraint {
+ /** @var VersionConstraint[] */
+ private $constraints = [];
+
+ /**
+ * @param string $originalValue
+ * @param VersionConstraint[] $constraints
+ */
+ public function __construct($originalValue, array $constraints) {
+ parent::__construct($originalValue);
+
+ $this->constraints = $constraints;
+ }
+
+ public function complies(Version $version): bool {
+ foreach ($this->constraints as $constraint) {
+ if ($constraint->complies($version)) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+}
diff --git a/vendor/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php b/vendor/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php
new file mode 100644
index 000000000..302aa311c
--- /dev/null
+++ b/vendor/phar-io/version/src/constraints/SpecificMajorAndMinorVersionConstraint.php
@@ -0,0 +1,33 @@
+<?php declare(strict_types = 1);
+/*
+ * This file is part of PharIo\Version.
+ *
+ * (c) Arne Blankerts <[email protected]>, Sebastian Heuer <[email protected]>, Sebastian Bergmann <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace PharIo\Version;
+
+class SpecificMajorAndMinorVersionConstraint extends AbstractVersionConstraint {
+ /** @var int */
+ private $major;
+
+ /** @var int */
+ private $minor;
+
+ public function __construct(string $originalValue, int $major, int $minor) {
+ parent::__construct($originalValue);
+
+ $this->major = $major;
+ $this->minor = $minor;
+ }
+
+ public function complies(Version $version): bool {
+ if ($version->getMajor()->getValue() !== $this->major) {
+ return false;
+ }
+
+ return $version->getMinor()->getValue() === $this->minor;
+ }
+}
diff --git a/vendor/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php b/vendor/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php
new file mode 100644
index 000000000..968b809c1
--- /dev/null
+++ b/vendor/phar-io/version/src/constraints/SpecificMajorVersionConstraint.php
@@ -0,0 +1,25 @@
+<?php declare(strict_types = 1);
+/*
+ * This file is part of PharIo\Version.
+ *
+ * (c) Arne Blankerts <[email protected]>, Sebastian Heuer <[email protected]>, Sebastian Bergmann <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace PharIo\Version;
+
+class SpecificMajorVersionConstraint extends AbstractVersionConstraint {
+ /** @var int */
+ private $major;
+
+ public function __construct(string $originalValue, int $major) {
+ parent::__construct($originalValue);
+
+ $this->major = $major;
+ }
+
+ public function complies(Version $version): bool {
+ return $version->getMajor()->getValue() === $this->major;
+ }
+}
diff --git a/vendor/phar-io/version/src/constraints/VersionConstraint.php b/vendor/phar-io/version/src/constraints/VersionConstraint.php
new file mode 100644
index 000000000..e94f9e00e
--- /dev/null
+++ b/vendor/phar-io/version/src/constraints/VersionConstraint.php
@@ -0,0 +1,16 @@
+<?php declare(strict_types = 1);
+/*
+ * This file is part of PharIo\Version.
+ *
+ * (c) Arne Blankerts <[email protected]>, Sebastian Heuer <[email protected]>, Sebastian Bergmann <[email protected]>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+namespace PharIo\Version;
+
+interface VersionConstraint {
+ public function complies(Version $version): bool;
+
+ public function asString(): string;
+}