Class LineToSourceSectionMap

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

public class LineToSourceSectionMap extends Object implements Probe.ProbeListener
A mapping from LineLocation (a line number in a specific piece of Source code) to a collection of SourceSections that exist on that line. This class assumes that all nodes are instrumented as it uses the Probe.ProbeListener interface to determine the source sections that exist in the file.
  • Constructor Details

    • LineToSourceSectionMap

      public LineToSourceSectionMap()
  • 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
    • addSourceSectionToLine

      protected void addSourceSectionToLine(LineLocation line, SourceSection sourceSection)
      Adds a source section to the given line.

      If the line already exists in the internal lineToSourceSectionsMap, this source section 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 source section.

      This class does not check if a source section has already been added to a line.

      Parameters:
      line - The LineLocation to attach the source section to.
      sourceSection - The SourceSection to attach for that line location.
    • getSourceSectionsAtLine

      public Collection<SourceSection> getSourceSectionsAtLine(LineLocation line)
      Returns a collection of SourceSections at the given LineLocation, an empty list if none.
      Parameters:
      line - The line to check.
      Returns:
      the source sections at the given line.
    • getSourceSectionsAtLineNumber

      public Collection<SourceSection> getSourceSectionsAtLineNumber(int lineNumber)
      Convenience method to get source sections according to a int line number. Returns a collection of SourceSections at the given line number. If there are no source sections at that line, an empty list is returned.
      Parameters:
      lineNumber - The line number to check.
      Returns:
      A collection of source sections at the given line.