annotate vendor/phar-io/manifest/src/values/ApplicationName.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 /*
Chris@2 3 * This file is part of PharIo\Manifest.
Chris@2 4 *
Chris@2 5 * (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
Chris@2 6 *
Chris@2 7 * For the full copyright and license information, please view the LICENSE
Chris@2 8 * file that was distributed with this source code.
Chris@2 9 */
Chris@2 10
Chris@2 11 namespace PharIo\Manifest;
Chris@2 12
Chris@2 13 class ApplicationName {
Chris@2 14 /**
Chris@2 15 * @var string
Chris@2 16 */
Chris@2 17 private $name;
Chris@2 18
Chris@2 19 /**
Chris@2 20 * ApplicationName constructor.
Chris@2 21 *
Chris@2 22 * @param string $name
Chris@2 23 *
Chris@2 24 * @throws InvalidApplicationNameException
Chris@2 25 */
Chris@2 26 public function __construct($name) {
Chris@2 27 $this->ensureIsString($name);
Chris@2 28 $this->ensureValidFormat($name);
Chris@2 29 $this->name = $name;
Chris@2 30 }
Chris@2 31
Chris@2 32 /**
Chris@2 33 * @return string
Chris@2 34 */
Chris@2 35 public function __toString() {
Chris@2 36 return $this->name;
Chris@2 37 }
Chris@2 38
Chris@2 39 public function isEqual(ApplicationName $name) {
Chris@2 40 return $this->name === $name->name;
Chris@2 41 }
Chris@2 42
Chris@2 43 /**
Chris@2 44 * @param string $name
Chris@2 45 *
Chris@2 46 * @throws InvalidApplicationNameException
Chris@2 47 */
Chris@2 48 private function ensureValidFormat($name) {
Chris@2 49 if (!preg_match('#\w/\w#', $name)) {
Chris@2 50 throw new InvalidApplicationNameException(
Chris@2 51 sprintf('Format of name "%s" is not valid - expected: vendor/packagename', $name),
Chris@2 52 InvalidApplicationNameException::InvalidFormat
Chris@2 53 );
Chris@2 54 }
Chris@2 55 }
Chris@2 56
Chris@2 57 private function ensureIsString($name) {
Chris@2 58 if (!is_string($name)) {
Chris@2 59 throw new InvalidApplicationNameException(
Chris@2 60 'Name must be a string',
Chris@2 61 InvalidApplicationNameException::NotAString
Chris@2 62 );
Chris@2 63 }
Chris@2 64 }
Chris@2 65 }