class MultiConstraint in Automatic Updates 7
Defines a conjunctive or disjunctive set of constraints.
Hierarchy
- class \Composer\Semver\Constraint\MultiConstraint implements ConstraintInterface
Expanded class hierarchy of MultiConstraint
1 file declares its use of MultiConstraint
- VersionParser.php in vendor/
composer/ semver/ src/ VersionParser.php
File
- vendor/
composer/ semver/ src/ Constraint/ MultiConstraint.php, line 17
Namespace
Composer\Semver\ConstraintView source
class MultiConstraint implements ConstraintInterface {
/** @var ConstraintInterface[] */
protected $constraints;
/** @var string */
protected $prettyString;
/** @var bool */
protected $conjunctive;
/**
* @param ConstraintInterface[] $constraints A set of constraints
* @param bool $conjunctive Whether the constraints should be treated as conjunctive or disjunctive
*/
public function __construct(array $constraints, $conjunctive = true) {
$this->constraints = $constraints;
$this->conjunctive = $conjunctive;
}
/**
* @return ConstraintInterface[]
*/
public function getConstraints() {
return $this->constraints;
}
/**
* @return bool
*/
public function isConjunctive() {
return $this->conjunctive;
}
/**
* @return bool
*/
public function isDisjunctive() {
return !$this->conjunctive;
}
/**
* @param ConstraintInterface $provider
*
* @return bool
*/
public function matches(ConstraintInterface $provider) {
if (false === $this->conjunctive) {
foreach ($this->constraints as $constraint) {
if ($constraint
->matches($provider)) {
return true;
}
}
return false;
}
foreach ($this->constraints as $constraint) {
if (!$constraint
->matches($provider)) {
return false;
}
}
return true;
}
/**
* @param string $prettyString
*/
public function setPrettyString($prettyString) {
$this->prettyString = $prettyString;
}
/**
* @return string
*/
public function getPrettyString() {
if ($this->prettyString) {
return $this->prettyString;
}
return (string) $this;
}
/**
* @return string
*/
public function __toString() {
$constraints = array();
foreach ($this->constraints as $constraint) {
$constraints[] = (string) $constraint;
}
return '[' . implode($this->conjunctive ? ' ' : ' || ', $constraints) . ']';
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
MultiConstraint:: |
protected | property | @var bool | |
MultiConstraint:: |
protected | property | @var ConstraintInterface[] | |
MultiConstraint:: |
protected | property | @var string | |
MultiConstraint:: |
public | function | ||
MultiConstraint:: |
public | function |
Overrides ConstraintInterface:: |
|
MultiConstraint:: |
public | function | ||
MultiConstraint:: |
public | function | ||
MultiConstraint:: |
public | function |
Overrides ConstraintInterface:: |
|
MultiConstraint:: |
public | function | ||
MultiConstraint:: |
public | function | ||
MultiConstraint:: |
public | function |
Overrides ConstraintInterface:: |