diff --git a/alpha/MyBox/src/main/java/mara/mybox/controller/BaseDataTreeController.java b/alpha/MyBox/src/main/java/mara/mybox/controller/BaseDataTreeController.java index a5b6be5b0..e74bf6515 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/controller/BaseDataTreeController.java +++ b/alpha/MyBox/src/main/java/mara/mybox/controller/BaseDataTreeController.java @@ -3,7 +3,7 @@ import javafx.scene.input.KeyEvent; import mara.mybox.db.data.DataNode; import mara.mybox.db.data.VisitHistory; -import mara.mybox.db.table.BaseTreeData; +import mara.mybox.db.table.BaseTableTreeData; import mara.mybox.db.table.TableTag; import mara.mybox.db.table.TableDataNode; import mara.mybox.db.table.TableDataTag; @@ -20,7 +20,7 @@ public abstract class BaseDataTreeController extends BaseController { protected ControlDataTreeView treeController; protected BaseDataTreeNodeController nodeController; - protected BaseTreeData dataTable; + protected BaseTableTreeData dataTable; protected TableDataNode treeTable; protected TableTag tagTable; protected TableDataTag treeTagTable; diff --git a/alpha/MyBox/src/main/java/mara/mybox/controller/ControlNewDataTable.java b/alpha/MyBox/src/main/java/mara/mybox/controller/ControlNewDataTable.java index b34bc2cd0..7afe3c232 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/controller/ControlNewDataTable.java +++ b/alpha/MyBox/src/main/java/mara/mybox/controller/ControlNewDataTable.java @@ -259,7 +259,7 @@ public void importRow(Connection conn, List pageRow, InvalidAs invalidAs int col = columnIndices.get(i); Data2DColumn sourceColumn = data2D.column(col); Data2DColumn targetColumn = dataTable.column(i + 1); - data2DRow.setColumnValue(targetColumn.getColumnName(), + data2DRow.setMapValue(targetColumn.getColumnName(), sourceColumn.fromString(pageRow.get(col + 1), invalidAs)); } tableData2D.insertData(conn, data2DRow); diff --git a/alpha/MyBox/src/main/java/mara/mybox/data2d/DataTable.java b/alpha/MyBox/src/main/java/mara/mybox/data2d/DataTable.java index f64de59ce..a23d834af 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/data2d/DataTable.java +++ b/alpha/MyBox/src/main/java/mara/mybox/data2d/DataTable.java @@ -252,7 +252,7 @@ public Data2DRow fromTableRow(List values, InvalidAs invalidAs) { for (int i = 0; i < Math.min(columns.size(), values.size() - 1); i++) { Data2DColumn column = columns.get(i); String name = column.getColumnName(); - data2DRow.setColumnValue(name, column.fromString(values.get(i + 1), invalidAs)); + data2DRow.setMapValue(name, column.fromString(values.get(i + 1), invalidAs)); } return data2DRow; } catch (Exception e) { @@ -409,7 +409,7 @@ public Data2DRow makeRow(List values, InvalidAs invalidAs) { Data2DColumn column = vColumns.get(i); String name = column.getColumnName(); String value = i < rowSize ? values.get(i) : null; - data2DRow.setColumnValue(name, column.fromString(value, invalidAs)); + data2DRow.setMapValue(name, column.fromString(value, invalidAs)); } return data2DRow; } catch (Exception e) { diff --git a/alpha/MyBox/src/main/java/mara/mybox/data2d/DataTableGroup.java b/alpha/MyBox/src/main/java/mara/mybox/data2d/DataTableGroup.java index b369f9433..0f0bc2c83 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/data2d/DataTableGroup.java +++ b/alpha/MyBox/src/main/java/mara/mybox/data2d/DataTableGroup.java @@ -332,8 +332,8 @@ private boolean byEqualValues() { } else { groupChanged = false; for (String group : mappedGroupNames) { - Object tv = tmpRow.getColumnValue(group); - Object lv = lastRow.getColumnValue(group); + Object tv = tmpRow.getMapValue(group); + Object lv = lastRow.getMapValue(group); if (tv == null) { if (lv != null) { groupChanged = true; @@ -353,7 +353,7 @@ private boolean byEqualValues() { parameterValue = null; groupMap.clear(); for (int i = 0; i < groupNames.size(); i++) { - groupMap.put(groupNames.get(i), tmpRow.getColumnValue(mappedGroupNames.get(i))); + groupMap.put(groupNames.get(i), tmpRow.getMapValue(mappedGroupNames.get(i))); } parameterValue = groupMap.toString(); recordGroup(groupid, parameterValue); @@ -619,7 +619,7 @@ private boolean byTime() { } try { Data2DRow tmpRow = tableTmpData.readData(query); - Object tv = tmpRow.getColumnValue(tmpTimeName); + Object tv = tmpRow.getMapValue(tmpTimeName); timeValue = tv == null ? null : (long) tv; groupChanged = lastTimeValue == Long.MAX_VALUE || lastTimeValue != timeValue; if (groupChanged) { @@ -724,7 +724,7 @@ private boolean byExpression() { } try { Data2DRow tmpRow = tableTmpData.readData(query); - expValue = tmpRow.getColumnValue(tmpExpName); + expValue = tmpRow.getMapValue(tmpExpName); groupChanged = expColumn.compare(lastExpValue, expValue) != 0; if (groupChanged) { groupChanged(); @@ -1000,8 +1000,8 @@ private boolean byConditions() { private boolean recordGroup(long index, String value) { try { Data2DRow group = tableGroupParameters.newRow(); - group.setColumnValue("group_index", index); - group.setColumnValue("group_parameters", value); + group.setMapValue("group_index", index); + group.setMapValue("group_parameters", value); tableGroupParameters.insertData(conn, group); if (task != null) { task.setInfo(message("GroupID") + ": " + groupid); @@ -1043,19 +1043,19 @@ private void writeRow(Data2DRow tmpRow) { targetValueOffset++; } Data2DRow data2DRow = tableTarget.newRow(); - data2DRow.setColumnValue(mappedIdColName, groupid); - data2DRow.setColumnValue(mappedParameterName, parameterValue); + data2DRow.setMapValue(mappedIdColName, groupid); + data2DRow.setMapValue(mappedParameterName, parameterValue); if (includeRowNumber) { - data2DRow.setColumnValue(finalColumns.get(3).getColumnName(), - tmpRow.getColumnValue(tmpData.columnName(1))); + data2DRow.setMapValue(finalColumns.get(3).getColumnName(), + tmpRow.getMapValue(tmpData.columnName(1))); } for (int i = 0; i < sourcePickIndice.size(); i++) { - Object value = tmpRow.getColumnValue(tmpData.columnName(sourcePickIndice.get(i) + tmpValueOffset)); + Object value = tmpRow.getMapValue(tmpData.columnName(sourcePickIndice.get(i) + tmpValueOffset)); Data2DColumn finalColumn = finalColumns.get(i + targetValueOffset); if (finalColumn.needScale() && scale >= 0 && value != null) { value = DoubleTools.scaleString(value + "", invalidAs, scale); } - data2DRow.setColumnValue(finalColumn.getColumnName(), + data2DRow.setMapValue(finalColumn.getColumnName(), finalColumn.fromString(value == null ? null : value + "")); } if (tableTarget.setInsertStatement(conn, insert, data2DRow)) { @@ -1091,11 +1091,11 @@ private void writeRow(Data2DRow tmpRow) { fileRow.add(groupid + ""); fileRow.add(parameterValue); if (includeRowNumber) { - Object value = tmpRow.getColumnValue(tmpData.columnName(1)); + Object value = tmpRow.getMapValue(tmpData.columnName(1)); fileRow.add(value == null ? null : value + ""); } for (int i = 0; i < sourcePickIndice.size(); i++) { - Object value = tmpRow.getColumnValue(tmpData.columnName(sourcePickIndice.get(i) + tmpValueOffset)); + Object value = tmpRow.getMapValue(tmpData.columnName(sourcePickIndice.get(i) + tmpValueOffset)); Data2DColumn finalColumn = finalColumns.get(i + targetValueOffset); if (finalColumn.needScale() && scale >= 0 && value != null) { value = DoubleTools.scaleString(value + "", invalidAs, scale); @@ -1234,7 +1234,7 @@ public String parameterValue(Connection qconn, long index) { + " WHERE group_index=" + index; try (PreparedStatement statement = qconn.prepareStatement(sql)) { Data2DRow row = tableGroupParameters.query(qconn, statement); - Object v = row.getColumnValue("group_parameters"); + Object v = row.getMapValue("group_parameters"); return v == null ? null : (String) v; } catch (Exception e) { return null; diff --git a/alpha/MyBox/src/main/java/mara/mybox/data2d/DataTableGroupStatistic.java b/alpha/MyBox/src/main/java/mara/mybox/data2d/DataTableGroupStatistic.java index a66ac87ba..201d31dc5 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/data2d/DataTableGroupStatistic.java +++ b/alpha/MyBox/src/main/java/mara/mybox/data2d/DataTableGroupStatistic.java @@ -91,7 +91,7 @@ public boolean run() { Data2DRow data2DRow = tableGroup.newRow(); for (String name : calNames) { Object v = groupColumn(name).value(query); - data2DRow.setColumnValue(groupColumnName(name), v); + data2DRow.setMapValue(groupColumnName(name), v); } if (groupid > 0 && groupid != currentGroupid) { insert.executeBatch(); @@ -243,13 +243,13 @@ private void statistic() { } for (int i = 0; i < colSize; i++) { Data2DRow data2DRow = tableStatistic.newRow(); - data2DRow.setColumnValue(statisticData.columnName(1), groupid); - data2DRow.setColumnValue(statisticData.columnName(2), parameterValue); - data2DRow.setColumnValue(statisticData.columnName(3), calNames.get(i)); + data2DRow.setMapValue(statisticData.columnName(1), groupid); + data2DRow.setMapValue(statisticData.columnName(2), parameterValue); + data2DRow.setMapValue(statisticData.columnName(3), calNames.get(i)); DoubleStatistic s = sData[i]; for (int k = 0; k < calculation.types.size(); k++) { StatisticType type = calculation.types.get(k); - data2DRow.setColumnValue(statisticData.columnName(k + 4), + data2DRow.setMapValue(statisticData.columnName(k + 4), DoubleTools.scale(s.value(type), scale)); } if (tableStatistic.setInsertStatement(conn, statisticInsert, data2DRow)) { diff --git a/alpha/MyBox/src/main/java/mara/mybox/data2d/TmpTable.java b/alpha/MyBox/src/main/java/mara/mybox/data2d/TmpTable.java index 159ee3795..3d1467144 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/data2d/TmpTable.java +++ b/alpha/MyBox/src/main/java/mara/mybox/data2d/TmpTable.java @@ -242,7 +242,7 @@ public Data2DRow makeRow(List sourceRow, InvalidAs invalidAs) { if (includeRowNumber) { String rowNum = sourceRow.get(0); index = Long.parseLong(rowNum); - data2DRow.setColumnValue(column(1).getColumnName(), index); + data2DRow.setMapValue(column(1).getColumnName(), index); values = sourceRow.subList(1, sourceRow.size()); } else { index = -1; @@ -335,7 +335,7 @@ public Data2DRow makeRow(List sourceRow, InvalidAs invalidAs) { tmpValue = targetColumn.fromString(sourceValue, invalidAs); } } - data2DRow.setColumnValue(targetColumn.getColumnName(), tmpValue); + data2DRow.setMapValue(targetColumn.getColumnName(), tmpValue); } return data2DRow; } catch (Exception e) { @@ -442,12 +442,12 @@ public boolean sort(FxTask currentTask, Data2DWriter writer, int maxSortResults) Data2DRow dataRow = tableData2D.readData(query); List rowValues = new ArrayList<>(); if (includeRowNumber) { - Object v = dataRow.getColumnValue(numberName); + Object v = dataRow.getMapValue(numberName); rowValues.add(v == null ? null : v + ""); } for (int i = 0; i < sourcePickIndice.size(); i++) { Data2DColumn tmpColumn = columns.get(i + valueIndexOffset); - Object v = dataRow.getColumnValue(tmpColumn.getColumnName()); + Object v = dataRow.getMapValue(tmpColumn.getColumnName()); rowValues.add(v == null ? null : v + ""); } writer.writeRow(rowValues); diff --git a/alpha/MyBox/src/main/java/mara/mybox/data2d/modify/DataTableSetValue.java b/alpha/MyBox/src/main/java/mara/mybox/data2d/modify/DataTableSetValue.java index 857b9c1ee..82f1d564d 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/data2d/modify/DataTableSetValue.java +++ b/alpha/MyBox/src/main/java/mara/mybox/data2d/modify/DataTableSetValue.java @@ -67,7 +67,7 @@ public void writeRow() { for (int i = 0; i < columnsNumber; ++i) { Data2DColumn column = columns.get(i); String name = column.getColumnName(); - sourceTableRow.setColumnValue(name, column.fromString(targetRow.get(i))); + sourceTableRow.setMapValue(name, column.fromString(targetRow.get(i))); } if (tableData2D.setUpdateStatement(conn, update, sourceTableRow)) { update.addBatch(); diff --git a/alpha/MyBox/src/main/java/mara/mybox/data2d/operate/Data2DSingleColumn.java b/alpha/MyBox/src/main/java/mara/mybox/data2d/operate/Data2DSingleColumn.java index 48150f44b..6674f58df 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/data2d/operate/Data2DSingleColumn.java +++ b/alpha/MyBox/src/main/java/mara/mybox/data2d/operate/Data2DSingleColumn.java @@ -51,7 +51,7 @@ public boolean handleRow() { Data2DColumn targetColumn = writerTable.columnByName("data"); String value = sourceRow.get(col); if (targetColumn != null) { - data2DRow.setColumnValue("data", targetColumn.fromString(value, InvalidAs.Empty)); + data2DRow.setMapValue("data", targetColumn.fromString(value, InvalidAs.Empty)); writerTableData2D.insertData(conn, data2DRow); if (++count % Database.BatchSize == 0) { conn.commit(); diff --git a/alpha/MyBox/src/main/java/mara/mybox/data2d/tools/Data2DTableTools.java b/alpha/MyBox/src/main/java/mara/mybox/data2d/tools/Data2DTableTools.java index 651aec8e6..bcd38216c 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/data2d/tools/Data2DTableTools.java +++ b/alpha/MyBox/src/main/java/mara/mybox/data2d/tools/Data2DTableTools.java @@ -232,7 +232,7 @@ public static DataTable importTable(FxTask task, String targetName, for (List row : pageRows) { for (int i = 0; i < columns.size(); i++) { Data2DColumn column = columns.get(i); - data2DRow.setColumnValue(column.getColumnName(), column.fromString(row.get(i + 1), invalidAs)); + data2DRow.setMapValue(column.getColumnName(), column.fromString(row.get(i + 1), invalidAs)); } tableData2D.insertData(conn, data2DRow); if (++count % Database.BatchSize == 0) { diff --git a/alpha/MyBox/src/main/java/mara/mybox/data2d/writer/DataTableWriter.java b/alpha/MyBox/src/main/java/mara/mybox/data2d/writer/DataTableWriter.java index 5aa8a80f8..42ffd3f56 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/data2d/writer/DataTableWriter.java +++ b/alpha/MyBox/src/main/java/mara/mybox/data2d/writer/DataTableWriter.java @@ -69,7 +69,7 @@ public void writeRow(List inRow) { } printRow = new ArrayList<>(); Data2DRow data2DRow = targetTable.makeRow(inRow, invalidAs); - if (data2DRow == null || data2DRow.isNoColumn()) { + if (data2DRow == null || data2DRow.isMapEmpty()) { return; } if (tableData2D.setInsertStatement(conn, insert, data2DRow)) { diff --git a/alpha/MyBox/src/main/java/mara/mybox/db/DataMigration.java b/alpha/MyBox/src/main/java/mara/mybox/db/DataMigration.java index 4951f94d5..c22a1942c 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/db/DataMigration.java +++ b/alpha/MyBox/src/main/java/mara/mybox/db/DataMigration.java @@ -39,7 +39,7 @@ import mara.mybox.db.data.InfoNode; import mara.mybox.db.data.WebHistory; import static mara.mybox.db.table.BaseTable.StringMaxLength; -import mara.mybox.db.table.BaseTreeData; +import mara.mybox.db.table.BaseTableTreeData; import mara.mybox.db.table.TableAlarmClock; import mara.mybox.db.table.TableColor; import mara.mybox.db.table.TableColorPalette; @@ -225,7 +225,7 @@ private static void updateIn682(Connection conn) { } } - private static void updateIn682_move(Connection conn, BaseTreeData dataTable, String category) { + private static void updateIn682_move(Connection conn, BaseTableTreeData dataTable, String category) { String tname = dataTable.getTableName(); // for debug.Remove this block later try (Statement statement = conn.createStatement()) { @@ -607,22 +607,22 @@ private static void updateIn661MoveLocations(Connection conn) { while (query.next()) { try { Data2DRow data2DRow = tableLocations.newRow(); - data2DRow.setColumnValue(message("DataSet"), query.getString("data_set")); - data2DRow.setColumnValue(message("Label"), query.getString("label")); - data2DRow.setColumnValue(message("Address"), query.getString("address")); - data2DRow.setColumnValue(message("Longitude"), query.getDouble("longitude")); - data2DRow.setColumnValue(message("Latitude"), query.getDouble("latitude")); - data2DRow.setColumnValue(message("Altitude"), query.getDouble("altitude")); - data2DRow.setColumnValue(message("Precision"), query.getDouble("precision")); - data2DRow.setColumnValue(message("Speed"), query.getDouble("speed")); - data2DRow.setColumnValue(message("Direction"), query.getShort("direction")); - data2DRow.setColumnValue(message("CoordinateSystem"), GeoCoordinateSystem.name(query.getShort("coordinate_system"))); - data2DRow.setColumnValue(message("DataValue"), query.getDouble("data_value")); - data2DRow.setColumnValue(message("DataSize"), query.getDouble("data_size")); - data2DRow.setColumnValue(message("StartTime"), DateTools.datetimeToString(query.getLong("start_time"))); - data2DRow.setColumnValue(message("EndTime"), DateTools.datetimeToString(query.getLong("end_time"))); - data2DRow.setColumnValue(message("Image"), query.getString("dataset_image")); - data2DRow.setColumnValue(message("Comments"), query.getString("location_comments")); + data2DRow.setMapValue(message("DataSet"), query.getString("data_set")); + data2DRow.setMapValue(message("Label"), query.getString("label")); + data2DRow.setMapValue(message("Address"), query.getString("address")); + data2DRow.setMapValue(message("Longitude"), query.getDouble("longitude")); + data2DRow.setMapValue(message("Latitude"), query.getDouble("latitude")); + data2DRow.setMapValue(message("Altitude"), query.getDouble("altitude")); + data2DRow.setMapValue(message("Precision"), query.getDouble("precision")); + data2DRow.setMapValue(message("Speed"), query.getDouble("speed")); + data2DRow.setMapValue(message("Direction"), query.getShort("direction")); + data2DRow.setMapValue(message("CoordinateSystem"), GeoCoordinateSystem.name(query.getShort("coordinate_system"))); + data2DRow.setMapValue(message("DataValue"), query.getDouble("data_value")); + data2DRow.setMapValue(message("DataSize"), query.getDouble("data_size")); + data2DRow.setMapValue(message("StartTime"), DateTools.datetimeToString(query.getLong("start_time"))); + data2DRow.setMapValue(message("EndTime"), DateTools.datetimeToString(query.getLong("end_time"))); + data2DRow.setMapValue(message("Image"), query.getString("dataset_image")); + data2DRow.setMapValue(message("Comments"), query.getString("location_comments")); tableLocations.insertData(conn, insert, data2DRow); if (++count % Database.BatchSize == 0) { conn.commit(); @@ -679,31 +679,31 @@ private static void updateIn661MoveEpidemicReports(Connection conn) { while (query.next()) { try { Data2DRow data2DRow = tableReports.newRow(); - data2DRow.setColumnValue(message("DataSet"), query.getString("data_set")); - data2DRow.setColumnValue(message("Time"), query.getTimestamp("time")); + data2DRow.setMapValue(message("DataSet"), query.getString("data_set")); + data2DRow.setMapValue(message("Time"), query.getTimestamp("time")); long locationid = query.getLong("locationid"); GeographyCode code = TableGeographyCode.readCode(conn, locationid, true); if (code != null) { try { - data2DRow.setColumnValue(message("Address"), code.getName()); - data2DRow.setColumnValue(message("Longitude"), code.getLongitude()); - data2DRow.setColumnValue(message("Latitude"), code.getLatitude()); - data2DRow.setColumnValue(message("Level"), code.getLevelName()); - data2DRow.setColumnValue(message("Continent"), code.getContinentName()); - data2DRow.setColumnValue(message("Country"), code.getCountryName()); - data2DRow.setColumnValue(message("Province"), code.getProvinceName()); - data2DRow.setColumnValue(message("CoordinateSystem"), code.getCoordinateSystem().name()); - data2DRow.setColumnValue(message("Comments"), code.getFullName()); + data2DRow.setMapValue(message("Address"), code.getName()); + data2DRow.setMapValue(message("Longitude"), code.getLongitude()); + data2DRow.setMapValue(message("Latitude"), code.getLatitude()); + data2DRow.setMapValue(message("Level"), code.getLevelName()); + data2DRow.setMapValue(message("Continent"), code.getContinentName()); + data2DRow.setMapValue(message("Country"), code.getCountryName()); + data2DRow.setMapValue(message("Province"), code.getProvinceName()); + data2DRow.setMapValue(message("CoordinateSystem"), code.getCoordinateSystem().name()); + data2DRow.setMapValue(message("Comments"), code.getFullName()); } catch (Exception e) { MyBoxLog.console(e); } } - data2DRow.setColumnValue(message("Confirmed"), query.getLong("confirmed")); - data2DRow.setColumnValue(message("Healed"), query.getLong("healed")); - data2DRow.setColumnValue(message("Dead"), query.getLong("dead")); - data2DRow.setColumnValue(message("IncreasedConfirmed"), query.getLong("increased_confirmed")); - data2DRow.setColumnValue(message("IncreasedHealed"), query.getLong("increased_healed")); - data2DRow.setColumnValue(message("IncreasedDead"), query.getLong("increased_dead")); + data2DRow.setMapValue(message("Confirmed"), query.getLong("confirmed")); + data2DRow.setMapValue(message("Healed"), query.getLong("healed")); + data2DRow.setMapValue(message("Dead"), query.getLong("dead")); + data2DRow.setMapValue(message("IncreasedConfirmed"), query.getLong("increased_confirmed")); + data2DRow.setMapValue(message("IncreasedHealed"), query.getLong("increased_healed")); + data2DRow.setMapValue(message("IncreasedDead"), query.getLong("increased_dead")); short sd = query.getShort("source"); String source; source = switch (sd) { @@ -718,7 +718,7 @@ private static void updateIn661MoveEpidemicReports(Connection conn) { default -> message("Unknown"); }; - data2DRow.setColumnValue(message("Source"), source); + data2DRow.setMapValue(message("Source"), source); tableReports.insertData(conn, insert, data2DRow); if (++count % Database.BatchSize == 0) { diff --git a/alpha/MyBox/src/main/java/mara/mybox/db/data/BaseData.java b/alpha/MyBox/src/main/java/mara/mybox/db/data/BaseData.java index 38b2efb85..e6bfd588d 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/db/data/BaseData.java +++ b/alpha/MyBox/src/main/java/mara/mybox/db/data/BaseData.java @@ -11,21 +11,27 @@ */ public abstract class BaseData implements Cloneable { - protected Map columnValues; + protected Map mapValues; protected int rowIndex; + /* + abstract + */ public abstract boolean valid(); public abstract boolean setValue(String column, Object value); public abstract Object getValue(String column); - public boolean setColumnValue(String column, Object value) { + /* + Map + */ + public boolean setMapValue(String column, Object value) { try { - if (columnValues == null) { - columnValues = new HashMap<>(); + if (mapValues == null) { + mapValues = new HashMap<>(); } - columnValues.put(column, value); + mapValues.put(column, value); return true; } catch (Exception e) { MyBoxLog.debug(e); @@ -33,42 +39,27 @@ public boolean setColumnValue(String column, Object value) { } } - public Object getColumnValue(String column) { + public Object getMapValue(String column) { try { - return columnValues.get(column); + return mapValues.get(column); } catch (Exception e) { MyBoxLog.debug(e); return null; } } - public boolean isNoColumn() { + public boolean isMapEmpty() { try { - return columnValues == null || columnValues.keySet().isEmpty(); + return mapValues == null || mapValues.keySet().isEmpty(); } catch (Exception e) { // MyBoxLog.debug(e); return true; } } - public String values() { - try { - return columnValues.toString(); - } catch (Exception e) { -// MyBoxLog.debug(e); - return null; - } - } - - public Map nameValues() { - Map values = new HashMap<>(); - for (String name : columnValues.keySet()) { - Object value = getColumnValue(name); - values.put(name, value != null ? value.toString() : null); - } - return values; - } - + /* + others + */ @Override public Object clone() throws CloneNotSupportedException { try { @@ -90,25 +81,25 @@ public static boolean setColumnValue(BaseData data, String column, Object value) if (data == null || column == null) { return false; } - return data.setColumnValue(column, value); + return data.setMapValue(column, value); } public static Object getColumnValue(BaseData data, String column) { if (data == null || column == null) { return null; } - return data.getColumnValue(column); + return data.getMapValue(column); } /* get/set */ - public Map getColumnValues() { - return columnValues; + public Map getMapValues() { + return mapValues; } public void setColumValues(Map values) { - this.columnValues = values; + this.mapValues = values; } public int getRowIndex() { diff --git a/alpha/MyBox/src/main/java/mara/mybox/db/data/BaseDataTools.java b/alpha/MyBox/src/main/java/mara/mybox/db/data/BaseDataTools.java index 1c7fb8406..dc3d82cbb 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/db/data/BaseDataTools.java +++ b/alpha/MyBox/src/main/java/mara/mybox/db/data/BaseDataTools.java @@ -51,7 +51,7 @@ public static String displayData(BaseTable table, BaseData data, List co } else { info = ""; } - info += data.label(column.getColumnName()) + ": " + display; + info += column.getColumnName() + ": " + display; } return info + displayDataMore(data, lineBreak); } catch (Exception e) { diff --git a/alpha/MyBox/src/main/java/mara/mybox/db/data/BaseTreeData.java b/alpha/MyBox/src/main/java/mara/mybox/db/data/BaseTreeData.java new file mode 100644 index 000000000..83b1e504b --- /dev/null +++ b/alpha/MyBox/src/main/java/mara/mybox/db/data/BaseTreeData.java @@ -0,0 +1,22 @@ +package mara.mybox.db.data; + +/** + * @Author Mara + * @CreateDate 2020-7-19 + * @License Apache License Version 2.0 + */ +public abstract class BaseTreeData extends BaseData { + + + /* + abstract + */ + public abstract String toText(); + + public abstract String toXml(String prefix); + + public abstract String toHtml(); + + public abstract String toJson(String prefix); + +} diff --git a/alpha/MyBox/src/main/java/mara/mybox/db/data/ColumnDefinition.java b/alpha/MyBox/src/main/java/mara/mybox/db/data/ColumnDefinition.java index a8034312d..a36df7b35 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/db/data/ColumnDefinition.java +++ b/alpha/MyBox/src/main/java/mara/mybox/db/data/ColumnDefinition.java @@ -169,7 +169,7 @@ public void cloneFrom(ColumnDefinition c) { value = c.value; maxValue = c.maxValue; minValue = c.minValue; - columnValues = c.columnValues; + mapValues = c.mapValues; statistic = c.statistic; description = c.description; fixTwoDigitYear = c.fixTwoDigitYear; diff --git a/alpha/MyBox/src/main/java/mara/mybox/db/data/Data2DRow.java b/alpha/MyBox/src/main/java/mara/mybox/db/data/Data2DRow.java index 412d3a1bb..55a995df4 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/db/data/Data2DRow.java +++ b/alpha/MyBox/src/main/java/mara/mybox/db/data/Data2DRow.java @@ -19,18 +19,18 @@ public boolean valid() { @Override public boolean setValue(String column, Object value) { - return setColumnValue(column, value); + return setMapValue(column, value); } @Override public Object getValue(String column) { - return getColumnValue(column); + return getMapValue(column); } public List toStrings(List columns) { List row = new ArrayList<>(); for (Data2DColumn column : columns) { - Object value = getColumnValue(column.getColumnName()); + Object value = getMapValue(column.getColumnName()); row.add(column.toString(value)); } return row; @@ -39,7 +39,7 @@ public List toStrings(List columns) { public Map toNameValues(List columns) { Map values = new HashMap<>(); for (Data2DColumn column : columns) { - Object value = getColumnValue(column.getColumnName()); + Object value = getMapValue(column.getColumnName()); values.put(column.getColumnName(), column.toString(value)); } return values; diff --git a/alpha/MyBox/src/main/java/mara/mybox/db/data/GeographyCode.java b/alpha/MyBox/src/main/java/mara/mybox/db/data/GeographyCode.java index 0723431d4..37fc0faa7 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/db/data/GeographyCode.java +++ b/alpha/MyBox/src/main/java/mara/mybox/db/data/GeographyCode.java @@ -357,7 +357,6 @@ public static String displayDataMore(GeographyCode data, String lineBreak) { } } - @Override public String label(String columnName) { if (columnName == null) { return null; diff --git a/alpha/MyBox/src/main/java/mara/mybox/db/data/MathFunction.java b/alpha/MyBox/src/main/java/mara/mybox/db/data/MathFunction.java index 858e4fa9a..1bc42b75a 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/db/data/MathFunction.java +++ b/alpha/MyBox/src/main/java/mara/mybox/db/data/MathFunction.java @@ -28,16 +28,6 @@ public Object getValue(String column) { return getValue(this, column); } - @Override - public String values() { - try { - return columnValues.toString(); - } catch (Exception e) { -// MyBoxLog.debug(e); - return null; - } - } - /* Static methods */ diff --git a/alpha/MyBox/src/main/java/mara/mybox/db/data/Note.java b/alpha/MyBox/src/main/java/mara/mybox/db/data/Note.java index e5702fe8c..3ea79ef5b 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/db/data/Note.java +++ b/alpha/MyBox/src/main/java/mara/mybox/db/data/Note.java @@ -1,13 +1,16 @@ package mara.mybox.db.data; +import static mara.mybox.db.data.DataNode.ValueSeparater; import mara.mybox.dev.MyBoxLog; +import mara.mybox.tools.HtmlReadTools; +import mara.mybox.tools.JsonTools; /** * @Author Mara * @CreateDate 2024-8-2 * @License Apache License Version 2.0 */ -public class Note extends BaseData { +public class Note extends BaseTreeData { protected long noteid; protected String title, note; @@ -27,6 +30,66 @@ public Object getValue(String column) { return getValue(this, column); } + @Override + public String toText() { + if (title == null || title.isBlank()) { + if (note == null || note.isBlank()) { + return null; + } else { + return ValueSeparater + "\n" + note.trim(); + } + } else { + if (note == null || note.isBlank()) { + return title.trim() + ValueSeparater; + } else { + return title.trim() + ValueSeparater + "\n" + note.trim(); + } + } + } + + @Override + public String toXml(String prefix) { + String xml = prefix + "\n"; + if (title != null && !title.isBlank()) { + xml += prefix + prefix + "\n" + + prefix + prefix + prefix + "<![CDATA[" + title.trim() + "]]>\n" + + prefix + prefix + "\n"; + } + if (note != null && !note.isBlank()) { + xml += prefix + prefix + "\n" + + prefix + prefix + prefix + "\n" + + prefix + prefix + "\n"; + } + xml += prefix + "\n"; + return xml; + } + + @Override + public String toHtml() { + String html = ""; + if (title != null && !title.isBlank()) { + html += "

" + title.trim() + "

\n"; + } + if (note != null && !note.isBlank()) { + html += HtmlReadTools.body(note, false); + } + return html; + } + + @Override + public String toJson(String prefix) { + String json = ""; + if (title != null && !title.isBlank()) { + json += prefix + ",\n" + + prefix + "\"title\": " + JsonTools.encode(title.trim()); + } + if (note != null && !note.isBlank()) { + json += prefix + ",\n" + + prefix + "\"note\": " + JsonTools.encode(note.trim()); + } + return json; + } + /* Static methods */ @@ -75,6 +138,25 @@ public static boolean valid(Note data) { return data != null; } + public static Note fromInfo(String title, String info) { + return Note.create().setTitle(title).setNote(info); + } + + public static Note fromText(String text) { + if (text == null || text.isBlank()) { + return null; + } + if (text.startsWith(ValueSeparater)) { + return Note.create().setNote(text); + } else { + return Note.create().setNote(text); + } + } + + public static Note fromXml(String xml) { + return null; + } + /* get/set */ diff --git a/alpha/MyBox/src/main/java/mara/mybox/db/table/BaseTreeData.java b/alpha/MyBox/src/main/java/mara/mybox/db/table/BaseTableTreeData.java similarity index 63% rename from alpha/MyBox/src/main/java/mara/mybox/db/table/BaseTreeData.java rename to alpha/MyBox/src/main/java/mara/mybox/db/table/BaseTableTreeData.java index 34a679d28..a53b3bf40 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/db/table/BaseTreeData.java +++ b/alpha/MyBox/src/main/java/mara/mybox/db/table/BaseTableTreeData.java @@ -8,10 +8,16 @@ * @CreateDate 2024-8-12 * @License Apache License Version 2.0 */ -public abstract class BaseTreeData extends BaseTable { +public abstract class BaseTableTreeData extends BaseTable { + /* + abstract + */ public abstract long insertData(Connection conn, String title, String info); + /* + init + */ public boolean initTreeTables(Connection conn) { if (conn == null || tableName == null) { return false; @@ -34,19 +40,4 @@ public boolean initTreeTables(Connection conn) { } } - public boolean createTableTree(Connection conn, boolean dropExisted) { - if (conn == null || tableName == null) { - return false; - } - try { - TableDataNode tableTree = new TableDataNode(this); - tableTree.createTable(conn, dropExisted); - tableTree.createIndices(conn); - return true; - } catch (Exception e) { - MyBoxLog.debug(e); - return false; - } - } - } diff --git a/alpha/MyBox/src/main/java/mara/mybox/db/table/TableData2D.java b/alpha/MyBox/src/main/java/mara/mybox/db/table/TableData2D.java index 91b460a50..03ebf868a 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/db/table/TableData2D.java +++ b/alpha/MyBox/src/main/java/mara/mybox/db/table/TableData2D.java @@ -39,7 +39,7 @@ public boolean valid(Data2DRow data) { public Data2DRow newRow() { Data2DRow data2DRow = new Data2DRow(); for (ColumnDefinition column : columns) { - data2DRow.setColumnValue(column.getColumnName(), + data2DRow.setMapValue(column.getColumnName(), column.fromString(column.getDefaultValue(), InvalidAs.Empty)); } return data2DRow; diff --git a/alpha/MyBox/src/main/java/mara/mybox/db/table/TableDataNode.java b/alpha/MyBox/src/main/java/mara/mybox/db/table/TableDataNode.java index f21b29dae..6a46e9a9a 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/db/table/TableDataNode.java +++ b/alpha/MyBox/src/main/java/mara/mybox/db/table/TableDataNode.java @@ -22,9 +22,9 @@ */ public class TableDataNode extends BaseTable { - protected BaseTreeData dataTable; + protected BaseTableTreeData dataTable; - public TableDataNode(BaseTreeData data) { + public TableDataNode(BaseTableTreeData data) { dataTable = data; if (dataTable == null) { return; diff --git a/alpha/MyBox/src/main/java/mara/mybox/db/table/TableDataNodeTag.java b/alpha/MyBox/src/main/java/mara/mybox/db/table/TableDataNodeTag.java index 98011cdd4..909506afe 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/db/table/TableDataNodeTag.java +++ b/alpha/MyBox/src/main/java/mara/mybox/db/table/TableDataNodeTag.java @@ -20,10 +20,10 @@ */ public class TableDataNodeTag extends BaseTable { - protected BaseTreeData dataTable; + protected BaseTableTreeData dataTable; protected TableDataTag tagTable; - public TableDataNodeTag(BaseTreeData data) { + public TableDataNodeTag(BaseTableTreeData data) { if (data == null) { return; } @@ -32,7 +32,7 @@ public TableDataNodeTag(BaseTreeData data) { init(); } - public TableDataNodeTag(BaseTreeData data, TableDataTag tag) { + public TableDataNodeTag(BaseTableTreeData data, TableDataTag tag) { dataTable = data; tagTable = tag; init(); diff --git a/alpha/MyBox/src/main/java/mara/mybox/db/table/TableDataTag.java b/alpha/MyBox/src/main/java/mara/mybox/db/table/TableDataTag.java index 95e1118dc..ee215dbcb 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/db/table/TableDataTag.java +++ b/alpha/MyBox/src/main/java/mara/mybox/db/table/TableDataTag.java @@ -11,9 +11,9 @@ */ public class TableDataTag extends BaseTable { - protected BaseTreeData dataTable; + protected BaseTableTreeData dataTable; - public TableDataTag(BaseTreeData data) { + public TableDataTag(BaseTableTreeData data) { dataTable = data; if (dataTable == null) { return; diff --git a/alpha/MyBox/src/main/java/mara/mybox/db/table/TableInfo.java b/alpha/MyBox/src/main/java/mara/mybox/db/table/TableInfo.java index a1ea8a6c3..a0188748c 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/db/table/TableInfo.java +++ b/alpha/MyBox/src/main/java/mara/mybox/db/table/TableInfo.java @@ -12,7 +12,7 @@ * @CreateDate 2021-4-23 * @License Apache License Version 2.0 */ -public class TableInfo extends BaseTreeData { +public class TableInfo extends BaseTableTreeData { public TableInfo() { tableName = "Info_In_Tree"; diff --git a/alpha/MyBox/src/main/java/mara/mybox/db/table/TableMathFunction.java b/alpha/MyBox/src/main/java/mara/mybox/db/table/TableMathFunction.java index d8e890849..57be079e1 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/db/table/TableMathFunction.java +++ b/alpha/MyBox/src/main/java/mara/mybox/db/table/TableMathFunction.java @@ -13,7 +13,7 @@ * @CreateDate 2021-4-23 * @License Apache License Version 2.0 */ -public class TableMathFunction extends BaseTreeData { +public class TableMathFunction extends BaseTableTreeData { public TableMathFunction() { tableName = "Math_Function"; diff --git a/alpha/MyBox/src/main/java/mara/mybox/db/table/TableNote.java b/alpha/MyBox/src/main/java/mara/mybox/db/table/TableNote.java index 22f3537e5..dd15ec50f 100644 --- a/alpha/MyBox/src/main/java/mara/mybox/db/table/TableNote.java +++ b/alpha/MyBox/src/main/java/mara/mybox/db/table/TableNote.java @@ -12,7 +12,7 @@ * @CreateDate 2021-4-23 * @License Apache License Version 2.0 */ -public class TableNote extends BaseTreeData { +public class TableNote extends BaseTableTreeData { public TableNote() { tableName = "Note"; @@ -55,9 +55,7 @@ public boolean valid(Note data) { @Override public long insertData(Connection conn, String title, String info) { try { - Note note = new Note() - .setTitle(title) - .setNote(info); + Note note = Note.fromInfo(title, info); note = insertData(conn, note); return note.getNoteid(); } catch (Exception e) {