Skip to content

Commit e359480

Browse files
committed
Merge branch 'dev' into ms/#1438-abstracting-power-value-sources
# Conflicts: # src/main/java/edu/ie3/datamodel/io/factory/timeseries/LoadProfileFactory.java # src/main/java/edu/ie3/datamodel/io/source/LoadProfileSource.java # src/main/java/edu/ie3/datamodel/io/source/csv/CsvLoadProfileSource.java # src/main/java/edu/ie3/datamodel/io/source/sql/SqlLoadProfileSource.java # src/main/java/edu/ie3/datamodel/models/timeseries/repetitive/LoadProfileTimeSeries.java # src/main/java/edu/ie3/datamodel/models/timeseries/repetitive/RandomLoadProfileTimeSeries.java # src/test/groovy/edu/ie3/datamodel/io/source/sql/SqlLoadProfileSourceIT.groovy
2 parents f731029 + 27a206d commit e359480

File tree

11 files changed

+62
-25
lines changed

11 files changed

+62
-25
lines changed

CHANGELOG.md

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

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

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

Lines changed: 3 additions & 3 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,10 +361,10 @@ 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 {

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/source/sql/SqlLoadProfileSource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public Optional<PValue> getValue(TimeSeriesInputValue data) {
106106
getEntries(queryTime, ps -> ps.setInt(1, TimeSeriesUtils.calculateQuarterHourOfDay(time)));
107107
if (entries.isEmpty()) return Optional.empty();
108108
if (entries.size() > 1) log.warn("Retrieved more than one result value, using the first");
109-
return Optional.of(entries.stream().toList().getFirst().getValue().getValue(time, profile));
109+
return entries.stream().findFirst().map(entry -> entry.getValue().getValue(time, loadProfile));
110110
}
111111

112112
@Override

src/main/java/edu/ie3/datamodel/models/UniqueEntity.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import java.util.UUID;
1111

1212
/** Supplies every subclass with a generated UUID, making it unique */
13-
public abstract class UniqueEntity implements Entity, Serializable {
13+
public abstract class UniqueEntity implements Entity, Uniqueness, Serializable {
1414
/** Field name of {@link UniqueEntity} uuid */
1515
public static final String UUID_FIELD_NAME = "uuid";
1616

@@ -24,6 +24,7 @@ protected UniqueEntity(UUID uuid) {
2424
this.uuid = uuid == null ? UUID.randomUUID() : uuid;
2525
}
2626

27+
@Override
2728
public UUID getUuid() {
2829
return uuid;
2930
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/*
2+
* © 2025. TU Dortmund University,
3+
* Institute of Energy Systems, Energy Efficiency and Energy Economics,
4+
* Research group Distribution grid planning and operation
5+
*/
6+
package edu.ie3.datamodel.models;
7+
8+
import java.util.UUID;
9+
10+
public interface Uniqueness {
11+
12+
UUID getUuid();
13+
}

src/main/java/edu/ie3/datamodel/models/timeseries/TimeSeries.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
*/
66
package edu.ie3.datamodel.models.timeseries;
77

8-
import edu.ie3.datamodel.models.UniqueEntity;
8+
import edu.ie3.datamodel.models.Entity;
9+
import edu.ie3.datamodel.models.Uniqueness;
910
import edu.ie3.datamodel.models.timeseries.individual.TimeBasedValue;
1011
import edu.ie3.datamodel.models.value.Value;
1112
import java.time.ZonedDateTime;
@@ -19,18 +20,24 @@
1920
* @param <R> Type of the value, the time series will return
2021
*/
2122
public abstract class TimeSeries<E extends TimeSeriesEntry<V>, V extends Value, R extends Value>
22-
extends UniqueEntity {
23+
implements Entity, Uniqueness {
24+
private final UUID uuid;
2325
private final Set<E> entries;
2426

2527
protected TimeSeries(Set<E> entries) {
26-
this.entries = Collections.unmodifiableSet(entries);
28+
this(UUID.randomUUID(), entries);
2729
}
2830

2931
protected TimeSeries(UUID uuid, Set<E> entries) {
30-
super(uuid);
32+
this.uuid = uuid;
3133
this.entries = Collections.unmodifiableSet(entries);
3234
}
3335

36+
@Override
37+
public UUID getUuid() {
38+
return uuid;
39+
}
40+
3441
/**
3542
* Get the time based value for the queried time
3643
*
@@ -117,6 +124,6 @@ public int hashCode() {
117124

118125
@Override
119126
public String toString() {
120-
return "TimeSeries{" + "uuid=" + getUuid() + ", #entries=" + entries.size() + '}';
127+
return "TimeSeries{" + "#entries=" + entries.size() + '}';
121128
}
122129
}

src/main/java/edu/ie3/datamodel/models/timeseries/repetitive/BdewLoadProfileTimeSeries.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,6 @@ public int hashCode() {
4343
@Override
4444
public String toString() {
4545
return "BDEWLoadProfileTimeSeries{"
46-
+ "uuid="
47-
+ getUuid()
4846
+ "loadProfile="
4947
+ getLoadProfile()
5048
+ ", valueMapping="

src/main/java/edu/ie3/datamodel/models/timeseries/repetitive/LoadProfileTimeSeries.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public LoadProfileTimeSeries(
3838
Set<LoadProfileEntry<V>> entries,
3939
ComparableQuantity<Power> maxPower,
4040
ComparableQuantity<Energy> profileEnergyScaling) {
41-
super(UUID.randomUUID(), entries);
41+
super(entries);
4242
this.loadProfile = loadProfile;
4343
this.valueMapping =
4444
entries.stream()
@@ -114,8 +114,6 @@ public int hashCode() {
114114
@Override
115115
public String toString() {
116116
return "LoadProfileTimeSeries{"
117-
+ "uuid="
118-
+ getUuid()
119117
+ "loadProfile="
120118
+ getLoadProfile()
121119
+ ", valueMapping="

src/main/java/edu/ie3/datamodel/models/timeseries/repetitive/RandomLoadProfileTimeSeries.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,6 @@ public RandomLoadProfileTimeSeries(
2828
super(loadProfile, entries, maxPower, profileEnergyScaling);
2929
}
3030

31-
@Override
32-
public LoadProfile.RandomLoadProfile getLoadProfile() {
33-
return super.getLoadProfile();
34-
}
35-
3631
@Override
3732
public String toString() {
3833
return "Random" + super.toString();

0 commit comments

Comments
 (0)