/**
 * Setter for the fields argument
 *
 * @param   mixed  $value  The value to set
 *
 * @return  array
 *
 * @throws  BadMethodCallException  if the argument is not a non-empty array
 */
protected function setFields($value)
{
    if (!\is_array($value) || is_array($value) && empty($value)) {
        throw new BadMethodCallException("Argument 'fields' of event {$this->name} must be be an array and not empty");
    }
    return $value;
}