public function parseRequest(
        $request,
        $className,
        $behavior = self::THROW_EXCEPTION_ON_FIRST_ERROR
    ) {
        $isArray = is_array($className);
        $className = $this->getClassName($className, $isArray);
        $parserObject = $this->generateRequestParserObject($className, new $behavior);

        return $this->executeParsing(
            $this->sanitizeRequestOrThrowExceptionIfInvalid($request),
            $parserObject,
            $isArray
        );
    }