Skip to content

Commit b6b6600

Browse files
Introducing SqlIndividualTimeSeriesMetaInformation & refactorings
1 parent be6b20b commit b6b6600

22 files changed

+120
-64
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99
### Added
1010
- SQL time series sources (`SqlTimeSeriesSource` and `SqlTimeSeriesMappingSource`) [#467](https://github.com/ie3-institute/PowerSystemDataModel/issues/467)
1111
- Graph with impedance weighted edges including facilities to create it [#440](https://github.com/ie3-institute/PowerSystemDataModel/issues/440)
12+
- Introducing SqlIndividualTimeSeriesMetaInformation which also provides sql table names [#513](https://github.com/ie3-institute/PowerSystemDataModel/issues/513)
1213

1314
### Fixed
1415
- Reduced code smells [#492](https://github.com/ie3-institute/PowerSystemDataModel/issues/492)

src/main/java/edu/ie3/datamodel/io/connectors/CsvFileConnector.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@
88
import edu.ie3.datamodel.exceptions.ConnectorException;
99
import edu.ie3.datamodel.io.IoUtil;
1010
import edu.ie3.datamodel.io.csv.*;
11-
import edu.ie3.datamodel.io.csv.timeseries.ColumnScheme;
12-
import edu.ie3.datamodel.io.csv.timeseries.IndividualTimeSeriesMetaInformation;
11+
import edu.ie3.datamodel.io.naming.DataSourceMetaInformation;
1312
import edu.ie3.datamodel.io.naming.FileNamingStrategy;
13+
import edu.ie3.datamodel.io.naming.timeseries.ColumnScheme;
14+
import edu.ie3.datamodel.io.naming.timeseries.IndividualTimeSeriesMetaInformation;
1415
import edu.ie3.datamodel.models.UniqueEntity;
1516
import edu.ie3.datamodel.models.timeseries.TimeSeries;
1617
import edu.ie3.datamodel.models.timeseries.TimeSeriesEntry;
@@ -246,7 +247,7 @@ public Optional<IndividualTimeSeriesMetaInformation> getIndividualTimeSeriesMeta
246247
return new CsvIndividualTimeSeriesMetaInformation(
247248
metaInformation, filePathWithoutEnding);
248249
})
249-
.collect(Collectors.toMap(FileNameMetaInformation::getUuid, v -> v));
250+
.collect(Collectors.toMap(DataSourceMetaInformation::getUuid, v -> v));
250251
}
251252

252253
/**
@@ -325,7 +326,7 @@ private Set<String> getIndividualTimeSeriesFilePaths() {
325326
private Optional<CsvIndividualTimeSeriesMetaInformation> buildCsvTimeSeriesMetaInformation(
326327
String filePathString, ColumnScheme... columnSchemes) {
327328
try {
328-
FileNameMetaInformation metaInformation =
329+
DataSourceMetaInformation metaInformation =
329330
fileNamingStrategy.extractTimeSeriesMetaInformation(filePathString);
330331
if (!IndividualTimeSeriesMetaInformation.class.isAssignableFrom(metaInformation.getClass())) {
331332
log.error(
@@ -456,9 +457,8 @@ public String getFullFilePath() {
456457
@Override
457458
public boolean equals(Object o) {
458459
if (this == o) return true;
459-
if (!(o instanceof CsvIndividualTimeSeriesMetaInformation)) return false;
460+
if (!(o instanceof CsvIndividualTimeSeriesMetaInformation that)) return false;
460461
if (!super.equals(o)) return false;
461-
CsvIndividualTimeSeriesMetaInformation that = (CsvIndividualTimeSeriesMetaInformation) o;
462462
return fullFilePath.equals(that.fullFilePath);
463463
}
464464

src/main/java/edu/ie3/datamodel/io/connectors/SqlConnector.java

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
*/
66
package edu.ie3.datamodel.io.connectors;
77

8+
import edu.ie3.datamodel.io.naming.timeseries.ColumnScheme;
9+
import edu.ie3.datamodel.io.naming.timeseries.IndividualTimeSeriesMetaInformation;
810
import edu.ie3.util.StringUtils;
911
import edu.ie3.util.TimeUtil;
1012
import java.sql.*;
@@ -156,4 +158,51 @@ public Map<String, String> extractFieldMap(ResultSet rs) {
156158
}
157159
return insensitiveFieldsToAttributes;
158160
}
161+
162+
/** Enhancing the {@link IndividualTimeSeriesMetaInformation} with the full path to csv file */
163+
public static class SqlIndividualTimeSeriesMetaInformation
164+
extends IndividualTimeSeriesMetaInformation {
165+
private final String tableName;
166+
167+
public SqlIndividualTimeSeriesMetaInformation(
168+
UUID uuid, ColumnScheme columnScheme, String tableName) {
169+
super(uuid, columnScheme);
170+
this.tableName = tableName;
171+
}
172+
173+
public SqlIndividualTimeSeriesMetaInformation(
174+
IndividualTimeSeriesMetaInformation metaInformation, String fullFilePath) {
175+
this(metaInformation.getUuid(), metaInformation.getColumnScheme(), fullFilePath);
176+
}
177+
178+
public String getTableName() {
179+
return tableName;
180+
}
181+
182+
@Override
183+
public boolean equals(Object o) {
184+
if (this == o) return true;
185+
if (!(o instanceof SqlIndividualTimeSeriesMetaInformation that)) return false;
186+
if (!super.equals(o)) return false;
187+
return tableName.equals(that.tableName);
188+
}
189+
190+
@Override
191+
public int hashCode() {
192+
return Objects.hash(super.hashCode(), tableName);
193+
}
194+
195+
@Override
196+
public String toString() {
197+
return "SqlIndividualTimeSeriesMetaInformation{"
198+
+ "uuid="
199+
+ getUuid()
200+
+ ", columnScheme="
201+
+ getColumnScheme()
202+
+ ", tableName='"
203+
+ tableName
204+
+ '\''
205+
+ '}';
206+
}
207+
}
159208
}

src/main/java/edu/ie3/datamodel/io/csv/FileNameMetaInformation.java renamed to src/main/java/edu/ie3/datamodel/io/naming/DataSourceMetaInformation.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@
33
* Institute of Energy Systems, Energy Efficiency and Energy Economics,
44
* Research group Distribution grid planning and operation
55
*/
6-
package edu.ie3.datamodel.io.csv;
6+
package edu.ie3.datamodel.io.naming;
77

88
import java.util.Objects;
99
import java.util.UUID;
1010

11-
/** Meta information, that can be derived from a certain file name */
12-
public abstract class FileNameMetaInformation {
11+
/** Meta information, that can be derived from a data source */
12+
public abstract class DataSourceMetaInformation {
1313
private final UUID uuid;
1414

15-
protected FileNameMetaInformation(UUID uuid) {
15+
protected DataSourceMetaInformation(UUID uuid) {
1616
this.uuid = uuid;
1717
}
1818

@@ -23,7 +23,7 @@ public UUID getUuid() {
2323
@Override
2424
public boolean equals(Object o) {
2525
if (this == o) return true;
26-
if (!(o instanceof FileNameMetaInformation that)) return false;
26+
if (!(o instanceof DataSourceMetaInformation that)) return false;
2727
return uuid.equals(that.uuid);
2828
}
2929

@@ -34,6 +34,6 @@ public int hashCode() {
3434

3535
@Override
3636
public String toString() {
37-
return "FileNameMetaInformation{" + "uuid=" + uuid + '}';
37+
return "DataSourceMetaInformation{" + "uuid=" + uuid + '}';
3838
}
3939
}

src/main/java/edu/ie3/datamodel/io/naming/EntityPersistenceNamingStrategy.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
*/
66
package edu.ie3.datamodel.io.naming;
77

8-
import edu.ie3.datamodel.io.csv.timeseries.ColumnScheme;
9-
import edu.ie3.datamodel.io.csv.timeseries.IndividualTimeSeriesMetaInformation;
10-
import edu.ie3.datamodel.io.csv.timeseries.LoadProfileTimeSeriesMetaInformation;
8+
import edu.ie3.datamodel.io.naming.timeseries.ColumnScheme;
9+
import edu.ie3.datamodel.io.naming.timeseries.IndividualTimeSeriesMetaInformation;
10+
import edu.ie3.datamodel.io.naming.timeseries.LoadProfileTimeSeriesMetaInformation;
1111
import edu.ie3.datamodel.io.source.TimeSeriesMappingSource;
1212
import edu.ie3.datamodel.models.UniqueEntity;
1313
import edu.ie3.datamodel.models.input.*;

src/main/java/edu/ie3/datamodel/io/naming/FileNamingStrategy.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
package edu.ie3.datamodel.io.naming;
77

88
import edu.ie3.datamodel.io.IoUtil;
9-
import edu.ie3.datamodel.io.csv.FileNameMetaInformation;
109
import edu.ie3.datamodel.models.UniqueEntity;
1110
import edu.ie3.datamodel.models.timeseries.TimeSeries;
1211
import edu.ie3.datamodel.models.timeseries.TimeSeriesEntry;
@@ -218,7 +217,7 @@ public Pattern getLoadProfileTimeSeriesPattern() {
218217
* @param path Path to the file
219218
* @return The meeting meta information
220219
*/
221-
public FileNameMetaInformation extractTimeSeriesMetaInformation(Path path) {
220+
public DataSourceMetaInformation extractTimeSeriesMetaInformation(Path path) {
222221
/* Extract file name from possibly fully qualified path */
223222
Path fileName = path.getFileName();
224223
if (fileName == null)
@@ -233,7 +232,7 @@ public FileNameMetaInformation extractTimeSeriesMetaInformation(Path path) {
233232
* @param fileName File name
234233
* @return The meeting meta information
235234
*/
236-
public FileNameMetaInformation extractTimeSeriesMetaInformation(String fileName) {
235+
public DataSourceMetaInformation extractTimeSeriesMetaInformation(String fileName) {
237236
/* Remove the file ending (ending limited to 255 chars, which is the max file name allowed in NTFS and ext4) */
238237
String withoutEnding = fileName.replaceAll("(?:\\.[^\\\\/\\s]{1,255}){1,2}$", "");
239238

src/main/java/edu/ie3/datamodel/io/csv/timeseries/ColumnScheme.java renamed to src/main/java/edu/ie3/datamodel/io/naming/timeseries/ColumnScheme.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Institute of Energy Systems, Energy Efficiency and Energy Economics,
44
* Research group Distribution grid planning and operation
55
*/
6-
package edu.ie3.datamodel.io.csv.timeseries;
6+
package edu.ie3.datamodel.io.naming.timeseries;
77

88
import edu.ie3.datamodel.models.value.*;
99
import edu.ie3.util.StringUtils;

src/main/java/edu/ie3/datamodel/io/csv/timeseries/IndividualTimeSeriesMetaInformation.java renamed to src/main/java/edu/ie3/datamodel/io/naming/timeseries/IndividualTimeSeriesMetaInformation.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
* Institute of Energy Systems, Energy Efficiency and Energy Economics,
44
* Research group Distribution grid planning and operation
55
*/
6-
package edu.ie3.datamodel.io.csv.timeseries;
6+
package edu.ie3.datamodel.io.naming.timeseries;
77

8-
import edu.ie3.datamodel.io.csv.FileNameMetaInformation;
8+
import edu.ie3.datamodel.io.naming.DataSourceMetaInformation;
99
import java.util.Objects;
1010
import java.util.UUID;
1111

1212
/** Specific meta information, that can be derived from a individual time series file */
13-
public class IndividualTimeSeriesMetaInformation extends FileNameMetaInformation {
13+
public class IndividualTimeSeriesMetaInformation extends DataSourceMetaInformation {
1414
private final ColumnScheme columnScheme;
1515

1616
public IndividualTimeSeriesMetaInformation(UUID uuid, ColumnScheme columnScheme) {
@@ -25,9 +25,8 @@ public ColumnScheme getColumnScheme() {
2525
@Override
2626
public boolean equals(Object o) {
2727
if (this == o) return true;
28-
if (!(o instanceof IndividualTimeSeriesMetaInformation)) return false;
28+
if (!(o instanceof IndividualTimeSeriesMetaInformation that)) return false;
2929
if (!super.equals(o)) return false;
30-
IndividualTimeSeriesMetaInformation that = (IndividualTimeSeriesMetaInformation) o;
3130
return columnScheme == that.columnScheme;
3231
}
3332

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
* Institute of Energy Systems, Energy Efficiency and Energy Economics,
44
* Research group Distribution grid planning and operation
55
*/
6-
package edu.ie3.datamodel.io.csv.timeseries;
6+
package edu.ie3.datamodel.io.naming.timeseries;
77

8-
import edu.ie3.datamodel.io.csv.FileNameMetaInformation;
8+
import edu.ie3.datamodel.io.naming.DataSourceMetaInformation;
99
import java.util.Objects;
1010
import java.util.UUID;
1111

1212
/** Specific meta information, that can be derived from a load profile time series file */
13-
public class LoadProfileTimeSeriesMetaInformation extends FileNameMetaInformation {
13+
public class LoadProfileTimeSeriesMetaInformation extends DataSourceMetaInformation {
1414
private final String profile;
1515

1616
public LoadProfileTimeSeriesMetaInformation(UUID uuid, String profile) {
@@ -25,9 +25,8 @@ public String getProfile() {
2525
@Override
2626
public boolean equals(Object o) {
2727
if (this == o) return true;
28-
if (!(o instanceof LoadProfileTimeSeriesMetaInformation)) return false;
28+
if (!(o instanceof LoadProfileTimeSeriesMetaInformation that)) return false;
2929
if (!super.equals(o)) return false;
30-
LoadProfileTimeSeriesMetaInformation that = (LoadProfileTimeSeriesMetaInformation) o;
3130
return profile.equals(that.profile);
3231
}
3332

src/main/java/edu/ie3/datamodel/io/source/TimeSeriesMappingSource.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
*/
66
package edu.ie3.datamodel.io.source;
77

8-
import edu.ie3.datamodel.io.csv.timeseries.IndividualTimeSeriesMetaInformation;
8+
import edu.ie3.datamodel.io.naming.timeseries.IndividualTimeSeriesMetaInformation;
99
import edu.ie3.datamodel.models.input.InputEntity;
1010
import java.util.Map;
1111
import java.util.Objects;
@@ -64,9 +64,8 @@ public UUID getTimeSeries() {
6464
@Override
6565
public boolean equals(Object o) {
6666
if (this == o) return true;
67-
if (!(o instanceof MappingEntry)) return false;
67+
if (!(o instanceof MappingEntry that)) return false;
6868
if (!super.equals(o)) return false;
69-
MappingEntry that = (MappingEntry) o;
7069
return participant.equals(that.participant) && timeSeries.equals(that.timeSeries);
7170
}
7271

0 commit comments

Comments
 (0)