in scala-interpreter/src/main/scala/org/apache/toree/kernel/interpreter/scala/ScalaInterpreter.scala [310:337]
protected def interpretMapToResultAndOutput(future: Future[Results.Result]):
Future[(Results.Result, Either[Map[String, String], ExecuteError])] = {
import scala.concurrent.ExecutionContext.Implicits.global
future map {
case result @ (Results.Success | Results.Incomplete) =>
val lastOutput = lastResultOut.toString("UTF-8").trim
lastResultOut.reset()
val (obj, defStr, text) = prepareResult(lastOutput, KernelOptions.showTypes, KernelOptions.noTruncation, KernelOptions.showOutput )
defStr.foreach(kernel.display.content(MIMEType.PlainText, _))
text.foreach(kernel.display.content(MIMEType.PlainText, _))
val output = obj.map(Displayers.display(_).asScala.toMap).getOrElse(Map.empty)
(result, Left(output))
case Results.Error =>
val lastOutput = lastResultOut.toString("UTF-8").trim
lastResultOut.reset()
val (obj, defStr, text) = prepareResult(lastOutput)
defStr.foreach(kernel.display.content(MIMEType.PlainText, _))
val output = interpretConstructExecuteError(text.get)
(Results.Error, Right(output))
case Results.Aborted =>
(Results.Aborted, Right(null))
}
}