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
}