Class RelJsonWriter
- java.lang.Object
-
- org.apache.calcite.rel.externalize.RelJsonWriter
-
- All Implemented Interfaces:
RelWriter
public class RelJsonWriter extends java.lang.Object implements RelWriter
Callback for a relational expression to dump itself as JSON.- See Also:
RelJsonReader
-
-
Field Summary
Fields Modifier and Type Field Description private JsonBuilder
jsonBuilder
private java.lang.String
previousId
private java.util.Map<RelNode,java.lang.String>
relIdMap
private RelJson
relJson
private java.util.List<java.lang.Object>
relList
private java.util.List<Pair<java.lang.String,java.lang.Object>>
values
-
Constructor Summary
Constructors Constructor Description RelJsonWriter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
asString()
Returns a JSON string describing the relational expressions that were just explained.RelWriter
done(RelNode node)
Writes the completed explanation.void
explain(RelNode rel, java.util.List<Pair<java.lang.String,java.lang.Object>> valueList)
Prints an explanation of a node, with a list of (term, value) pairs.protected void
explain_(RelNode rel, java.util.List<Pair<java.lang.String,java.lang.Object>> values)
private java.util.List<java.lang.Object>
explainInputs(java.util.List<RelNode> inputs)
SqlExplainLevel
getDetailLevel()
private java.util.List<java.lang.Object>
getList(java.util.List<Pair<java.lang.String,java.lang.Object>> values, java.lang.String tag)
RelWriter
input(java.lang.String term, RelNode input)
Adds an input to the explanation of the current node.RelWriter
item(java.lang.String term, java.lang.Object value)
Adds an attribute to the explanation of the current node.RelWriter
itemIf(java.lang.String term, java.lang.Object value, boolean condition)
Adds an input to the explanation of the current node, if a condition holds.boolean
nest()
Returns whether the writer prefers nested values.private void
put(java.util.Map<java.lang.String,java.lang.Object> map, java.lang.String name, java.lang.Object value)
-
-
-
Field Detail
-
jsonBuilder
private final JsonBuilder jsonBuilder
-
relJson
private final RelJson relJson
-
relIdMap
private final java.util.Map<RelNode,java.lang.String> relIdMap
-
relList
private final java.util.List<java.lang.Object> relList
-
values
private final java.util.List<Pair<java.lang.String,java.lang.Object>> values
-
previousId
private java.lang.String previousId
-
-
Method Detail
-
explain_
protected void explain_(RelNode rel, java.util.List<Pair<java.lang.String,java.lang.Object>> values)
-
put
private void put(java.util.Map<java.lang.String,java.lang.Object> map, java.lang.String name, java.lang.Object value)
-
explainInputs
private java.util.List<java.lang.Object> explainInputs(java.util.List<RelNode> inputs)
-
explain
public final void explain(RelNode rel, java.util.List<Pair<java.lang.String,java.lang.Object>> valueList)
Description copied from interface:RelWriter
Prints an explanation of a node, with a list of (term, value) pairs.The term-value pairs are generally gathered by calling
RelNode.explain(RelWriter)
. Each sub-class ofRelNode
callsRelWriter.input(String, org.apache.calcite.rel.RelNode)
andRelWriter.item(String, Object)
to declare term-value pairs.
-
getDetailLevel
public SqlExplainLevel getDetailLevel()
- Specified by:
getDetailLevel
in interfaceRelWriter
- Returns:
- detail level at which plan should be generated
-
input
public RelWriter input(java.lang.String term, RelNode input)
Description copied from interface:RelWriter
Adds an input to the explanation of the current node.
-
item
public RelWriter item(java.lang.String term, java.lang.Object value)
Description copied from interface:RelWriter
Adds an attribute to the explanation of the current node.
-
getList
private java.util.List<java.lang.Object> getList(java.util.List<Pair<java.lang.String,java.lang.Object>> values, java.lang.String tag)
-
itemIf
public RelWriter itemIf(java.lang.String term, java.lang.Object value, boolean condition)
Description copied from interface:RelWriter
Adds an input to the explanation of the current node, if a condition holds.
-
done
public RelWriter done(RelNode node)
Description copied from interface:RelWriter
Writes the completed explanation.
-
nest
public boolean nest()
Description copied from interface:RelWriter
Returns whether the writer prefers nested values. Traditional explain writers prefer flattened values.
-
asString
public java.lang.String asString()
Returns a JSON string describing the relational expressions that were just explained.
-
-