-
Notifications
You must be signed in to change notification settings - Fork 5
/
CsvSystemParticipantSource.java
55 lines (53 loc) · 2.38 KB
/
CsvSystemParticipantSource.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/*
* © 2021. TU Dortmund University,
* Institute of Energy Systems, Energy Efficiency and Energy Economics,
* Research group Distribution grid planning and operation
*/
package edu.ie3.datamodel.io.source.csv;
import edu.ie3.datamodel.io.factory.EntityFactory;
import edu.ie3.datamodel.io.factory.input.NodeAssetInputEntityData;
import edu.ie3.datamodel.io.factory.input.participant.*;
import edu.ie3.datamodel.io.naming.FileNamingStrategy;
import edu.ie3.datamodel.io.source.RawGridSource;
import edu.ie3.datamodel.io.source.SystemParticipantSource;
import edu.ie3.datamodel.io.source.ThermalSource;
import edu.ie3.datamodel.io.source.TypeSource;
import edu.ie3.datamodel.models.UniqueEntity;
import edu.ie3.datamodel.models.input.NodeInput;
import edu.ie3.datamodel.models.input.OperatorInput;
import edu.ie3.datamodel.models.input.container.SystemParticipants;
import edu.ie3.datamodel.models.input.system.*;
import edu.ie3.datamodel.models.input.system.type.*;
import edu.ie3.datamodel.models.input.thermal.ThermalBusInput;
import edu.ie3.datamodel.models.input.thermal.ThermalStorageInput;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.LongAdder;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* Source that provides the capability to build entities of type {@link SystemParticipantInput} as
* well as {@link SystemParticipants} container from .csv files.
*
* <p>This source is <b>not buffered</b> which means each call on a getter method always tries to
* read all data is necessary to return the requested objects in a hierarchical cascading way.
*
* <p>If performance is an issue, it is recommended to read the data cascading starting with reading
* nodes and then using the getters with arguments to avoid reading the same data multiple times.
*
* <p>The resulting sets are always unique on object <b>and</b> UUID base (with distinct UUIDs).
*
* @version 0.1
* @since 03.04.20
*/
public class CsvSystemParticipantSource extends SystemParticipantSource {
public CsvSystemParticipantSource(
String csvSep,
String participantsFolderPath,
FileNamingStrategy fileNamingStrategy,
TypeSource typeSource,
ThermalSource thermalSource,
RawGridSource rawGridSource) {
super(typeSource, thermalSource, rawGridSource, new CsvDataSource(csvSep, participantsFolderPath, fileNamingStrategy));
}
}