summaryrefslogtreecommitdiff
path: root/vendor/aws/aws-sdk-php/src/EndpointV2/Rule/AbstractRule.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/EndpointV2/Rule/AbstractRule.php')
-rw-r--r--vendor/aws/aws-sdk-php/src/EndpointV2/Rule/AbstractRule.php62
1 files changed, 62 insertions, 0 deletions
diff --git a/vendor/aws/aws-sdk-php/src/EndpointV2/Rule/AbstractRule.php b/vendor/aws/aws-sdk-php/src/EndpointV2/Rule/AbstractRule.php
new file mode 100644
index 0000000..94da12d
--- /dev/null
+++ b/vendor/aws/aws-sdk-php/src/EndpointV2/Rule/AbstractRule.php
@@ -0,0 +1,62 @@
+<?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
+ );
+}