All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ch.epfl.scala.debugadapter.internal.evaluator.JdiObject.scala Maven / Gradle / Ivy

package ch.epfl.scala.debugadapter.internal.evaluator

import com.sun.jdi._

private[internal] class JdiObject(
    val reference: ObjectReference,
    thread: ThreadReference
) {
  def getFieldValue(name: String): Value = {
    val field = reference.referenceType.fieldByName(name)
    reference.getValue(field)
  }

  def invoke(methodName: String, args: List[Value]): Safe[Value] = {
    val m = method(methodName, reference.referenceType)
    invokeMethod(reference, m, args, thread)
  }

  def invoke(methodName: String, signature: String, args: List[Value]): Safe[Value] = {
    val m = method(methodName, signature, reference.referenceType())
    invokeMethod(reference, m, args, thread)
  }
}

private[internal] object JdiObject {
  def apply(value: Value, thread: ThreadReference): JdiObject =
    new JdiObject(value.asInstanceOf[ObjectReference], thread)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy