public class LineToSourceSectionMap extends java.lang.Object implements Probe.ProbeListener
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 and Description |
|---|
LineToSourceSectionMap() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
addSourceSectionToLine(LineLocation line,
SourceSection sourceSection)
Adds a source section to the given line.
|
void |
endASTProbing(Source source)
Notifies that the application of all registered
ASTProbers to a newly constructed
AST has completed. |
java.util.Collection<SourceSection> |
getSourceSectionsAtLine(LineLocation line)
Returns a collection of
SourceSections at the given LineLocation, an empty
list if none. |
java.util.Collection<SourceSection> |
getSourceSectionsAtLineNumber(int lineNumber)
Convenience method to get source sections according to a int line number.
|
void |
newProbeInserted(Probe probe)
Notifies that a
Probe has been newly attached to an AST via
ProbeNode.Instrumentable.probe(). |
void |
probeTaggedAs(Probe probe,
SyntaxTag tag,
java.lang.Object tagValue)
Notifies that a
SyntaxTag has been newly added to the set of tags associated with
a Probe via Probe.tagAs(SyntaxTag, Object). |
void |
startASTProbing(Source source)
Notifies that all registered
ASTProbers are about to be applied to a newly
constructed AST. |
public void startASTProbing(Source source)
Probe.ProbeListenerASTProbers are about to be applied to a newly
constructed AST.startASTProbing in interface Probe.ProbeListenersource - source code from which the AST was constructedpublic void newProbeInserted(Probe probe)
Probe.ProbeListenerProbe 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.
newProbeInserted in interface Probe.ProbeListenerpublic void probeTaggedAs(Probe probe, SyntaxTag tag, java.lang.Object tagValue)
Probe.ProbeListenerSyntaxTag 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.
probeTaggedAs in interface Probe.ProbeListenerprobe - where a tag has been addedtag - 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.public void endASTProbing(Source source)
Probe.ProbeListenerASTProbers to a newly constructed
AST has completed.endASTProbing in interface Probe.ProbeListenersource - source code from which the AST was constructedprotected void addSourceSectionToLine(LineLocation line, SourceSection sourceSection)
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.
line - The LineLocation to attach the source section to.sourceSection - The SourceSection to attach for that line location.public java.util.Collection<SourceSection> getSourceSectionsAtLine(LineLocation line)
SourceSections at the given LineLocation, an empty
list if none.line - The line to check.public java.util.Collection<SourceSection> getSourceSectionsAtLineNumber(int lineNumber)
SourceSections at the given line number. If there are no source
sections at that line, an empty list is returned.lineNumber - The line number to check.