annotate vendor/phar-io/version/src/VersionConstraintValue.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 1fec387a4317
children
rev   line source
Chris@14 1 <?php
Chris@14 2 namespace PharIo\Version;
Chris@14 3
Chris@14 4 class VersionConstraintValue
Chris@14 5 {
Chris@14 6 /**
Chris@14 7 * @var VersionNumber
Chris@14 8 */
Chris@14 9 private $major;
Chris@14 10
Chris@14 11 /**
Chris@14 12 * @var VersionNumber
Chris@14 13 */
Chris@14 14 private $minor;
Chris@14 15
Chris@14 16 /**
Chris@14 17 * @var VersionNumber
Chris@14 18 */
Chris@14 19 private $patch;
Chris@14 20
Chris@14 21 /**
Chris@14 22 * @var string
Chris@14 23 */
Chris@14 24 private $label = '';
Chris@14 25
Chris@14 26 /**
Chris@14 27 * @var string
Chris@14 28 */
Chris@14 29 private $buildMetaData = '';
Chris@14 30
Chris@14 31 /**
Chris@14 32 * @var string
Chris@14 33 */
Chris@14 34 private $versionString = '';
Chris@14 35
Chris@14 36 /**
Chris@14 37 * @param string $versionString
Chris@14 38 */
Chris@14 39 public function __construct($versionString) {
Chris@14 40 $this->versionString = $versionString;
Chris@14 41
Chris@14 42 $this->parseVersion($versionString);
Chris@14 43 }
Chris@14 44
Chris@14 45 /**
Chris@14 46 * @param $versionString
Chris@14 47 */
Chris@14 48 private function parseVersion($versionString) {
Chris@14 49 $this->extractBuildMetaData($versionString);
Chris@14 50 $this->extractLabel($versionString);
Chris@14 51
Chris@14 52 $versionSegments = explode('.', $versionString);
Chris@14 53 $this->major = new VersionNumber($versionSegments[0]);
Chris@14 54
Chris@14 55 $minorValue = isset($versionSegments[1]) ? $versionSegments[1] : null;
Chris@14 56 $patchValue = isset($versionSegments[2]) ? $versionSegments[2] : null;
Chris@14 57
Chris@14 58 $this->minor = new VersionNumber($minorValue);
Chris@14 59 $this->patch = new VersionNumber($patchValue);
Chris@14 60 }
Chris@14 61
Chris@14 62 /**
Chris@14 63 * @param string $versionString
Chris@14 64 */
Chris@14 65 private function extractBuildMetaData(&$versionString) {
Chris@14 66 if (preg_match('/\+(.*)/', $versionString, $matches) == 1) {
Chris@14 67 $this->buildMetaData = $matches[1];
Chris@14 68 $versionString = str_replace($matches[0], '', $versionString);
Chris@14 69 }
Chris@14 70 }
Chris@14 71
Chris@14 72 /**
Chris@14 73 * @param string $versionString
Chris@14 74 */
Chris@14 75 private function extractLabel(&$versionString) {
Chris@14 76 if (preg_match('/\-(.*)/', $versionString, $matches) == 1) {
Chris@14 77 $this->label = $matches[1];
Chris@14 78 $versionString = str_replace($matches[0], '', $versionString);
Chris@14 79 }
Chris@14 80 }
Chris@14 81
Chris@14 82 /**
Chris@14 83 * @return string
Chris@14 84 */
Chris@14 85 public function getLabel() {
Chris@14 86 return $this->label;
Chris@14 87 }
Chris@14 88
Chris@14 89 /**
Chris@14 90 * @return string
Chris@14 91 */
Chris@14 92 public function getBuildMetaData() {
Chris@14 93 return $this->buildMetaData;
Chris@14 94 }
Chris@14 95
Chris@14 96 /**
Chris@14 97 * @return string
Chris@14 98 */
Chris@14 99 public function getVersionString() {
Chris@14 100 return $this->versionString;
Chris@14 101 }
Chris@14 102
Chris@14 103 /**
Chris@14 104 * @return VersionNumber
Chris@14 105 */
Chris@14 106 public function getMajor() {
Chris@14 107 return $this->major;
Chris@14 108 }
Chris@14 109
Chris@14 110 /**
Chris@14 111 * @return VersionNumber
Chris@14 112 */
Chris@14 113 public function getMinor() {
Chris@14 114 return $this->minor;
Chris@14 115 }
Chris@14 116
Chris@14 117 /**
Chris@14 118 * @return VersionNumber
Chris@14 119 */
Chris@14 120 public function getPatch() {
Chris@14 121 return $this->patch;
Chris@14 122 }
Chris@14 123 }