override def write()

in http-core/src/main/scala/com/twitter/finatra/http/marshalling/DefaultMessageBodyWriterImpl.scala [29:63]


  override def write(obj: Any): WriterResponse = {
    obj match {
      case null =>
        WriterResponse.EmptyResponse
      case buf: Buf =>
        WriterResponse(octetStream, buf)
      case bytes: Array[Byte] =>
        WriterResponse(octetStream, bytes)
      case "" =>
        WriterResponse.EmptyResponse
      case () =>
        WriterResponse.EmptyResponse
      case _: BoxedUnit =>
        WriterResponse.EmptyResponse
      case opt if opt == None =>
        WriterResponse.EmptyResponse
      case str: String =>
        WriterResponse(plainText, str)
      case is: InputStream =>
        AutoClosable.tryWith(is) { closable =>
          WriterResponse(octetStream, StreamIO.buffer(closable).toByteArray)
        }
      case file: File =>
        AutoClosable.tryWith(new BufferedInputStream(new FileInputStream(file))) { closable =>
          WriterResponse(
            contentType = fileResolver.getContentType(file.getName),
            StreamIO.buffer(closable).toByteArray)
        }
      case _ =>
        if (isPrimitiveOrWrapper(obj.getClass))
          WriterResponse(plainText, obj.toString)
        else
          WriterResponse(applicationJson, mapper.writeValueAsBytes(obj))
    }
  }