Package org.apache.calcite.model
Class ModelHandler
- java.lang.Object
-
- org.apache.calcite.model.ModelHandler
-
public class ModelHandler extends java.lang.Object
Reads a model and creates schema objects accordingly.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ModelHandler.ExtraOperand
Extra operands automatically injected into aJsonCustomSchema.operand
, as extra context for the adapter.
-
Field Summary
Fields Modifier and Type Field Description private CalciteConnection
connection
private static com.fasterxml.jackson.databind.ObjectMapper
JSON_MAPPER
(package private) Lattice.Builder
latticeBuilder
private java.lang.String
modelUri
private java.util.Deque<Pair<java.lang.String,SchemaPlus>>
schemaStack
(package private) Lattice.TileBuilder
tileBuilder
private static com.fasterxml.jackson.databind.ObjectMapper
YAML_MAPPER
-
Constructor Summary
Constructors Constructor Description ModelHandler(CalciteConnection connection, java.lang.String uri)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static void
addFunctions(SchemaPlus schema, java.lang.String functionName, java.util.List<java.lang.String> path, java.lang.String className, java.lang.String methodName, boolean upCase)
Creates and validates aScalarFunctionImpl
, and adds it to a schema.private void
checkRequiredAttributes(java.lang.Object json, java.lang.String... attributeNames)
static void
create(SchemaPlus schema, java.lang.String functionName, java.util.List<java.lang.String> path, java.lang.String className, java.lang.String methodName)
private SchemaPlus
currentMutableSchema(java.lang.String elementType)
private SchemaPlus
currentSchema()
private java.lang.String
currentSchemaName()
private java.util.List<java.lang.String>
currentSchemaPath()
protected java.util.Map<java.lang.String,java.lang.Object>
operandMap(JsonSchema jsonSchema, java.util.Map<java.lang.String,java.lang.Object> operand)
Adds extra entries to an operand to a custom schema.private void
populateLattice(JsonLattice jsonLattice, Lattice.Builder latticeBuilder)
private void
populateSchema(JsonSchema jsonSchema, SchemaPlus schema)
private static com.google.common.collect.ImmutableList<java.lang.String>
stringList(java.lang.Object s)
private static com.google.common.collect.ImmutableList<com.google.common.collect.ImmutableList<java.lang.String>>
stringListList(java.util.List path)
void
visit(JsonColumn jsonColumn)
void
visit(JsonCustomSchema jsonSchema)
void
visit(JsonCustomTable jsonTable)
void
visit(JsonFunction jsonFunction)
void
visit(JsonJdbcSchema jsonSchema)
void
visit(JsonLattice jsonLattice)
void
visit(JsonMapSchema jsonSchema)
void
visit(JsonMaterialization jsonMaterialization)
void
visit(JsonMeasure jsonMeasure)
void
visit(JsonRoot jsonRoot)
void
visit(JsonTile jsonTile)
void
visit(JsonType jsonType)
void
visit(JsonView jsonView)
-
-
-
Field Detail
-
JSON_MAPPER
private static final com.fasterxml.jackson.databind.ObjectMapper JSON_MAPPER
-
YAML_MAPPER
private static final com.fasterxml.jackson.databind.ObjectMapper YAML_MAPPER
-
connection
private final CalciteConnection connection
-
schemaStack
private final java.util.Deque<Pair<java.lang.String,SchemaPlus>> schemaStack
-
modelUri
private final java.lang.String modelUri
-
latticeBuilder
Lattice.Builder latticeBuilder
-
tileBuilder
Lattice.TileBuilder tileBuilder
-
-
Constructor Detail
-
ModelHandler
public ModelHandler(CalciteConnection connection, java.lang.String uri) throws java.io.IOException
- Throws:
java.io.IOException
-
-
Method Detail
-
create
@Deprecated public static void create(SchemaPlus schema, java.lang.String functionName, java.util.List<java.lang.String> path, java.lang.String className, java.lang.String methodName)
-
addFunctions
public static void addFunctions(SchemaPlus schema, java.lang.String functionName, java.util.List<java.lang.String> path, java.lang.String className, java.lang.String methodName, boolean upCase)
Creates and validates aScalarFunctionImpl
, and adds it to a schema. IfmethodName
is "*", may add more than one function.- Parameters:
schema
- Schema to add tofunctionName
- Name of function; null to derived from method namepath
- Path to look for functionsclassName
- Class to inspect for methods that may be user-defined functionsmethodName
- Method name; null means use the class as a UDF; "*" means add all methodsupCase
- Whether to convert method names to upper case, so that they can be called without using quotes
-
checkRequiredAttributes
private void checkRequiredAttributes(java.lang.Object json, java.lang.String... attributeNames)
-
visit
public void visit(JsonRoot jsonRoot)
-
visit
public void visit(JsonMapSchema jsonSchema)
-
stringListList
private static com.google.common.collect.ImmutableList<com.google.common.collect.ImmutableList<java.lang.String>> stringListList(java.util.List path)
-
stringList
private static com.google.common.collect.ImmutableList<java.lang.String> stringList(java.lang.Object s)
-
populateSchema
private void populateSchema(JsonSchema jsonSchema, SchemaPlus schema)
-
visit
public void visit(JsonCustomSchema jsonSchema)
-
operandMap
protected java.util.Map<java.lang.String,java.lang.Object> operandMap(JsonSchema jsonSchema, java.util.Map<java.lang.String,java.lang.Object> operand)
Adds extra entries to an operand to a custom schema.
-
visit
public void visit(JsonJdbcSchema jsonSchema)
-
visit
public void visit(JsonMaterialization jsonMaterialization)
-
visit
public void visit(JsonLattice jsonLattice)
-
populateLattice
private void populateLattice(JsonLattice jsonLattice, Lattice.Builder latticeBuilder)
-
visit
public void visit(JsonCustomTable jsonTable)
-
visit
public void visit(JsonColumn jsonColumn)
-
visit
public void visit(JsonView jsonView)
-
currentSchemaPath
private java.util.List<java.lang.String> currentSchemaPath()
-
currentSchema
private SchemaPlus currentSchema()
-
currentSchemaName
private java.lang.String currentSchemaName()
-
currentMutableSchema
private SchemaPlus currentMutableSchema(java.lang.String elementType)
-
visit
public void visit(JsonType jsonType)
-
visit
public void visit(JsonFunction jsonFunction)
-
visit
public void visit(JsonMeasure jsonMeasure)
-
visit
public void visit(JsonTile jsonTile)
-
-