/** * Copyright 2014 Yahoo! Inc. Licensed under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software distributed * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. * See accompanying LICENSE file. */ package com.yahoo.sql4d; import java.util.LinkedHashMap; import java.util.Map; import org.json.JSONObject; /** * Base class for all sql statement types. * @author srikalyan */ public abstract class BaseStatementMeta { public String dataSource; public BaseStatementMeta queryDataSource; // http://druid.io/docs/latest/DataSource.html Query Datasource public BaseStatementMeta() { } public BaseStatementMeta(BaseStatementMeta meta) { this.dataSource = meta.dataSource; this.queryDataSource = meta.queryDataSource; } public BaseStatementMeta(String dataSource) { this.dataSource = dataSource; } @Override public String toString() { return getJson().toString(2); } public JSONObject getJson() { return new JSONObject(getDataMap()); } public Map<String, Object> getDataMap() { Map<String, Object> map = new LinkedHashMap<>(); JSONObject dataSourceJson = new JSONObject(); if (dataSource != null) { dataSourceJson.put("type", "table"); dataSourceJson.put("name", dataSource); } else if (queryDataSource != null) { dataSourceJson.put("type", "query"); dataSourceJson.put("query", queryDataSource.getDataMap()); } map.put("dataSource", dataSourceJson); return map; } public <T> void postProcess(T anyContext) { } }