Class LineToProbesMap

java.lang.Object
com.oracle.truffle.api.instrument.impl.LineToProbesMap
All Implemented Interfaces:
Probe.ProbeListener

public class LineToProbesMap extends Object implements Probe.ProbeListener
A mapping from LineLocation (a line number in a specific piece of Source code) to a collection of Probes whose associated SourceSection starts on that line.
  • Constructor Details

    • LineToProbesMap

      public LineToProbesMap()
  • Method Details

    • startASTProbing

      public void startASTProbing(Source source)
      Description copied from interface: Probe.ProbeListener
      Notifies that all registered ASTProbers are about to be applied to a newly constructed AST.
      Specified by:
      startASTProbing in interface Probe.ProbeListener
      Parameters:
      source - source code from which the AST was constructed
    • newProbeInserted

      public void newProbeInserted(Probe probe)
      Description copied from interface: Probe.ProbeListener
      Notifies that a Probe has been newly attached to an AST via ProbeNode.Instrumentable.probe().

      There can be no more than one Probe at a node; this notification will only be delivered the first time probe() is called at a particular AST node. There will also be no notification when the AST to which the Probe is attached is cloned.

      Specified by:
      newProbeInserted in interface Probe.ProbeListener
    • probeTaggedAs

      public void probeTaggedAs(Probe probe, SyntaxTag tag, Object tagValue)
      Description copied from interface: Probe.ProbeListener
      Notifies that a SyntaxTag has been newly added to the set of tags associated with a Probe via Probe.tagAs(SyntaxTag, Object).

      The tags at a Probe are a set; this notification will only be delivered the first time a particular tag is added at a Probe.

      An optional value supplied with tagAs(SyntaxTag, Object) is reported to all listeners, but not stored. As a consequence, the optional value will have no effect at all if the tag had already been added.

      Specified by:
      probeTaggedAs in interface Probe.ProbeListener
      Parameters:
      probe - where a tag has been added
      tag - the tag that has been newly added (subsequent additions of the tag are unreported).
      tagValue - an optional value associated with the tag for the purposes of reporting.
    • endASTProbing

      public void endASTProbing(Source source)
      Description copied from interface: Probe.ProbeListener
      Notifies that the application of all registered ASTProbers to a newly constructed AST has completed.
      Specified by:
      endASTProbing in interface Probe.ProbeListener
      Parameters:
      source - source code from which the AST was constructed
    • findLineProbe

      public Probe findLineProbe(LineLocation lineLocation)
      Returns the Probe, if any, associated with source that starts on a specified line; if there are more than one, return the one with the first starting character location.
    • addProbeToLine

      protected void addProbeToLine(LineLocation line, Probe probe)
      Records creation of a probe whose associated source starts on the given line.

      If the line already exists in the internal lineToProbesMap, this probe will be added to the existing collection. If no line already exists in the internal map, then a new key is added along with a new collection containing the probe.

      This class requires that each added line/probe pair hasn't been previously added. However, attaching the same probe to a new line location is allowed.

      Parameters:
      line - The LineLocation to attach the probe to.
      probe - The Probe to attach for that line location.
    • getProbesAtLine

      public Collection<Probe> getProbesAtLine(LineLocation line)
      Returns a collection of Probes whose associated source begins at the given LineLocation, an empty list if none.
      Parameters:
      line - The line to check.
      Returns:
      A collection of probes at the given line.
    • getProbesAtLineNumber

      public Collection<Probe> getProbesAtLineNumber(int lineNumber)
      Convenience method to get probes according to a int line number. Returns a collection of Probes at the given line number, an empty list if none.
      Parameters:
      lineNumber - The line number to check.
      Returns:
      A collection of probes at the given line.
    • forget

      public void forget(Source source)