1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- /*
- * This file is part of composer/semver.
- *
- * (c) Composer <https://github.com/composer>
- *
- * For the full copyright and license information, please view
- * the LICENSE file that was distributed with this source code.
- */
- namespace Composer\Semver;
- use Composer\Semver\Constraint\Constraint;
- class Interval
- {
- /** @var Constraint */
- private $start;
- /** @var Constraint */
- private $end;
- public function __construct(Constraint $start, Constraint $end)
- {
- $this->start = $start;
- $this->end = $end;
- }
- /**
- * @return Constraint
- */
- public function getStart()
- {
- return $this->start;
- }
- /**
- * @return Constraint
- */
- public function getEnd()
- {
- return $this->end;
- }
- /**
- * @return Constraint
- */
- public static function fromZero()
- {
- static $zero;
- if (null === $zero) {
- $zero = new Constraint('>=', '0.0.0.0-dev');
- }
- return $zero;
- }
- /**
- * @return Constraint
- */
- public static function untilPositiveInfinity()
- {
- static $positiveInfinity;
- if (null === $positiveInfinity) {
- $positiveInfinity = new Constraint('<', PHP_INT_MAX.'.0.0.0');
- }
- return $positiveInfinity;
- }
- /**
- * @return self
- */
- public static function any()
- {
- return new self(self::fromZero(), self::untilPositiveInfinity());
- }
- /**
- * @return array{'names': string[], 'exclude': bool}
- */
- public static function anyDev()
- {
- // any == exclude nothing
- return array('names' => array(), 'exclude' => true);
- }
- /**
- * @return array{'names': string[], 'exclude': bool}
- */
- public static function noDev()
- {
- // nothing == no names included
- return array('names' => array(), 'exclude' => false);
- }
- }
|