public final class Shape extends Object
ShapeObject) per live object it reads, addressed by handle, the traversals its visitors
replay, and the text renderings it shows in diagnostics. Built by ShapeBuilder when the analysis freezes;
holds no live object, so the document can be built from it after the analyzer is disposed, on any thread.
Two values are taken later than the freeze, when the analysis has finished and before it is disposed, at the
moment the producer took them before slice 1b: the text renderings of names, literals and type names
(toString() can mark tokens deleted, so it never runs inside the analysis). seal() ends that phase;
after it nothing changes.
Internal API of the SQL-LR producer.
| Modifier and Type | Method and Description |
|---|---|
ShapeObject |
at(int h)
The mirror with handle
h. |
TSQLEnv |
catalog()
The mirror of the catalog the producer reads (its own copy of the supplied one), or null when none.
|
long |
getCompleteNanos()
The time taking the renderings took after the analysis, in nanoseconds; -1 before
seal(). |
long |
getFreezeNanos()
The time the projection took when the analysis froze, in nanoseconds (cost measurement, plan 09 §3.1).
|
long[] |
getTraversalStats()
How the traversals were taken (cost measurement): slices of an enclosing recording taken, slices refused because
the node's own traversal differs, own recordings without a slice, and nodes visited while recording.
|
boolean |
isSealed() |
SqllrObservations |
observations()
The mirror of the recorder, the root of the projection of an analysis.
|
ShapeObject |
root()
The root of the projection: the recorder of an analysis, or the statement
ShapeBuilder.project(gudusoft.gsqlparser.TCustomSqlStatement) took. |
int |
size()
The number of mirrors.
|
public SqllrObservations observations()
public ShapeObject root()
ShapeBuilder.project(gudusoft.gsqlparser.TCustomSqlStatement) took.public TSQLEnv catalog()
public int size()
public ShapeObject at(int h)
h.public boolean isSealed()
public long getFreezeNanos()
public long getCompleteNanos()
seal().public long[] getTraversalStats()