package com.rthoni.intellij.codefromds.dbo; import com.intellij.database.model.DasTable; 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; /** * Created by robin on 11/15/16. */ public class TableSelection { private DasTable _table; private List _columns; public HashMap toMap() { HashMap map = new HashMap<>(); map.put("table", _table == null ? null : _table.getName()); List tables = new Vector<>(); for (ColumnSelection col : _columns) { tables.add(col.toMap()); } map.put("columns", tables); return map; } public void fromJson(JSONObject json) { JSONArray array = json.getJSONArray("columns"); for (ColumnSelection column : _columns) { JSONObject obj = Helper.findColumnInJson(array, column.getColumn().getName()); if (obj != null) { column.fromJson(obj); } else { column.setSelected(false); } } } public DasTable getTable() { return _table; } public void setTable(DasTable table) { _table = table; } public List getColumns() { return _columns; } public void setColumns(List columns) { _columns = columns; } public boolean hasNone() { return _columns != null && _columns.stream().filter(ColumnSelection::isSelected).count() == 0; } public boolean hasAll() { return _columns != null && _columns.stream().filter(ColumnSelection::isSelected).count() == _columns.size(); } }