1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- package com.rthoni.intellij.codefromds.dbo.options;
-
- import com.intellij.database.psi.DbDataSource;
- import com.intellij.database.util.DasUtil;
- import com.rthoni.intellij.codefromds.business.Helper;
- import org.json.JSONArray;
- import org.json.JSONObject;
-
- import java.util.HashMap;
- import java.util.List;
- import java.util.Vector;
- import java.util.stream.Collectors;
-
- /**
- * Created by robin on 11/15/16.
- */
- public class DataSourceSelection {
-
- private DbDataSource _source;
-
- private List<TableSelection> _tables;
-
- private List<StoredProcedureSelection> _storedProcedures;
-
- public DataSourceSelection(DbDataSource source) {
- _source = source;
- _tables = DasUtil.getTables(source).toList().stream().map(TableSelection::new).collect(Collectors.toList());
- _storedProcedures = Helper.getRoutines(source).stream().map(StoredProcedureSelection::new).collect(Collectors.toList());
- }
-
- public HashMap<String, Object> toMap()
- {
- HashMap<String, Object> map = new HashMap<>();
-
- map.put("source", _source == null ? null : _source.getName());
-
- List<Object> tables = new Vector<>();
- for (TableSelection table : _tables) {
- tables.add(table.toMap());
- }
- map.put("tables", tables);
-
- List<Object> sps = new Vector<>();
- for (StoredProcedureSelection sp : _storedProcedures) {
- sps.add(sp.toMap());
- }
- map.put("storedProcedures", sps);
-
- return map;
- }
-
- public void fromJson(JSONObject json)
- {
- JSONArray array = json.getJSONArray("tables");
- for (TableSelection table : _tables) {
- JSONObject obj = Helper.findInJson(array, "table", table.getTable().getName());
- if (obj != null) {
- table.fromJson(obj);
- } else {
- for (ColumnSelection column : table.getColumns()) {
- column.setSelected(false);
- }
- }
- }
-
- array = json.getJSONArray("storedProcedures");
- for (StoredProcedureSelection sp : _storedProcedures) {
- JSONObject obj = Helper.findInJson(array, "name", sp.getStoredProcedure().getText());
- if (obj != null) {
- sp.fromJson(obj);
- }
- }
- }
-
- public DbDataSource getSource() {
- return _source;
- }
-
- public void setSource(DbDataSource source) {
- _source = source;
- }
-
- public List<TableSelection> getTables() {
- return _tables;
- }
-
- public void setTables(List<TableSelection> tables) {
- _tables = tables;
- }
-
- public List<StoredProcedureSelection> getStoredProcedures() {
- return _storedProcedures;
- }
-
- public void setStoredProcedures(List<StoredProcedureSelection> storedProcedures) {
- _storedProcedures = storedProcedures;
- }
- }
|