-
Notifications
You must be signed in to change notification settings - Fork 103
Open
Labels
Description
investigate/convert to Calcite's SchemaPlus way of reading calcite models instead of manually handling JSON
Line 34 in 9d7ecc4
* TODO: investigate/convert to Calcite's SchemaPlus way of reading calcite models instead of manually handling JSON |
package org.apache.wayang.api.sql.calcite.utils;
import org.apache.wayang.core.api.Configuration;
import org.json.simple.parser.ParseException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.Iterator;
import java.util.Objects;
/*
* TODO: investigate/convert to Calcite's SchemaPlus way of reading calcite models instead of manually handling JSON
*/
public class ModelParser {
private final Configuration configuration;
private final JsonNode json;
public ModelParser() throws IOException, ParseException {
final String jsonString = Files
.readString(new File("wayang-api/wayang-api-sql/src/main/resources/model.json").toPath());
final ObjectMapper objectMapper = new ObjectMapper();
this.json = objectMapper.readTree(jsonString);
this.configuration = null;
}
public ModelParser(final Configuration configuration) throws IOException, ParseException {
final String calciteModel = "{\"calcite\":" + configuration.getStringProperty("wayang.calcite.model")
+ ",\"separator\":\";\"}";
final ObjectMapper objectMapper = new ObjectMapper();
this.json = objectMapper.readTree(calciteModel);
this.configuration = configuration;
}
/**
42ae52181df51b4758af79cc1688e807c1e634b0