annotate vendor/composer/semver/src/Constraint/AbstractConstraint.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents af1871eacc83
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 /*
Chris@0 4 * This file is part of composer/semver.
Chris@0 5 *
Chris@0 6 * (c) Composer <https://github.com/composer>
Chris@0 7 *
Chris@0 8 * For the full copyright and license information, please view
Chris@0 9 * the LICENSE file that was distributed with this source code.
Chris@0 10 */
Chris@0 11
Chris@0 12 namespace Composer\Semver\Constraint;
Chris@0 13
Chris@18 14 trigger_error('The ' . __NAMESPACE__ . '\AbstractConstraint abstract class is deprecated, there is no replacement for it, it will be removed in the next major version.', E_USER_DEPRECATED);
Chris@0 15
Chris@0 16 /**
Chris@0 17 * Base constraint class.
Chris@0 18 */
Chris@0 19 abstract class AbstractConstraint implements ConstraintInterface
Chris@0 20 {
Chris@0 21 /** @var string */
Chris@0 22 protected $prettyString;
Chris@0 23
Chris@0 24 /**
Chris@0 25 * @param ConstraintInterface $provider
Chris@0 26 *
Chris@0 27 * @return bool
Chris@0 28 */
Chris@0 29 public function matches(ConstraintInterface $provider)
Chris@0 30 {
Chris@0 31 if ($provider instanceof $this) {
Chris@0 32 // see note at bottom of this class declaration
Chris@0 33 return $this->matchSpecific($provider);
Chris@0 34 }
Chris@0 35
Chris@0 36 // turn matching around to find a match
Chris@0 37 return $provider->matches($this);
Chris@0 38 }
Chris@0 39
Chris@0 40 /**
Chris@0 41 * @param string $prettyString
Chris@0 42 */
Chris@0 43 public function setPrettyString($prettyString)
Chris@0 44 {
Chris@0 45 $this->prettyString = $prettyString;
Chris@0 46 }
Chris@0 47
Chris@0 48 /**
Chris@0 49 * @return string
Chris@0 50 */
Chris@0 51 public function getPrettyString()
Chris@0 52 {
Chris@0 53 if ($this->prettyString) {
Chris@0 54 return $this->prettyString;
Chris@0 55 }
Chris@0 56
Chris@0 57 return $this->__toString();
Chris@0 58 }
Chris@0 59
Chris@0 60 // implementations must implement a method of this format:
Chris@0 61 // not declared abstract here because type hinting violates parameter coherence (TODO right word?)
Chris@0 62 // public function matchSpecific(<SpecificConstraintType> $provider);
Chris@0 63 }