original_string: protected function getDecoder(
          string $stream,
          string $contentType,
          int $contentLength,
          decoder\DecoderOptions $options
      )
      {
          $type = \sndsgd\Str::before($contentType, ";");
          if (!isset(static::$decoders[$type])) {
              throw new exception\BadRequestException(
                  "failed to decode request body; ".
                  "unknown content-type '$contentType'"
              );
          }
  
          $class = static::$decoders[$type];
          return new $class($stream, $contentType, $contentLength, $options);
      }
code: protected function getDecoder(
          string $stream,
          string $contentType,
          int $contentLength,
          decoder\DecoderOptions $options
      )
      {
          $type = \sndsgd\Str::before($contentType, ";");
          if (!isset(static::$decoders[$type])) {
              throw new exception\BadRequestException(
                  "failed to decode request body; ".
                  "unknown content-type '$contentType'"
              );
          }
  
          $class = static::$decoders[$type];
          return new $class($stream, $contentType, $contentLength, $options);
      }
code_tokens: protected function getDecoder ( string $ stream , string $ contentType , int $ contentLength , decoder \ DecoderOptions $ options ) { $ type = \ sndsgd \ Str :: before ( $ contentType , ";" ) ; if ( ! isset ( static :: $ decoders [ $ type ] ) ) { throw new exception \ BadRequestException ( "failed to decode request body; " . "unknown content-type '$contentType'" ) ; } $ class = static :: $ decoders [ $ type ] ; return new $ class ( $ stream , $ contentType , $ contentLength , $ options ) ; }
docstring: Stubbable method for creating a decoder instance
  
  @param string $stream
  @param string $contentType
  @param int $contentLength
  @param \sndsgd\http\data\DecoderOptions $options
  @return \sndsgd\http\data\decoder\DecoderInterface
  @throws \sndsgd\http\exception\BadRequestException
docstring_tokens: Stubbable method for creating a decoder instance