Skip to content

Commit 3ec97c8

Browse files
committed
Change TimeSeries to no longer extend UniqueEntity
1 parent aa5c2ea commit 3ec97c8

20 files changed

+87
-63
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2020
- Updated CI-Pipeline to run task `Deploy` and `Staging` only for `Main` [#1403](https://github.com/ie3-institute/PowerSystemDataModel/issues/1403)
2121
- Extend `GermanVoltageLevelUtils` with more synonymousIds [#143](https://github.com/ie3-institute/PowerSystemDataModel/issues/143)
2222
- Change spotless to use googleJavaFormat('1.28.0') [#1409](https://github.com/ie3-institute/PowerSystemDataModel/issues/1409)
23+
- Change `TimeSeries` to no longer extend `UniqueEntity` [#1441](https://github.com/ie3-institute/PowerSystemDataModel/issues/1441)
2324

2425
## [8.1.0] - 2025-07-25
2526

src/main/java/edu/ie3/datamodel/io/factory/timeseries/BdewLoadProfileFactory.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,7 @@ public BdewLoadProfileTimeSeries build(
7676
ComparableQuantity<Power> maxPower = calculateMaxPower(profile, entries);
7777
ComparableQuantity<Energy> profileEnergyScaling = getLoadProfileEnergyScaling(profile);
7878

79-
return new BdewLoadProfileTimeSeries(
80-
metaInformation.getUuid(), profile, entries, maxPower, profileEnergyScaling);
79+
return new BdewLoadProfileTimeSeries(profile, entries, maxPower, profileEnergyScaling);
8180
}
8281

8382
@Override

src/main/java/edu/ie3/datamodel/io/factory/timeseries/LoadProfileFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
* @param <P> type of load profile
2525
* @param <V> type of load values
2626
*/
27-
public abstract class LoadProfileFactory<P extends LoadProfile, V extends LoadValues>
27+
public abstract class LoadProfileFactory<P extends LoadProfile, V extends LoadValues<P>>
2828
extends Factory<V, LoadProfileData<V>, LoadProfileEntry<V>> {
2929
protected static final String QUARTER_HOUR = "quarterHour";
3030

@@ -37,7 +37,7 @@ protected LoadProfileFactory(Class<? extends V>... valueClass) {
3737
super(valueClass);
3838
}
3939

40-
public abstract LoadProfileTimeSeries<V> build(
40+
public abstract LoadProfileTimeSeries<P, V> build(
4141
LoadProfileMetaInformation metaInformation, Set<LoadProfileEntry<V>> entries);
4242

4343
public abstract P parseProfile(String profile);

src/main/java/edu/ie3/datamodel/io/factory/timeseries/RandomLoadProfileFactory.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,7 @@ public RandomLoadProfileTimeSeries build(
7979
ComparableQuantity<Power> maxPower = calculateMaxPower(profile, entries);
8080
ComparableQuantity<Energy> profileEnergyScaling = getLoadProfileEnergyScaling(profile);
8181

82-
return new RandomLoadProfileTimeSeries(
83-
metaInformation.getUuid(), profile, entries, maxPower, profileEnergyScaling);
82+
return new RandomLoadProfileTimeSeries(profile, entries, maxPower, profileEnergyScaling);
8483
}
8584

8685
@Override

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ Optional<String> getEntityName(T timeSeries) {
9797
logger.error("Unable to determine content of time series {}", timeSeries);
9898
return Optional.empty();
9999
}
100-
} else if (timeSeries instanceof LoadProfileTimeSeries<?>) {
100+
} else if (timeSeries instanceof LoadProfileTimeSeries<?, ?>) {
101101
return Optional.of(getLoadProfileEntityName());
102102
} else {
103103
logger.error("There is no naming strategy defined for {}", timeSeries);

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ public Optional<String> getTimeSeriesMappingEntityName() {
349349
V extends Value,
350350
R extends Value>
351351
Optional<String> getEntityName(T timeSeries) {
352-
if (timeSeries instanceof IndividualTimeSeries) {
352+
if (timeSeries instanceof IndividualTimeSeries<?> its) {
353353
Optional<E> maybeFirstElement = timeSeries.getEntries().stream().findFirst();
354354
if (maybeFirstElement.isPresent()) {
355355
Class<? extends Value> valueClass = maybeFirstElement.get().getValue().getClass();
@@ -361,17 +361,17 @@ Optional<String> getEntityName(T timeSeries) {
361361
.concat("_")
362362
.concat(mayBeColumnScheme.get().getScheme())
363363
.concat("_")
364-
.concat(timeSeries.getUuid().toString())
364+
.concat(its.getUuid().toString())
365365
.concat(suffix));
366366
} else {
367-
logger.error("Unsupported content of time series {}", timeSeries);
367+
logger.error("Unsupported content of time series {}", its);
368368
return Optional.empty();
369369
}
370370
} else {
371371
logger.error("Unable to determine content of time series {}", timeSeries);
372372
return Optional.empty();
373373
}
374-
} else if (timeSeries instanceof LoadProfileTimeSeries<?> loadProfileTimeSeries) {
374+
} else if (timeSeries instanceof LoadProfileTimeSeries<?, ?> loadProfileTimeSeries) {
375375
return Optional.of(
376376
prefix
377377
.concat("lpts")

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

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

8-
import edu.ie3.datamodel.models.input.UniqueInputEntity;
8+
import edu.ie3.datamodel.models.Entity;
9+
import edu.ie3.datamodel.models.Uniqueness;
10+
import java.util.Objects;
911
import java.util.UUID;
1012

1113
/** Meta information, that describe a certain data source */
12-
public abstract class TimeSeriesMetaInformation extends UniqueInputEntity {
14+
public abstract class TimeSeriesMetaInformation implements Entity, Uniqueness {
15+
private final UUID uuid;
1316

1417
protected TimeSeriesMetaInformation(UUID uuid) {
15-
super(uuid);
18+
this.uuid = uuid;
19+
}
20+
21+
public UUID getUuid() {
22+
return uuid;
23+
}
24+
25+
@Override
26+
public boolean equals(Object o) {
27+
if (o == null || getClass() != o.getClass()) return false;
28+
TimeSeriesMetaInformation that = (TimeSeriesMetaInformation) o;
29+
return Objects.equals(uuid, that.uuid);
30+
}
31+
32+
@Override
33+
public int hashCode() {
34+
return Objects.hashCode(uuid);
35+
}
36+
37+
@Override
38+
public String toString() {
39+
return "TimeSeriesMetaInformation{" + "uuid=" + uuid + '}';
1640
}
1741
}

src/main/java/edu/ie3/datamodel/io/sink/SqlSink.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ private <E extends TimeSeriesEntry<V>, V extends Value, R extends Value> void pe
251251
TriFunction<String, String, String[], String> queryBuilder;
252252
String timeSeriesIdentifier;
253253

254-
if (timeSeries instanceof LoadProfileTimeSeries<?> lpts) {
254+
if (timeSeries instanceof LoadProfileTimeSeries<?, ?> lpts) {
255255
timeSeriesIdentifier = lpts.getLoadProfile().getKey();
256256
queryBuilder = this::basicInsertQueryValuesLPTS;
257257
} else {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ protected Try<LoadProfileEntry<V>, FactoryException> createEntries(
6060
return entryFactory.get(factoryData);
6161
}
6262

63-
public abstract LoadProfileTimeSeries<V> getTimeSeries();
63+
public abstract LoadProfileTimeSeries<P, V> getTimeSeries();
6464

6565
/**
6666
* Method to return all time keys after a given timestamp.

src/main/java/edu/ie3/datamodel/io/source/csv/CsvLoadProfileSource.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
*/
3232
public class CsvLoadProfileSource<P extends LoadProfile, V extends LoadValues<P>>
3333
extends LoadProfileSource<P, V> {
34-
private final LoadProfileTimeSeries<V> loadProfileTimeSeries;
34+
private final LoadProfileTimeSeries<P, V> loadProfileTimeSeries;
3535
private final CsvDataSource dataSource;
3636
private final Path filePath;
3737

@@ -62,7 +62,7 @@ public void validate() throws ValidationException {
6262
}
6363

6464
@Override
65-
public LoadProfileTimeSeries<V> getTimeSeries() {
65+
public LoadProfileTimeSeries<P, V> getTimeSeries() {
6666
return loadProfileTimeSeries;
6767
}
6868

@@ -77,9 +77,8 @@ public Optional<PValue> getValue(ZonedDateTime time) throws SourceException {
7777
}
7878

7979
@Override
80-
@SuppressWarnings("unchecked")
8180
public P getLoadProfile() {
82-
return (P) getTimeSeries().getLoadProfile();
81+
return getTimeSeries().getLoadProfile();
8382
}
8483

8584
@Override
@@ -106,7 +105,7 @@ public Optional<ComparableQuantity<Energy>> getLoadProfileEnergyScaling() {
106105
* @throws SourceException If the file cannot be read properly
107106
* @return an individual time series
108107
*/
109-
protected LoadProfileTimeSeries<V> buildLoadProfileTimeSeries(
108+
protected LoadProfileTimeSeries<P, V> buildLoadProfileTimeSeries(
110109
CsvLoadProfileMetaInformation metaInformation,
111110
Function<Map<String, String>, Try<LoadProfileEntry<V>, FactoryException>>
112111
fieldToValueFunction)

0 commit comments

Comments
 (0)