protected function validateRule($caller, $field, $value, $rule, $satisfier)
    {
        if (in_array($rule, $this->getRules())) {
            if (! call_user_func_array([
                $caller,
                $rule
            ], [
                $field,
                $value,
                $satisfier
            ])) {
                $this->ruleFailed($field, $rule, $satisfier);
            }
        }
    }