Package com.oracle.truffle.api.instrument

## Interface Probe.ProbeListener

All Known Implementing Classes:
  `LineToProbesMap`, `LineToSourceSectionMap`

Enclosing class:
  Probe

    public static interface Probe.ProbeListener

An observer of events related to `Probe`s: creating and tagging.

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `endASTProbing​(Source source)` Notifies that the application of all registered `ASTProber`s to a newly constructed AST has completed.
`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 `ASTProber`s are about to be applied to a newly constructed AST.

### Method Detail

#### startASTProbing

    void startASTProbing​(Source source)

Notifies that all registered `ASTProber`s are about to be applied to a newly constructed AST.

Parameters:
  `source` - source code from which the AST was constructed

#### newProbeInserted

    void newProbeInserted​(Probe probe)

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.

#### probeTaggedAs

    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)`.

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.

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

    void endASTProbing​(Source source)

Notifies that the application of all registered `ASTProber`s to a newly constructed AST has completed.

Parameters:
  `source` - source code from which the AST was constructed