mirror of
https://gh.wpcy.net/https://github.com/pixelabs-wp/whitelabel-plugins-update-server.git
synced 2026-04-18 04:02:15 +08:00
62 lines
1.4 KiB
PHP
62 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Aws\EndpointV2\Rule;
|
|
|
|
use Aws\EndpointV2\Ruleset\RulesetStandardLibrary;
|
|
|
|
/**
|
|
* A rule within a rule set. All rules contain a conditions property,
|
|
* which can be empty, and documentation about the rule.
|
|
*/
|
|
abstract Class AbstractRule
|
|
{
|
|
private $conditions;
|
|
private $documentation;
|
|
|
|
public function __construct(array $definition)
|
|
{
|
|
$this->conditions = $definition['conditions'];
|
|
$this->documentation = isset($definition['documentation']) ?
|
|
$definition['documentation'] : null;
|
|
}
|
|
|
|
/**
|
|
* @return array
|
|
*/
|
|
public function getConditions()
|
|
{
|
|
return $this->conditions;
|
|
}
|
|
|
|
/**
|
|
* @return mixed
|
|
*/
|
|
public function getDocumentation()
|
|
{
|
|
return $this->documentation;
|
|
}
|
|
|
|
/**
|
|
* Determines if all conditions for a given rule are met.
|
|
*
|
|
* @return boolean
|
|
*/
|
|
protected function evaluateConditions(
|
|
array &$inputParameters,
|
|
RulesetStandardLibrary $standardLibrary
|
|
)
|
|
{
|
|
foreach($this->getConditions() as $condition) {
|
|
$result = $standardLibrary->callFunction($condition, $inputParameters);
|
|
if (is_null($result) || $result === false) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
abstract public function evaluate(
|
|
array $inputParameters,
|
|
RulesetStandardLibrary $standardLibrary
|
|
);
|
|
}
|