Skip to content

Commit dd6b111

Browse files
committed
Small improvements to IdCoordinateInput.
1 parent 79cc8a7 commit dd6b111

File tree

14 files changed

+72
-92
lines changed

14 files changed

+72
-92
lines changed

docs/readthedocs/io/ValidationUtils.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ The ValidationUtils include validation checks for...
6565
- PvInput
6666
- StorageInput
6767
- WecInput
68-
- EvcsInput (also checks EvcsTypeInput/ChargingPointType)
68+
- EvcsInput (also checks ChargingPointType)
6969
- SystemParticipantTypeInput
7070
- BmTypeInput
7171
- ChpTypeInput

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

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

88
import edu.ie3.datamodel.io.factory.SimpleFactoryData;
9-
import edu.ie3.datamodel.models.input.IdCoordinatePair;
9+
import edu.ie3.datamodel.models.input.IdCoordinateInput;
1010
import java.util.Collections;
1111
import java.util.List;
1212
import java.util.Set;
@@ -24,11 +24,11 @@ public class CosmoIdCoordinateFactory extends IdCoordinateFactory {
2424
private static final String LAT_ROT = "latRot";
2525

2626
@Override
27-
protected IdCoordinatePair buildModel(SimpleFactoryData data) {
27+
protected IdCoordinateInput buildModel(SimpleFactoryData data) {
2828
int coordinateId = data.getInt(COORDINATE_ID);
2929
double lat = data.getDouble(LAT_GEO);
3030
double lon = data.getDouble(LONG_GEO);
31-
return IdCoordinatePair.of(coordinateId, lat, lon);
31+
return new IdCoordinateInput(coordinateId, lat, lon);
3232
}
3333

3434
@Override

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

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

88
import edu.ie3.datamodel.io.factory.SimpleFactoryData;
9-
import edu.ie3.datamodel.models.input.IdCoordinatePair;
9+
import edu.ie3.datamodel.models.input.IdCoordinateInput;
1010
import java.util.Collections;
1111
import java.util.List;
1212
import java.util.Set;
@@ -22,11 +22,11 @@ public class IconIdCoordinateFactory extends IdCoordinateFactory {
2222
private static final String TYPE = "coordinateType";
2323

2424
@Override
25-
protected IdCoordinatePair buildModel(SimpleFactoryData data) {
25+
protected IdCoordinateInput buildModel(SimpleFactoryData data) {
2626
int coordinateId = data.getInt(COORDINATE_ID);
2727
double lat = data.getDouble(LAT);
2828
double lon = data.getDouble(LONG);
29-
return IdCoordinatePair.of(coordinateId, lat, lon);
29+
return new IdCoordinateInput(coordinateId, lat, lon);
3030
}
3131

3232
@Override

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@
77

88
import edu.ie3.datamodel.io.factory.Factory;
99
import edu.ie3.datamodel.io.factory.SimpleFactoryData;
10-
import edu.ie3.datamodel.models.input.IdCoordinatePair;
10+
import edu.ie3.datamodel.models.input.IdCoordinateInput;
1111

1212
/**
1313
* Abstract class definition for a factory, that is able to build single mapping entries from
1414
* coordinate identifier to actual coordinate
1515
*/
1616
public abstract class IdCoordinateFactory
17-
extends Factory<IdCoordinatePair, SimpleFactoryData, IdCoordinatePair> {
17+
extends Factory<IdCoordinateInput, SimpleFactoryData, IdCoordinateInput> {
1818
protected IdCoordinateFactory() {
19-
super(IdCoordinatePair.class);
19+
super(IdCoordinateInput.class);
2020
}
2121

2222
/** @return the field id for the coordinate id */

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import edu.ie3.datamodel.exceptions.FactoryException;
99
import edu.ie3.datamodel.io.factory.SimpleFactoryData;
10-
import edu.ie3.datamodel.models.input.IdCoordinatePair;
10+
import edu.ie3.datamodel.models.input.IdCoordinateInput;
1111
import edu.ie3.util.geo.GeoUtils;
1212
import java.util.Collections;
1313
import java.util.List;
@@ -23,15 +23,15 @@ public class SqlIdCoordinateFactory extends IdCoordinateFactory {
2323
private final WKBReader reader = new WKBReader();
2424

2525
@Override
26-
protected IdCoordinatePair buildModel(SimpleFactoryData data) {
26+
protected IdCoordinateInput buildModel(SimpleFactoryData data) {
2727
try {
2828
int coordinateId = data.getInt(COORDINATE_ID);
2929
byte[] byteArr = WKBReader.hexToBytes(data.getField(COORDINATE));
3030

3131
Coordinate coordinate = reader.read(byteArr).getCoordinate();
3232

3333
Point point = GeoUtils.buildPoint(coordinate);
34-
return IdCoordinatePair.of(coordinateId, point);
34+
return new IdCoordinateInput(coordinateId, point);
3535

3636
} catch (ParseException e) {
3737
throw new FactoryException(e);

src/main/java/edu/ie3/datamodel/io/processor/input/InputEntityProcessor.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public class InputEntityProcessor extends EntityProcessor<InputEntity> {
3737
OperatorInput.class,
3838
RandomLoadParameters.class,
3939
TimeSeriesMappingSource.MappingEntry.class,
40+
IdCoordinateInput.class,
4041
/* - AssetInput */
4142
NodeInput.class,
4243
LineInput.class,

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import edu.ie3.datamodel.io.factory.SimpleFactoryData;
1212
import edu.ie3.datamodel.io.factory.timeseries.IdCoordinateFactory;
1313
import edu.ie3.datamodel.io.source.IdCoordinateSource;
14-
import edu.ie3.datamodel.models.input.IdCoordinatePair;
14+
import edu.ie3.datamodel.models.input.IdCoordinateInput;
1515
import edu.ie3.datamodel.utils.Try;
1616
import edu.ie3.datamodel.utils.Try.*;
1717
import edu.ie3.datamodel.utils.validation.UniquenessValidationUtils;
@@ -24,7 +24,6 @@
2424
import java.util.stream.Collectors;
2525
import java.util.stream.Stream;
2626
import javax.measure.quantity.Length;
27-
import org.apache.commons.lang3.tuple.Pair;
2827
import org.locationtech.jts.geom.Envelope;
2928
import org.locationtech.jts.geom.Point;
3029
import org.slf4j.Logger;
@@ -65,13 +64,13 @@ public CsvIdCoordinateSource(IdCoordinateFactory factory, CsvDataSource dataSour
6564
* @return Mapping from coordinate id to coordinate
6665
*/
6766
private Map<Integer, Point> setupIdToCoordinateMap() throws SourceException {
68-
List<IdCoordinatePair> pairs =
67+
List<IdCoordinateInput> idCoordinates =
6968
buildStreamWithFieldsToAttributesMap()
7069
.map(
7170
data ->
7271
data.map(
7372
fieldToValues ->
74-
new SimpleFactoryData(fieldToValues, IdCoordinatePair.class))
73+
new SimpleFactoryData(fieldToValues, IdCoordinateInput.class))
7574
.map(factory::get))
7675
.flatMap(
7776
s -> Try.scanStream(s, "Pair<Integer, Point>").transformF(SourceException::new))
@@ -80,12 +79,13 @@ private Map<Integer, Point> setupIdToCoordinateMap() throws SourceException {
8079

8180
try {
8281
// check the uniqueness of the source
83-
UniquenessValidationUtils.checkIdCoordinateUniqueness(pairs);
82+
UniquenessValidationUtils.checkIdCoordinateUniqueness(idCoordinates);
8483
} catch (DuplicateEntitiesException de) {
8584
throw new SourceException("Due to: ", de);
8685
}
8786

88-
return pairs.stream().collect(Collectors.toMap(Pair::getKey, Pair::getValue));
87+
return idCoordinates.stream()
88+
.collect(Collectors.toMap(IdCoordinateInput::id, IdCoordinateInput::point));
8989
}
9090

9191
/**
@@ -187,7 +187,7 @@ public int getCoordinateCount() {
187187
final String[] headline = dataSource.parseCsvRow(reader.readLine(), dataSource.csvSep);
188188

189189
// validating read file
190-
factory.validate(Set.of(headline), IdCoordinatePair.class).getOrThrow();
190+
factory.validate(Set.of(headline), IdCoordinateInput.class).getOrThrow();
191191

192192
// by default try-with-resources closes the reader directly when we leave this method (which
193193
// is wanted to avoid a lock on the file), but this causes a closing of the stream as well.

src/main/java/edu/ie3/datamodel/io/source/sql/SqlIdCoordinateSource.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import edu.ie3.datamodel.io.factory.timeseries.SqlIdCoordinateFactory;
1414
import edu.ie3.datamodel.io.naming.DatabaseNamingStrategy;
1515
import edu.ie3.datamodel.io.source.IdCoordinateSource;
16-
import edu.ie3.datamodel.models.input.IdCoordinatePair;
16+
import edu.ie3.datamodel.models.input.IdCoordinateInput;
1717
import edu.ie3.datamodel.models.value.CoordinateValue;
1818
import edu.ie3.datamodel.utils.Try;
1919
import edu.ie3.util.geo.CoordinateDistance;
@@ -66,7 +66,7 @@ public SqlIdCoordinateSource(
6666
.map(
6767
fields ->
6868
factory
69-
.validate(fields, IdCoordinatePair.class)
69+
.validate(fields, IdCoordinateInput.class)
7070
.transformF(SourceException::new))
7171
.orElse(Try.Success.empty()))
7272
.getOrThrow();
@@ -201,10 +201,10 @@ private CoordinateValue createCoordinateValue(Map<String, String> fieldToValues)
201201
fieldToValues.remove("distance");
202202

203203
SimpleFactoryData simpleFactoryData =
204-
new SimpleFactoryData(fieldToValues, IdCoordinatePair.class);
204+
new SimpleFactoryData(fieldToValues, IdCoordinateInput.class);
205205

206-
IdCoordinatePair pair = factory.get(simpleFactoryData).getOrThrow();
207-
return new CoordinateValue(pair.getKey(), pair.getValue());
206+
IdCoordinateInput idCoordinate = factory.get(simpleFactoryData).getOrThrow();
207+
return new CoordinateValue(idCoordinate.id(), idCoordinate.point());
208208
}
209209

210210
private List<CoordinateValue> executeQueryToList(
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
* © 2024. 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.input;
7+
8+
import edu.ie3.util.geo.GeoUtils;
9+
import org.locationtech.jts.geom.Point;
10+
11+
public record IdCoordinateInput(Integer id, Point point) implements InputEntity {
12+
/**
13+
* Constructor for an {@link IdCoordinateInput}.
14+
*
15+
* @param id of the pair
16+
* @param lat of the pair
17+
* @param lon of the pair
18+
*/
19+
public IdCoordinateInput(Integer id, double lat, double lon) {
20+
this(id, GeoUtils.buildPoint(lat, lon));
21+
}
22+
}

src/main/java/edu/ie3/datamodel/models/input/IdCoordinatePair.java

Lines changed: 0 additions & 45 deletions
This file was deleted.

0 commit comments

Comments
 (0)