/** * Validates the value. * @param PropertyMetadata $metadata * @param string $name * @param mixed $value * @throws InvalidArgumentException */ protected function validate(PropertyMetadata $metadata, $name, &$value) { if (!$metadata->isValid($value)) { $class = get_class($this); throw new InvalidArgumentException("Value for {$class}::\${$name} property is invalid."); } }