Skip to content

Commit 5ec4fa4

Browse files
Merge branch 'dev' into df/#1352-air-condition-input
2 parents db84c58 + 14e5276 commit 5ec4fa4

21 files changed

+89
-65
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

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ plugins {
44
id 'maven-publish'
55
id 'signing'
66
id 'pmd' // code check, working on source code
7-
id 'com.diffplug.spotless' version '7.2.1' //code format
7+
id 'com.diffplug.spotless' version '8.0.0' //code format
88
id 'com.github.spotbugs' version '6.4.2' // code check, working on byte code
99
id 'de.undercouch.download' version '5.6.0'
1010
id 'kr.motd.sphinx' version '2.10.1' // documentation generation
@@ -92,7 +92,7 @@ dependencies {
9292
testImplementation "org.testcontainers:couchbase:$testcontainersVersion"
9393

9494
// logging
95-
implementation platform('org.apache.logging.log4j:log4j-bom:2.25.1')
95+
implementation platform('org.apache.logging.log4j:log4j-bom:2.25.2')
9696
implementation 'org.apache.logging.log4j:log4j-api' // log4j
9797
implementation 'org.apache.logging.log4j:log4j-core' // log4j
9898
implementation 'org.apache.logging.log4j:log4j-slf4j-impl' // log4j -> slf4j

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.

0 commit comments

Comments
 (0)