override def accept()

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


  override def accept(obj: Any): Boolean = true

  override def handle(scalaInfo: ScalaVariableInfo, loopback: Loopback, depth: Int): mutable.Map[String, Any] =
    withJsonObject { result =>
      val obj = scalaInfo.value

      if (obj == null) {
        return result
      }
      if (depth <= 0) {
        result += (ResNames.VALUE -> obj.toString.take(stringSizeLimit))
        return result
      }

      val startTime = System.currentTimeMillis()
      val fields = listAccessibleProperties(scalaInfo, startTime)
      if (fields.isEmpty) {
        result += (ResNames.VALUE -> obj.toString.take(stringSizeLimit))
        return result
      }

      val resolvedFields = mutable.Map[String, Any]()
      result += (ResNames.VALUE -> resolvedFields)


      fields.foreach { field =>
        if (checkTimeoutError(field.name, startTime, timeout)) {
          return result
        }

        if (field.ref != null && field.ref != field.path) {
          resolvedFields += (field.name -> (mutable.Map[String, Any]() += (ResNames.REF -> field.ref)))
        } else {
          resolvedFields += (field.name -> manager.handleVariable(field, loopback, depth - 1))
        }
      }

      result
    }