Skip to content

Commit 934600c

Browse files
Merge pull request #1193 from ie3-institute/ms/#1191-renaming-timeseries-mapping-participant-column
Renamed timeseries mapping `participant` column to `asset`.
2 parents ac219ba + 5ec081c commit 934600c

File tree

9 files changed

+53
-46
lines changed

9 files changed

+53
-46
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1818
- Improving usage of streams on sql fetches [#827](https://github.com/ie3-institute/PowerSystemDataModel/issues/827)
1919
- Improving error message when using the outdated csv format [#1112](https://github.com/ie3-institute/PowerSystemDataModel/issues/1112)
2020
- Changed ThermalUnitValidation: Ensure that thermal boundaries of thermal house are not the same [#1186](https://github.com/ie3-institute/PowerSystemDataModel/issues/1186)
21+
- Converted `MappingEntry` into a normal class [#1087](https://github.com/ie3-institute/PowerSystemDataModel/issues/1087)
22+
- Renamed timeseries mapping `participant` column to `asset` [#1191](https://github.com/ie3-institute/PowerSystemDataModel/issues/1191)
2123

2224
## [5.1.0] - 2024-06-24
2325

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

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,13 @@
88
import edu.ie3.datamodel.io.factory.EntityData;
99
import edu.ie3.datamodel.io.factory.EntityFactory;
1010
import edu.ie3.datamodel.io.source.TimeSeriesMappingSource;
11-
import java.util.Collections;
1211
import java.util.List;
1312
import java.util.Set;
1413
import java.util.UUID;
15-
import java.util.stream.Collectors;
16-
import java.util.stream.Stream;
1714

1815
public class TimeSeriesMappingFactory
1916
extends EntityFactory<TimeSeriesMappingSource.MappingEntry, EntityData> {
20-
private static final String PARTICIPANT = "participant";
17+
private static final String ASSET = "asset";
2118
private static final String TIME_SERIES = "timeSeries";
2219

2320
public TimeSeriesMappingFactory() {
@@ -26,14 +23,13 @@ public TimeSeriesMappingFactory() {
2623

2724
@Override
2825
protected List<Set<String>> getFields(Class<?> entityClass) {
29-
return Collections.singletonList(
30-
Stream.of(PARTICIPANT, TIME_SERIES).collect(Collectors.toSet()));
26+
return List.of(newSet(ASSET, TIME_SERIES));
3127
}
3228

3329
@Override
3430
protected TimeSeriesMappingSource.MappingEntry buildModel(EntityData data) {
35-
UUID participant = data.getUUID(PARTICIPANT);
31+
UUID asset = data.getUUID(ASSET);
3632
UUID timeSeries = data.getUUID(TIME_SERIES);
37-
return new TimeSeriesMappingSource.MappingEntry(participant, timeSeries);
33+
return new TimeSeriesMappingSource.MappingEntry(asset, timeSeries);
3834
}
3935
}

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

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import edu.ie3.datamodel.io.factory.EntityData;
1212
import edu.ie3.datamodel.io.factory.timeseries.TimeSeriesMappingFactory;
1313
import edu.ie3.datamodel.models.input.InputEntity;
14-
import edu.ie3.datamodel.models.input.system.SystemParticipantInput;
1514
import edu.ie3.datamodel.models.timeseries.TimeSeries;
1615
import edu.ie3.datamodel.utils.Try;
1716
import edu.ie3.datamodel.utils.Try.*;
@@ -47,7 +46,7 @@ public Map<UUID, UUID> getMapping() throws SourceException {
4746
.filter(Try::isSuccess)
4847
.map(t -> (Success<MappingEntry, FactoryException>) t)
4948
.map(Success::get)
50-
.collect(Collectors.toMap(MappingEntry::participant, MappingEntry::timeSeries));
49+
.collect(Collectors.toMap(MappingEntry::getAsset, MappingEntry::getTimeSeries));
5150
}
5251

5352
/**
@@ -80,12 +79,19 @@ private Try<MappingEntry, FactoryException> createMappingEntry(
8079

8180
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
8281

83-
/** Class to represent one entry within the participant to time series mapping */
84-
public record MappingEntry(UUID participant, UUID timeSeries) implements InputEntity {
82+
/** Class to represent one entry within the asset to time series mapping */
83+
public static class MappingEntry implements InputEntity {
84+
private final UUID asset;
85+
private final UUID timeSeries;
8586

86-
/** Returns the {@link UUID} of the {@link SystemParticipantInput}. */
87-
public UUID getParticipant() {
88-
return participant;
87+
public MappingEntry(UUID asset, UUID timeSeries) {
88+
this.asset = asset;
89+
this.timeSeries = timeSeries;
90+
}
91+
92+
/** Returns the {@link UUID} of the {@link edu.ie3.datamodel.models.input.AssetInput}. */
93+
public UUID getAsset() {
94+
return asset;
8995
}
9096

9197
/** Returns the {@link UUID} of the {@link TimeSeries}. */
@@ -97,17 +103,17 @@ public UUID getTimeSeries() {
97103
public boolean equals(Object o) {
98104
if (this == o) return true;
99105
if (!(o instanceof MappingEntry that)) return false;
100-
return participant.equals(that.participant) && timeSeries.equals(that.timeSeries);
106+
return asset.equals(that.asset) && timeSeries.equals(that.timeSeries);
101107
}
102108

103109
@Override
104110
public int hashCode() {
105-
return Objects.hash(participant, timeSeries);
111+
return Objects.hash(asset, timeSeries);
106112
}
107113

108114
@Override
109115
public String toString() {
110-
return "MappingEntry{" + "participant=" + participant + ", timeSeries=" + timeSeries + '}';
116+
return "MappingEntry{" + "asset=" + asset + ", timeSeries=" + timeSeries + '}';
111117
}
112118
}
113119
}

src/main/java/edu/ie3/datamodel/utils/validation/UniquenessValidationUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public class UniquenessValidationUtils extends ValidationUtils {
3333
protected static final FieldSetSupplier<CongestionResult> congestionResultFieldSupplier =
3434
entity -> Set.of(entity.getTime(), entity.getSubgrid());
3535
protected static final FieldSetSupplier<MappingEntry> mappingFieldSupplier =
36-
entity -> Set.of(entity.participant());
36+
entity -> Set.of(entity.getAsset());
3737
protected static final FieldSetSupplier<IdCoordinateInput> idCoordinateSupplier =
3838
entity -> Set.of(entity.id(), entity.point());
3939
protected static final FieldSetSupplier<TimeBasedValue<WeatherValue>> weatherValueFieldSupplier =

src/test/groovy/edu/ie3/datamodel/io/processor/input/InputEntityProcessorTest.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,7 @@ class InputEntityProcessorTest extends Specification {
630630
def validResult = new TimeSeriesMappingSource.MappingEntry(UUID.fromString("7eb7b296-f4c4-4020-acf3-e865453b5dbd"), UUID.fromString("bc581c6c-3044-48a1-aea1-5b2cb1370356"))
631631

632632
Map expectedResults = [
633-
"participant": "7eb7b296-f4c4-4020-acf3-e865453b5dbd",
633+
"asset": "7eb7b296-f4c4-4020-acf3-e865453b5dbd",
634634
"timeSeries": "bc581c6c-3044-48a1-aea1-5b2cb1370356"
635635
]
636636

src/test/groovy/edu/ie3/datamodel/io/source/csv/CsvTimeSeriesMappingSourceIT.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ class CsvTimeSeriesMappingSourceIT extends Specification implements CsvTestDataM
2323
def expectedMapping = [
2424
(UUID.fromString("b86e95b0-e579-4a80-a534-37c7a470a409")) : UUID.fromString("9185b8c1-86ba-4a16-8dea-5ac898e8caa5"),
2525
(UUID.fromString("c7ebcc6c-55fc-479b-aa6b-6fa82ccac6b8")) : UUID.fromString("3fbfaa97-cff4-46d4-95ba-a95665e87c26"),
26-
(UUID.fromString("90a96daa-012b-4fea-82dc-24ba7a7ab81c")) : UUID.fromString("3fbfaa97-cff4-46d4-95ba-a95665e87c26")
26+
(UUID.fromString("90a96daa-012b-4fea-82dc-24ba7a7ab81c")) : UUID.fromString("3fbfaa97-cff4-46d4-95ba-a95665e87c26"),
27+
(UUID.fromString("7bed7760-c220-4fe6-88b3-47b246f6ef3f")) : UUID.fromString("eeccbe3c-a47e-448e-8eca-1f369d3c24e6")
2728
]
2829

2930
when:

src/test/groovy/edu/ie3/datamodel/utils/validation/UniquenessValidationUtilsTest.groovy

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import edu.ie3.datamodel.models.value.SolarIrradianceValue
2323
import edu.ie3.datamodel.models.value.TemperatureValue
2424
import edu.ie3.datamodel.models.value.WeatherValue
2525
import edu.ie3.datamodel.models.value.WindValue
26+
import edu.ie3.datamodel.utils.Try
2627
import edu.ie3.util.geo.GeoUtils
2728
import spock.lang.Specification
2829
import tech.units.indriya.quantity.Quantities
@@ -183,29 +184,30 @@ class UniquenessValidationUtilsTest extends Specification {
183184
given:
184185
UUID participant = UUID.fromString("1f25eea2-20eb-4b6b-8f05-bdbb0e851e65")
185186

186-
Set<TimeSeriesMappingSource.MappingEntry> uniqueEntries = [
187+
Set<TimeSeriesMappingSource.MappingEntry> uniqueEntityEntries = [
187188
new TimeSeriesMappingSource.MappingEntry(participant, UUID.randomUUID()),
188189
new TimeSeriesMappingSource.MappingEntry(participant, UUID.randomUUID()),
189190
]
190191

191192
when:
192-
checkMappingEntryUniqueness(uniqueEntries)
193+
def entityDuplicate = Try.ofVoid(() -> checkMappingEntryUniqueness(uniqueEntityEntries), DuplicateEntitiesException)
193194

194195
then:
195-
DuplicateEntitiesException de = thrown()
196-
de.message == "'MappingEntry' entities with duplicated UUID key, but different field values found! " +
197-
"Affected primary keys: [1f25eea2-20eb-4b6b-8f05-bdbb0e851e65]"
196+
197+
entityDuplicate.failure
198+
entityDuplicate.exception.get().message == "'MappingEntry' entities with duplicated UUID key, but different field values found! " +
199+
"Affected primary keys: [1f25eea2-20eb-4b6b-8f05-bdbb0e851e65]"
198200
}
199201

200202
def "Checking if time based weather values are unique"() {
201203
given:
202204
ZonedDateTime time = ZonedDateTime.now()
203205
WeatherValue value = new WeatherValue(
204-
GeoUtils.buildPoint(50d, 7d),
205-
new SolarIrradianceValue(Quantities.getQuantity(10d, StandardUnits.SOLAR_IRRADIANCE), Quantities.getQuantity(10d, StandardUnits.SOLAR_IRRADIANCE)),
206-
new TemperatureValue(Quantities.getQuantity(5d, Units.CELSIUS)),
207-
new WindValue(Quantities.getQuantity(5d, DEGREE_GEOM), Quantities.getQuantity(10d, METRE_PER_SECOND))
208-
)
206+
GeoUtils.buildPoint(50d, 7d),
207+
new SolarIrradianceValue(Quantities.getQuantity(10d, StandardUnits.SOLAR_IRRADIANCE), Quantities.getQuantity(10d, StandardUnits.SOLAR_IRRADIANCE)),
208+
new TemperatureValue(Quantities.getQuantity(5d, Units.CELSIUS)),
209+
new WindValue(Quantities.getQuantity(5d, DEGREE_GEOM), Quantities.getQuantity(10d, METRE_PER_SECOND))
210+
)
209211

210212
Set<TimeBasedValue<WeatherValue>> uniqueValues = [
211213
new TimeBasedValue<WeatherValue>(time, value),
@@ -223,11 +225,11 @@ class UniquenessValidationUtilsTest extends Specification {
223225
given:
224226
ZonedDateTime time = ZonedDateTime.now()
225227
WeatherValue value = new WeatherValue(
226-
GeoUtils.buildPoint(50d, 7d),
227-
new SolarIrradianceValue(Quantities.getQuantity(10d, StandardUnits.SOLAR_IRRADIANCE), Quantities.getQuantity(10d, StandardUnits.SOLAR_IRRADIANCE)),
228-
new TemperatureValue(Quantities.getQuantity(5d, Units.CELSIUS)),
229-
new WindValue(Quantities.getQuantity(5d, DEGREE_GEOM), Quantities.getQuantity(10d, METRE_PER_SECOND))
230-
)
228+
GeoUtils.buildPoint(50d, 7d),
229+
new SolarIrradianceValue(Quantities.getQuantity(10d, StandardUnits.SOLAR_IRRADIANCE), Quantities.getQuantity(10d, StandardUnits.SOLAR_IRRADIANCE)),
230+
new TemperatureValue(Quantities.getQuantity(5d, Units.CELSIUS)),
231+
new WindValue(Quantities.getQuantity(5d, DEGREE_GEOM), Quantities.getQuantity(10d, METRE_PER_SECOND))
232+
)
231233
Set<TimeBasedValue<WeatherValue>> notUniqueValues = [
232234
new TimeBasedValue<WeatherValue>(time, value),
233235
new TimeBasedValue<WeatherValue>(time, value)
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
"uuid";"participant";"time_series"
2-
"58167015-d760-4f90-8109-f2ebd94cda91";"b86e95b0-e579-4a80-a534-37c7a470a409";"9185b8c1-86ba-4a16-8dea-5ac898e8caa5"
3-
"9a9ebfda-dc26-4a40-b9ca-25cd42f6cc3f";"c7ebcc6c-55fc-479b-aa6b-6fa82ccac6b8";"3fbfaa97-cff4-46d4-95ba-a95665e87c26"
4-
"9c1c53ea-e575-41a2-a373-a8b2d3ed2c39";"90a96daa-012b-4fea-82dc-24ba7a7ab81c";"3fbfaa97-cff4-46d4-95ba-a95665e87c26"
1+
"asset";"time_series"
2+
"b86e95b0-e579-4a80-a534-37c7a470a409";"9185b8c1-86ba-4a16-8dea-5ac898e8caa5"
3+
"c7ebcc6c-55fc-479b-aa6b-6fa82ccac6b8";"3fbfaa97-cff4-46d4-95ba-a95665e87c26"
4+
"90a96daa-012b-4fea-82dc-24ba7a7ab81c";"3fbfaa97-cff4-46d4-95ba-a95665e87c26"
5+
"7bed7760-c220-4fe6-88b3-47b246f6ef3f";"eeccbe3c-a47e-448e-8eca-1f369d3c24e6"
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
CREATE TABLE public.time_series_mapping
22
(
3-
uuid uuid PRIMARY KEY,
4-
participant uuid,
3+
asset uuid PRIMARY KEY,
54
time_series uuid
65
)
76
WITHOUT OIDS
87
TABLESPACE pg_default;
98

109
INSERT INTO
11-
public.time_series_mapping (uuid, participant, time_series)
10+
public.time_series_mapping (asset, time_series)
1211
VALUES
13-
('58167015-d760-4f90-8109-f2ebd94cda91', 'b86e95b0-e579-4a80-a534-37c7a470a409', '9185b8c1-86ba-4a16-8dea-5ac898e8caa5'),
14-
('9a9ebfda-dc26-4a40-b9ca-25cd42f6cc3f', 'c7ebcc6c-55fc-479b-aa6b-6fa82ccac6b8', '3fbfaa97-cff4-46d4-95ba-a95665e87c26'),
15-
('9c1c53ea-e575-41a2-a373-a8b2d3ed2c39', '90a96daa-012b-4fea-82dc-24ba7a7ab81c', '3fbfaa97-cff4-46d4-95ba-a95665e87c26');
12+
('b86e95b0-e579-4a80-a534-37c7a470a409', '9185b8c1-86ba-4a16-8dea-5ac898e8caa5'),
13+
('c7ebcc6c-55fc-479b-aa6b-6fa82ccac6b8', '3fbfaa97-cff4-46d4-95ba-a95665e87c26'),
14+
('90a96daa-012b-4fea-82dc-24ba7a7ab81c', '3fbfaa97-cff4-46d4-95ba-a95665e87c26');

0 commit comments

Comments
 (0)