isValidType($type)) { $this->type = $type; } else { throw new UnresolvedEndpointException('Unknown parameter type ' . "`{$type}`" . '. Parameters must be of type `String` or `Boolean`.'); } $this->name = $name; $this->builtIn = isset($definition['builtIn']) ? $definition['builtIn'] : null; $this->default = isset($definition['default']) ? $definition['default'] : null; $this->required = isset($definition['required']) ? $definition['required'] : \false; $this->documentation = isset($definition['documentation']) ? $definition['documentation'] : null; $this->deprecated = isset($definition['deprecated']) ? $definition['deprecated'] : \false; } /** * @return mixed */ public function getName() { return $this->name; } /** * @return mixed */ public function getType() { return $this->type; } /** * @return mixed */ public function getBuiltIn() { return $this->builtIn; } /** * @return mixed */ public function getDefault() { return $this->default; } /** * @return boolean */ public function getRequired() { return $this->required; } /** * @return string */ public function getDocumentation() { return $this->documentation; } /** * @return boolean */ public function getDeprecated() { return $this->deprecated; } /** * Validates that an input parameter matches the type provided in its definition. * * @return void * @throws InvalidArgumentException */ public function validateInputParam($inputParam) { $typeMap = ['String' => 'is_string', 'Boolean' => 'is_bool']; if ($typeMap[$this->type]($inputParam) === \false) { throw new UnresolvedEndpointException("Input parameter `{$this->name}` is the wrong type. Must be a {$this->type}."); } if ($this->deprecated) { $deprecated = $this->deprecated; $deprecationString = "{$this->name} has been deprecated "; $msg = isset($deprecated['message']) ? $deprecated['message'] : null; $since = isset($deprecated['since']) ? $deprecated['since'] : null; if (!\is_null($since)) { $deprecationString = $deprecationString . 'since ' . $since . '. '; } if (!\is_null($msg)) { $deprecationString = $deprecationString . $msg; } \trigger_error($deprecationString, \E_USER_WARNING); } } private function isValidType($type) { return \in_array($type, ['String', 'Boolean']); } }