-
Notifications
You must be signed in to change notification settings - Fork 5
/
CsvRawGridSource.java
67 lines (59 loc) · 2.55 KB
/
CsvRawGridSource.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
56
57
58
59
60
61
62
63
64
65
66
67
/*
* © 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.AssetInputEntityData;
import edu.ie3.datamodel.io.factory.input.ConnectorInputEntityData;
import edu.ie3.datamodel.io.naming.FileNamingStrategy;
import edu.ie3.datamodel.io.source.RawGridSource;
import edu.ie3.datamodel.io.source.TypeSource;
import edu.ie3.datamodel.models.input.NodeInput;
import edu.ie3.datamodel.models.input.OperatorInput;
import edu.ie3.datamodel.models.input.connector.ConnectorInput;
import edu.ie3.datamodel.models.input.container.RawGridElements;
import java.util.Collection;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Stream;
/**
* Source that provides the capability to build entities that are hold by a {@link RawGridElements}
* as well as the {@link RawGridElements} 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 CsvRawGridSource extends RawGridSource {
public CsvRawGridSource(
String csvSep,
String gridFolderPath,
FileNamingStrategy fileNamingStrategy,
TypeSource typeSource
) {
super(typeSource, new CsvDataSource(csvSep, gridFolderPath, fileNamingStrategy));
}
/*
//--- Inner Methods
public <T extends ConnectorInput> Stream<Optional<T>> untypedConnectorInputEntityStream(
Class<T> entityClass,
EntityFactory<T, ConnectorInputEntityData> factory,
Set<NodeInput> nodes,
Set<OperatorInput> operators) {
return dataSource.untypedConnectorInputEntityStream(entityClass, factory, nodes, operators);
}
public Stream<Optional<ConnectorInputEntityData>> buildUntypedConnectorInputEntityData(
Stream<AssetInputEntityData> assetInputEntityDataStream, Collection<NodeInput> nodes) {
return dataSource.buildUntypedConnectorInputEntityData(assetInputEntityDataStream, nodes);
}
*/
}