annotate vendor/phar-io/manifest/src/values/Extension.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 /*
Chris@14 3 * This file is part of PharIo\Manifest.
Chris@14 4 *
Chris@14 5 * (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>
Chris@14 6 *
Chris@14 7 * For the full copyright and license information, please view the LICENSE
Chris@14 8 * file that was distributed with this source code.
Chris@14 9 */
Chris@14 10
Chris@14 11 namespace PharIo\Manifest;
Chris@14 12
Chris@14 13 use PharIo\Version\Version;
Chris@14 14 use PharIo\Version\VersionConstraint;
Chris@14 15
Chris@14 16 class Extension extends Type {
Chris@14 17 /**
Chris@14 18 * @var ApplicationName
Chris@14 19 */
Chris@14 20 private $application;
Chris@14 21
Chris@14 22 /**
Chris@14 23 * @var VersionConstraint
Chris@14 24 */
Chris@14 25 private $versionConstraint;
Chris@14 26
Chris@14 27 /**
Chris@14 28 * @param ApplicationName $application
Chris@14 29 * @param VersionConstraint $versionConstraint
Chris@14 30 */
Chris@14 31 public function __construct(ApplicationName $application, VersionConstraint $versionConstraint) {
Chris@14 32 $this->application = $application;
Chris@14 33 $this->versionConstraint = $versionConstraint;
Chris@14 34 }
Chris@14 35
Chris@14 36 /**
Chris@14 37 * @return ApplicationName
Chris@14 38 */
Chris@14 39 public function getApplicationName() {
Chris@14 40 return $this->application;
Chris@14 41 }
Chris@14 42
Chris@14 43 /**
Chris@14 44 * @return VersionConstraint
Chris@14 45 */
Chris@14 46 public function getVersionConstraint() {
Chris@14 47 return $this->versionConstraint;
Chris@14 48 }
Chris@14 49
Chris@14 50 /**
Chris@14 51 * @return bool
Chris@14 52 */
Chris@14 53 public function isExtension() {
Chris@14 54 return true;
Chris@14 55 }
Chris@14 56
Chris@14 57 /**
Chris@14 58 * @param ApplicationName $name
Chris@14 59 *
Chris@14 60 * @return bool
Chris@14 61 */
Chris@14 62 public function isExtensionFor(ApplicationName $name) {
Chris@14 63 return $this->application->isEqual($name);
Chris@14 64 }
Chris@14 65
Chris@14 66 /**
Chris@14 67 * @param ApplicationName $name
Chris@14 68 * @param Version $version
Chris@14 69 *
Chris@14 70 * @return bool
Chris@14 71 */
Chris@14 72 public function isCompatibleWith(ApplicationName $name, Version $version) {
Chris@14 73 return $this->isExtensionFor($name) && $this->versionConstraint->complies($version);
Chris@14 74 }
Chris@14 75 }