override def handle()

in scala-repl/src/main/scala/org/jetbrains/ztools/scala/handlers/impls/MapHandler.scala [24:48]


  override def handle(scalaInfo: ScalaVariableInfo, loopback: Loopback, depth: Int): mutable.Map[String, Any] =
    withJsonObject {
      json =>
        val obj = scalaInfo.value
        val id = scalaInfo.path
        val map = obj.asInstanceOf[Map[_, _]]
        val keys = mutable.MutableList[Any]()
        val values = mutable.MutableList[Any]()
        json += ("jvm-type" -> obj.getClass.getCanonicalName)
        json += ("length" -> map.size)
        var index = 0

        json += ("key" -> keys)
        json += ("value" -> values)

        val startTime = System.currentTimeMillis()
        map.view.take(math.min(limit, map.size)).foreach {
          case (key, value) =>
            if (checkTimeoutError(scalaInfo.path, startTime, timeout))
              return json
            keys += loopback.pass(key, s"$id.key[$index]")
            values += loopback.pass(value, s"$id.value[$index]")
            index += 1
        }
    }