package lt.emasina.resthub.model;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import lombok.Getter;
import lt.emasina.resthub.util.Helper;
import org.json.JSONException;
import org.json.JSONObject;
@Getter
public class Query {
private final String id;
private final String connection;
private final String query;
private final List<Column> columns;
private final List<Parameter> parameters;
private String sql;
private long cacheTime;
private long rowsLimit;
private String md5;
private boolean eternal;
private final Map<String, String> metadata;
private Map<String, Long> stats;
public Query(String id, JSONObject ob, boolean v) throws JSONException {
this.id = id;
this.connection = ob.getString("connection");
this.query = ob.getString("query");
if (v) {
this.sql = ob.getString("sql");
this.cacheTime = ob.getLong("cacheTime");
this.rowsLimit = ob.getLong("rowsLimit");
this.md5 = ob.getString("md5");
this.eternal = ob.getBoolean("eternal");
this.stats = new HashMap<>();
JSONObject get = ob.getJSONObject("stats");
Iterator i = ob.keys();
while (i.hasNext()) {
String statName = i.next().toString();
long statValue = get.getLong(statName);
stats.put(statName, statValue);
}
}
this.columns = Helper.getColumns(ob);
this.parameters = Helper.getParameters(ob);
this.metadata = Helper.getMetadata(ob);
}
}