final protected function validateArray(string $name, $value, array $allowed) : bool
    {
        if (true === in_array('array', $allowed)) {
            if (true === is_array($value)) {
                if (true === empty($value)) {
                    throw new \InvalidArgumentException('Array for '.$name.' is empty');
                } else {
                    foreach ($value as $line) {
                        if (false === is_string($line)) {
                            throw new \InvalidArgumentException('Array for '.$name.' contains a non-string item');
                        }
                    }

                    return true;
                }
            }
        }

        return false;
    }