setKey($key); } if (isset($value)) { $this->setValue($value); } } /** * Add the key on a Substitution object * * @param string $key Substitution key * * @throws \SendGrid\Mail\TypeException */ public function setKey($key) { Assert::string($key, 'key'); $this->key = $key; } /** * Retrieve the key from a Substitution object * * @return string */ public function getKey() { return $this->key; } /** * Add the value on a Substitution object * * @param string|array|object|bool|int|float $value Substitution value * * @throws \SendGrid\Mail\TypeException */ public function setValue($value) { Assert::accept($value, 'value', static function ($val) { return \is_string($val) || filter_var($val, FILTER_VALIDATE_INT) !== false || \is_float($val) || \is_bool($val) || \is_array($val) || \is_object($val); }, '"$value" must be an array, object, boolean, string, numeric or integer.'); $this->value = $value; } /** * Retrieve the value from a Substitution object * * @return string */ public function getValue() { return $this->value; } /** * Return an array representing a Substitution object for the Twilio SendGrid API * * @return null|array */ public function jsonSerialize() { return array_filter( [ 'key' => $this->getKey(), 'value' => $this->getValue() ], function ($value) { return $value !== null; } ) ?: null; } }