Class Debugger.CapturingValueNode

java.lang.Object
uno.anahata.asi.intellij.tools.debugger.Debugger.CapturingValueNode
All Implemented Interfaces:
com.intellij.xdebugger.frame.XValueNode, com.intellij.xdebugger.Obsolescent, org.jetbrains.concurrency.Obsolescent
Enclosing class:
Debugger

private static final class Debugger.CapturingValueNode extends Object implements com.intellij.xdebugger.frame.XValueNode
An XValueNode that captures a value's textual presentation into an AtomicReference and releases a latch, bridging the asynchronous presentation callback to the synchronous evaluate tool.
Author:
anahata
  • Field Details

    • sink

      private final AtomicReference<String> sink
      Receives the rendered value text.
    • latch

      private final CountDownLatch latch
      Released once a presentation has been captured.
  • Constructor Details

    • CapturingValueNode

      CapturingValueNode(AtomicReference<String> sink, CountDownLatch latch)
      Creates a capturing value node.
      Parameters:
      sink - the reference to populate with the rendered value.
      latch - the latch to release once the value is captured.
  • Method Details

    • setPresentation

      public void setPresentation(Icon icon, String type, String value, boolean hasChildren)
      Specified by:
      setPresentation in interface com.intellij.xdebugger.frame.XValueNode
    • setPresentation

      public void setPresentation(Icon icon, com.intellij.xdebugger.frame.presentation.XValuePresentation presentation, boolean hasChildren)
      Specified by:
      setPresentation in interface com.intellij.xdebugger.frame.XValueNode
    • setFullValueEvaluator

      public void setFullValueEvaluator(com.intellij.xdebugger.frame.XFullValueEvaluator fullValueEvaluator)
      Specified by:
      setFullValueEvaluator in interface com.intellij.xdebugger.frame.XValueNode