123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- <?php
- namespace PharIo\Version;
- class VersionConstraintValue {
- /**
- * @var VersionNumber
- */
- private $major;
- /**
- * @var VersionNumber
- */
- private $minor;
- /**
- * @var VersionNumber
- */
- private $patch;
- /**
- * @var string
- */
- private $label = '';
- /**
- * @var string
- */
- private $buildMetaData = '';
- /**
- * @var string
- */
- private $versionString = '';
- /**
- * @param string $versionString
- */
- public function __construct($versionString) {
- $this->versionString = $versionString;
- $this->parseVersion($versionString);
- }
- /**
- * @return string
- */
- public function getLabel() {
- return $this->label;
- }
- /**
- * @return string
- */
- public function getBuildMetaData() {
- return $this->buildMetaData;
- }
- /**
- * @return string
- */
- public function getVersionString() {
- return $this->versionString;
- }
- /**
- * @return VersionNumber
- */
- public function getMajor() {
- return $this->major;
- }
- /**
- * @return VersionNumber
- */
- public function getMinor() {
- return $this->minor;
- }
- /**
- * @return VersionNumber
- */
- public function getPatch() {
- return $this->patch;
- }
- /**
- * @param $versionString
- */
- private function parseVersion($versionString) {
- $this->extractBuildMetaData($versionString);
- $this->extractLabel($versionString);
- $versionSegments = explode('.', $versionString);
- $this->major = new VersionNumber($versionSegments[0]);
- $minorValue = isset($versionSegments[1]) ? $versionSegments[1] : null;
- $patchValue = isset($versionSegments[2]) ? $versionSegments[2] : null;
- $this->minor = new VersionNumber($minorValue);
- $this->patch = new VersionNumber($patchValue);
- }
- /**
- * @param string $versionString
- */
- private function extractBuildMetaData(&$versionString) {
- if (preg_match('/\+(.*)/', $versionString, $matches) == 1) {
- $this->buildMetaData = $matches[1];
- $versionString = str_replace($matches[0], '', $versionString);
- }
- }
- /**
- * @param string $versionString
- */
- private function extractLabel(&$versionString) {
- if (preg_match('/\-(.*)/', $versionString, $matches) == 1) {
- $this->label = $matches[1];
- $versionString = str_replace($matches[0], '', $versionString);
- }
- }
- }
|