/**
 * Setter for the where argument
 *
 * @param   array|string|null  $value  A string or array of where conditions.
 *
 * @return  mixed
 *
 * @throws  BadMethodCallException  if the argument is not of the expected type
 */
protected function setWhere($value)
{
    if (!empty($value) && !\is_string($value) && !\is_array($value)) {
        throw new BadMethodCallException("Argument 'where' of event {$this->name} must be empty or string or array of strings");
    }
    return $value;
}