override def accept()

in scala-repl/src/main/scala/spark/ztools.sc [264:302]


    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
      }