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