summaryrefslogtreecommitdiff
path: root/server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/EnumConstraint.php
diff options
context:
space:
mode:
authorEole <josselin.35@live.fr>2016-01-21 10:29:26 +0100
committerEole <josselin.35@live.fr>2016-01-21 10:29:26 +0100
commita44cc1d2e3c0f147e91a5c052ac7fd879e34e706 (patch)
treebdd6f72e0ba732c4fcc0479d1cfcf4d0baa5885d /server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/EnumConstraint.php
parent35db27b0e62b4cdcb03b0d21bceb4efc769e6161 (diff)
Init Server Composer Components
Diffstat (limited to 'server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/EnumConstraint.php')
-rw-r--r--server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/EnumConstraint.php46
1 files changed, 46 insertions, 0 deletions
diff --git a/server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/EnumConstraint.php b/server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/EnumConstraint.php
new file mode 100644
index 0000000..df413e4
--- /dev/null
+++ b/server/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/EnumConstraint.php
@@ -0,0 +1,46 @@
+<?php
+
+/*
+ * This file is part of the JsonSchema package.
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace JsonSchema\Constraints;
+
+/**
+ * The EnumConstraint Constraints, validates an element against a given set of possibilities
+ *
+ * @author Robert Schönthal <seroscho@googlemail.com>
+ * @author Bruno Prieto Reis <bruno.p.reis@gmail.com>
+ */
+class EnumConstraint extends Constraint
+{
+ /**
+ * {@inheritDoc}
+ */
+ public function check($element, $schema = null, $path = null, $i = null)
+ {
+ // Only validate enum if the attribute exists
+ if ($element instanceof UndefinedConstraint && (!isset($schema->required) || !$schema->required)) {
+ return;
+ }
+
+ foreach ($schema->enum as $enum) {
+ $type = gettype($element);
+ if ($type === gettype($enum)) {
+ if ($type == "object") {
+ if ($element == $enum)
+ return;
+ } else {
+ if ($element === $enum)
+ return;
+
+ }
+ }
+ }
+
+ $this->addError($path, "Does not have a value in the enumeration " . print_r($schema->enum, true), 'enum', array('enum' => $schema->enum,));
+ }
+}