annotate vendor/phar-io/version/src/VersionConstraintValue.php @ 5:12f9dff5fda9 tip

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